zxing_cpp_no_cmake 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.gitmodules +0 -0
  4. data/CHANGELOG.rdoc +6 -0
  5. data/Gemfile +3 -0
  6. data/Manifest.txt +375 -0
  7. data/README.rdoc +141 -0
  8. data/Rakefile +28 -0
  9. data/bin/zxd +87 -0
  10. data/bin/zxe +53 -0
  11. data/ext/zxing/extconf.rb +20 -0
  12. data/ext/zxing/zxing-cpp/.gitignore +2 -0
  13. data/ext/zxing/zxing-cpp/AUTHORS +115 -0
  14. data/ext/zxing/zxing-cpp/CMakeLists.txt +89 -0
  15. data/ext/zxing/zxing-cpp/COPYING +201 -0
  16. data/ext/zxing/zxing-cpp/NOTICE +65 -0
  17. data/ext/zxing/zxing-cpp/README.md +45 -0
  18. data/ext/zxing/zxing-cpp/build/CMakeCache.txt +382 -0
  19. data/ext/zxing/zxing-cpp/build/CMakeFiles/3.15.4/CMakeCCompiler.cmake +76 -0
  20. data/ext/zxing/zxing-cpp/build/CMakeFiles/3.15.4/CMakeCXXCompiler.cmake +79 -0
  21. data/ext/zxing/zxing-cpp/build/CMakeFiles/3.15.4/CMakeDetermineCompilerABI_C.bin +0 -0
  22. data/ext/zxing/zxing-cpp/build/CMakeFiles/3.15.4/CMakeDetermineCompilerABI_CXX.bin +0 -0
  23. data/ext/zxing/zxing-cpp/build/CMakeFiles/3.15.4/CMakeSystem.cmake +15 -0
  24. data/ext/zxing/zxing-cpp/build/CMakeFiles/3.15.4/CompilerIdC/CMakeCCompilerId.c +665 -0
  25. data/ext/zxing/zxing-cpp/build/CMakeFiles/3.15.4/CompilerIdC/a.out +0 -0
  26. data/ext/zxing/zxing-cpp/build/CMakeFiles/3.15.4/CompilerIdCXX/CMakeCXXCompilerId.cpp +644 -0
  27. data/ext/zxing/zxing-cpp/build/CMakeFiles/3.15.4/CompilerIdCXX/a.out +0 -0
  28. data/ext/zxing/zxing-cpp/build/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  29. data/ext/zxing/zxing-cpp/build/CMakeFiles/CMakeOutput.log +447 -0
  30. data/ext/zxing/zxing-cpp/build/CMakeFiles/Makefile.cmake +125 -0
  31. data/ext/zxing/zxing-cpp/build/CMakeFiles/Makefile2 +177 -0
  32. data/ext/zxing/zxing-cpp/build/CMakeFiles/TargetDirectories.txt +9 -0
  33. data/ext/zxing/zxing-cpp/build/CMakeFiles/cmake.check_cache +1 -0
  34. data/ext/zxing/zxing-cpp/build/CMakeFiles/libzxing.dir/CXX.includecache +1892 -0
  35. data/ext/zxing/zxing-cpp/build/CMakeFiles/libzxing.dir/DependInfo.cmake +120 -0
  36. data/ext/zxing/zxing-cpp/build/CMakeFiles/libzxing.dir/build.make +1584 -0
  37. data/ext/zxing/zxing-cpp/build/CMakeFiles/libzxing.dir/cmake_clean.cmake +109 -0
  38. data/ext/zxing/zxing-cpp/build/CMakeFiles/libzxing.dir/cmake_clean_target.cmake +3 -0
  39. data/ext/zxing/zxing-cpp/build/CMakeFiles/libzxing.dir/depend.internal +1465 -0
  40. data/ext/zxing/zxing-cpp/build/CMakeFiles/libzxing.dir/depend.make +1465 -0
  41. data/ext/zxing/zxing-cpp/build/CMakeFiles/libzxing.dir/flags.make +10 -0
  42. data/ext/zxing/zxing-cpp/build/CMakeFiles/libzxing.dir/link.txt +2 -0
  43. data/ext/zxing/zxing-cpp/build/CMakeFiles/libzxing.dir/progress.make +102 -0
  44. data/ext/zxing/zxing-cpp/build/CMakeFiles/progress.marks +1 -0
  45. data/ext/zxing/zxing-cpp/build/CMakeFiles/testrunner.dir/CXX.includecache +344 -0
  46. data/ext/zxing/zxing-cpp/build/CMakeFiles/testrunner.dir/DependInfo.cmake +33 -0
  47. data/ext/zxing/zxing-cpp/build/CMakeFiles/testrunner.dir/build.make +266 -0
  48. data/ext/zxing/zxing-cpp/build/CMakeFiles/testrunner.dir/cmake_clean.cmake +21 -0
  49. data/ext/zxing/zxing-cpp/build/CMakeFiles/testrunner.dir/depend.internal +103 -0
  50. data/ext/zxing/zxing-cpp/build/CMakeFiles/testrunner.dir/depend.make +103 -0
  51. data/ext/zxing/zxing-cpp/build/CMakeFiles/testrunner.dir/flags.make +10 -0
  52. data/ext/zxing/zxing-cpp/build/CMakeFiles/testrunner.dir/link.txt +1 -0
  53. data/ext/zxing/zxing-cpp/build/CMakeFiles/testrunner.dir/progress.make +14 -0
  54. data/ext/zxing/zxing-cpp/build/CMakeFiles/zxing.dir/CXX.includecache +378 -0
  55. data/ext/zxing/zxing-cpp/build/CMakeFiles/zxing.dir/DependInfo.cmake +25 -0
  56. data/ext/zxing/zxing-cpp/build/CMakeFiles/zxing.dir/build.make +145 -0
  57. data/ext/zxing/zxing-cpp/build/CMakeFiles/zxing.dir/cmake_clean.cmake +13 -0
  58. data/ext/zxing/zxing-cpp/build/CMakeFiles/zxing.dir/depend.internal +53 -0
  59. data/ext/zxing/zxing-cpp/build/CMakeFiles/zxing.dir/depend.make +53 -0
  60. data/ext/zxing/zxing-cpp/build/CMakeFiles/zxing.dir/flags.make +10 -0
  61. data/ext/zxing/zxing-cpp/build/CMakeFiles/zxing.dir/link.txt +1 -0
  62. data/ext/zxing/zxing-cpp/build/CMakeFiles/zxing.dir/progress.make +6 -0
  63. data/ext/zxing/zxing-cpp/build/Makefile +3706 -0
  64. data/ext/zxing/zxing-cpp/build/cmake_install.cmake +73 -0
  65. data/ext/zxing/zxing-cpp/build/libzxing.a +0 -0
  66. data/ext/zxing/zxing-cpp/build/testrunner +0 -0
  67. data/ext/zxing/zxing-cpp/build/zxing +0 -0
  68. data/ext/zxing/zxing-cpp/cli/src/ImageReaderSource.cpp +113 -0
  69. data/ext/zxing/zxing-cpp/cli/src/ImageReaderSource.h +40 -0
  70. data/ext/zxing/zxing-cpp/cli/src/jpgd.cpp +3174 -0
  71. data/ext/zxing/zxing-cpp/cli/src/jpgd.h +319 -0
  72. data/ext/zxing/zxing-cpp/cli/src/lodepng.cpp +6261 -0
  73. data/ext/zxing/zxing-cpp/cli/src/lodepng.h +1695 -0
  74. data/ext/zxing/zxing-cpp/cli/src/main.cpp +297 -0
  75. data/ext/zxing/zxing-cpp/cmake/FindCPPUNIT.cmake +54 -0
  76. data/ext/zxing/zxing-cpp/cmake/FindIconv.cmake +57 -0
  77. data/ext/zxing/zxing-cpp/core/src/bigint/.gitignore +6 -0
  78. data/ext/zxing/zxing-cpp/core/src/bigint/BigInteger.cc +405 -0
  79. data/ext/zxing/zxing-cpp/core/src/bigint/BigInteger.hh +215 -0
  80. data/ext/zxing/zxing-cpp/core/src/bigint/BigIntegerAlgorithms.cc +70 -0
  81. data/ext/zxing/zxing-cpp/core/src/bigint/BigIntegerAlgorithms.hh +25 -0
  82. data/ext/zxing/zxing-cpp/core/src/bigint/BigIntegerLibrary.hh +8 -0
  83. data/ext/zxing/zxing-cpp/core/src/bigint/BigIntegerUtils.cc +50 -0
  84. data/ext/zxing/zxing-cpp/core/src/bigint/BigIntegerUtils.hh +72 -0
  85. data/ext/zxing/zxing-cpp/core/src/bigint/BigUnsigned.cc +697 -0
  86. data/ext/zxing/zxing-cpp/core/src/bigint/BigUnsigned.hh +418 -0
  87. data/ext/zxing/zxing-cpp/core/src/bigint/BigUnsignedInABase.cc +125 -0
  88. data/ext/zxing/zxing-cpp/core/src/bigint/BigUnsignedInABase.hh +122 -0
  89. data/ext/zxing/zxing-cpp/core/src/bigint/ChangeLog +146 -0
  90. data/ext/zxing/zxing-cpp/core/src/bigint/Makefile +73 -0
  91. data/ext/zxing/zxing-cpp/core/src/bigint/NumberlikeArray.hh +177 -0
  92. data/ext/zxing/zxing-cpp/core/src/bigint/README +71 -0
  93. data/ext/zxing/zxing-cpp/core/src/win32/zxing/iconv.h +14 -0
  94. data/ext/zxing/zxing-cpp/core/src/win32/zxing/stdint.h +247 -0
  95. data/ext/zxing/zxing-cpp/core/src/win32/zxing/win_iconv.c +2035 -0
  96. data/ext/zxing/zxing-cpp/core/src/zxing/BarcodeFormat.cpp +40 -0
  97. data/ext/zxing/zxing-cpp/core/src/zxing/BarcodeFormat.h +60 -0
  98. data/ext/zxing/zxing-cpp/core/src/zxing/Binarizer.cpp +45 -0
  99. data/ext/zxing/zxing-cpp/core/src/zxing/Binarizer.h +50 -0
  100. data/ext/zxing/zxing-cpp/core/src/zxing/BinaryBitmap.cpp +70 -0
  101. data/ext/zxing/zxing-cpp/core/src/zxing/BinaryBitmap.h +56 -0
  102. data/ext/zxing/zxing-cpp/core/src/zxing/ChecksumException.cpp +28 -0
  103. data/ext/zxing/zxing-cpp/core/src/zxing/ChecksumException.h +34 -0
  104. data/ext/zxing/zxing-cpp/core/src/zxing/DecodeHints.cpp +142 -0
  105. data/ext/zxing/zxing-cpp/core/src/zxing/DecodeHints.h +85 -0
  106. data/ext/zxing/zxing-cpp/core/src/zxing/Exception.cpp +43 -0
  107. data/ext/zxing/zxing-cpp/core/src/zxing/Exception.h +51 -0
  108. data/ext/zxing/zxing-cpp/core/src/zxing/FormatException.cpp +41 -0
  109. data/ext/zxing/zxing-cpp/core/src/zxing/FormatException.h +37 -0
  110. data/ext/zxing/zxing-cpp/core/src/zxing/IllegalStateException.h +35 -0
  111. data/ext/zxing/zxing-cpp/core/src/zxing/InvertedLuminanceSource.cpp +68 -0
  112. data/ext/zxing/zxing-cpp/core/src/zxing/InvertedLuminanceSource.h +48 -0
  113. data/ext/zxing/zxing-cpp/core/src/zxing/LuminanceSource.cpp +86 -0
  114. data/ext/zxing/zxing-cpp/core/src/zxing/LuminanceSource.h +59 -0
  115. data/ext/zxing/zxing-cpp/core/src/zxing/MultiFormatReader.cpp +124 -0
  116. data/ext/zxing/zxing-cpp/core/src/zxing/MultiFormatReader.h +48 -0
  117. data/ext/zxing/zxing-cpp/core/src/zxing/NotFoundException.h +35 -0
  118. data/ext/zxing/zxing-cpp/core/src/zxing/Reader.cpp +31 -0
  119. data/ext/zxing/zxing-cpp/core/src/zxing/Reader.h +40 -0
  120. data/ext/zxing/zxing-cpp/core/src/zxing/ReaderException.h +37 -0
  121. data/ext/zxing/zxing-cpp/core/src/zxing/Result.cpp +61 -0
  122. data/ext/zxing/zxing-cpp/core/src/zxing/Result.h +55 -0
  123. data/ext/zxing/zxing-cpp/core/src/zxing/ResultIO.cpp +34 -0
  124. data/ext/zxing/zxing-cpp/core/src/zxing/ResultPoint.cpp +108 -0
  125. data/ext/zxing/zxing-cpp/core/src/zxing/ResultPoint.h +55 -0
  126. data/ext/zxing/zxing-cpp/core/src/zxing/ResultPointCallback.cpp +26 -0
  127. data/ext/zxing/zxing-cpp/core/src/zxing/ResultPointCallback.h +39 -0
  128. data/ext/zxing/zxing-cpp/core/src/zxing/ZXing.h +133 -0
  129. data/ext/zxing/zxing-cpp/core/src/zxing/aztec/AztecDetectorResult.cpp +54 -0
  130. data/ext/zxing/zxing-cpp/core/src/zxing/aztec/AztecDetectorResult.h +48 -0
  131. data/ext/zxing/zxing-cpp/core/src/zxing/aztec/AztecReader.cpp +68 -0
  132. data/ext/zxing/zxing-cpp/core/src/zxing/aztec/AztecReader.h +49 -0
  133. data/ext/zxing/zxing-cpp/core/src/zxing/aztec/decoder/Decoder.cpp +489 -0
  134. data/ext/zxing/zxing-cpp/core/src/zxing/aztec/decoder/Decoder.h +69 -0
  135. data/ext/zxing/zxing-cpp/core/src/zxing/aztec/detector/Detector.cpp +548 -0
  136. data/ext/zxing/zxing-cpp/core/src/zxing/aztec/detector/Detector.h +92 -0
  137. data/ext/zxing/zxing-cpp/core/src/zxing/common/Array.h +170 -0
  138. data/ext/zxing/zxing-cpp/core/src/zxing/common/BitArray.cpp +155 -0
  139. data/ext/zxing/zxing-cpp/core/src/zxing/common/BitArray.h +81 -0
  140. data/ext/zxing/zxing-cpp/core/src/zxing/common/BitArrayIO.cpp +31 -0
  141. data/ext/zxing/zxing-cpp/core/src/zxing/common/BitMatrix.cpp +143 -0
  142. data/ext/zxing/zxing-cpp/core/src/zxing/common/BitMatrix.h +91 -0
  143. data/ext/zxing/zxing-cpp/core/src/zxing/common/BitSource.cpp +76 -0
  144. data/ext/zxing/zxing-cpp/core/src/zxing/common/BitSource.h +74 -0
  145. data/ext/zxing/zxing-cpp/core/src/zxing/common/CharacterSetECI.cpp +105 -0
  146. data/ext/zxing/zxing-cpp/core/src/zxing/common/CharacterSetECI.h +53 -0
  147. data/ext/zxing/zxing-cpp/core/src/zxing/common/Counted.h +140 -0
  148. data/ext/zxing/zxing-cpp/core/src/zxing/common/DecoderResult.cpp +46 -0
  149. data/ext/zxing/zxing-cpp/core/src/zxing/common/DecoderResult.h +51 -0
  150. data/ext/zxing/zxing-cpp/core/src/zxing/common/DetectorResult.cpp +39 -0
  151. data/ext/zxing/zxing-cpp/core/src/zxing/common/DetectorResult.h +43 -0
  152. data/ext/zxing/zxing-cpp/core/src/zxing/common/GlobalHistogramBinarizer.cpp +212 -0
  153. data/ext/zxing/zxing-cpp/core/src/zxing/common/GlobalHistogramBinarizer.h +48 -0
  154. data/ext/zxing/zxing-cpp/core/src/zxing/common/GreyscaleLuminanceSource.cpp +80 -0
  155. data/ext/zxing/zxing-cpp/core/src/zxing/common/GreyscaleLuminanceSource.h +53 -0
  156. data/ext/zxing/zxing-cpp/core/src/zxing/common/GreyscaleRotatedLuminanceSource.cpp +81 -0
  157. data/ext/zxing/zxing-cpp/core/src/zxing/common/GreyscaleRotatedLuminanceSource.h +46 -0
  158. data/ext/zxing/zxing-cpp/core/src/zxing/common/GridSampler.cpp +122 -0
  159. data/ext/zxing/zxing-cpp/core/src/zxing/common/GridSampler.h +45 -0
  160. data/ext/zxing/zxing-cpp/core/src/zxing/common/HybridBinarizer.cpp +226 -0
  161. data/ext/zxing/zxing-cpp/core/src/zxing/common/HybridBinarizer.h +67 -0
  162. data/ext/zxing/zxing-cpp/core/src/zxing/common/IllegalArgumentException.cpp +27 -0
  163. data/ext/zxing/zxing-cpp/core/src/zxing/common/IllegalArgumentException.h +36 -0
  164. data/ext/zxing/zxing-cpp/core/src/zxing/common/PerspectiveTransform.cpp +107 -0
  165. data/ext/zxing/zxing-cpp/core/src/zxing/common/PerspectiveTransform.h +49 -0
  166. data/ext/zxing/zxing-cpp/core/src/zxing/common/Point.h +47 -0
  167. data/ext/zxing/zxing-cpp/core/src/zxing/common/Str.cpp +61 -0
  168. data/ext/zxing/zxing-cpp/core/src/zxing/common/Str.h +51 -0
  169. data/ext/zxing/zxing-cpp/core/src/zxing/common/StringUtils.cpp +198 -0
  170. data/ext/zxing/zxing-cpp/core/src/zxing/common/StringUtils.h +52 -0
  171. data/ext/zxing/zxing-cpp/core/src/zxing/common/detector/JavaMath.h +43 -0
  172. data/ext/zxing/zxing-cpp/core/src/zxing/common/detector/MathUtils.h +57 -0
  173. data/ext/zxing/zxing-cpp/core/src/zxing/common/detector/MonochromeRectangleDetector.cpp +175 -0
  174. data/ext/zxing/zxing-cpp/core/src/zxing/common/detector/MonochromeRectangleDetector.h +62 -0
  175. data/ext/zxing/zxing-cpp/core/src/zxing/common/detector/WhiteRectangleDetector.cpp +330 -0
  176. data/ext/zxing/zxing-cpp/core/src/zxing/common/detector/WhiteRectangleDetector.h +59 -0
  177. data/ext/zxing/zxing-cpp/core/src/zxing/common/reedsolomon/GenericGF.cpp +150 -0
  178. data/ext/zxing/zxing-cpp/core/src/zxing/common/reedsolomon/GenericGF.h +73 -0
  179. data/ext/zxing/zxing-cpp/core/src/zxing/common/reedsolomon/GenericGFPoly.cpp +218 -0
  180. data/ext/zxing/zxing-cpp/core/src/zxing/common/reedsolomon/GenericGFPoly.h +56 -0
  181. data/ext/zxing/zxing-cpp/core/src/zxing/common/reedsolomon/ReedSolomonDecoder.cpp +174 -0
  182. data/ext/zxing/zxing-cpp/core/src/zxing/common/reedsolomon/ReedSolomonDecoder.h +49 -0
  183. data/ext/zxing/zxing-cpp/core/src/zxing/common/reedsolomon/ReedSolomonException.cpp +30 -0
  184. data/ext/zxing/zxing-cpp/core/src/zxing/common/reedsolomon/ReedSolomonException.h +33 -0
  185. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/DataMatrixReader.cpp +54 -0
  186. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/DataMatrixReader.h +45 -0
  187. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/Version.cpp +199 -0
  188. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/Version.h +87 -0
  189. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/decoder/BitMatrixParser.cpp +361 -0
  190. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/decoder/BitMatrixParser.h +59 -0
  191. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/decoder/DataBlock.cpp +113 -0
  192. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/decoder/DataBlock.h +49 -0
  193. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/decoder/DecodedBitStreamParser.cpp +415 -0
  194. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/decoder/DecodedBitStreamParser.h +104 -0
  195. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/decoder/Decoder.cpp +93 -0
  196. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/decoder/Decoder.h +49 -0
  197. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/detector/CornerPoint.cpp +46 -0
  198. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/detector/CornerPoint.h +43 -0
  199. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/detector/Detector.cpp +447 -0
  200. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/detector/Detector.h +94 -0
  201. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/detector/DetectorException.cpp +23 -0
  202. data/ext/zxing/zxing-cpp/core/src/zxing/datamatrix/detector/DetectorException.h +23 -0
  203. data/ext/zxing/zxing-cpp/core/src/zxing/multi/ByQuadrantReader.cpp +75 -0
  204. data/ext/zxing/zxing-cpp/core/src/zxing/multi/ByQuadrantReader.h +42 -0
  205. data/ext/zxing/zxing-cpp/core/src/zxing/multi/GenericMultipleBarcodeReader.cpp +137 -0
  206. data/ext/zxing/zxing-cpp/core/src/zxing/multi/GenericMultipleBarcodeReader.h +51 -0
  207. data/ext/zxing/zxing-cpp/core/src/zxing/multi/MultipleBarcodeReader.cpp +29 -0
  208. data/ext/zxing/zxing-cpp/core/src/zxing/multi/MultipleBarcodeReader.h +41 -0
  209. data/ext/zxing/zxing-cpp/core/src/zxing/multi/qrcode/QRCodeMultiReader.cpp +58 -0
  210. data/ext/zxing/zxing-cpp/core/src/zxing/multi/qrcode/QRCodeMultiReader.h +36 -0
  211. data/ext/zxing/zxing-cpp/core/src/zxing/multi/qrcode/detector/MultiDetector.cpp +47 -0
  212. data/ext/zxing/zxing-cpp/core/src/zxing/multi/qrcode/detector/MultiDetector.h +37 -0
  213. data/ext/zxing/zxing-cpp/core/src/zxing/multi/qrcode/detector/MultiFinderPatternFinder.cpp +236 -0
  214. data/ext/zxing/zxing-cpp/core/src/zxing/multi/qrcode/detector/MultiFinderPatternFinder.h +47 -0
  215. data/ext/zxing/zxing-cpp/core/src/zxing/oned/CodaBarReader.cpp +340 -0
  216. data/ext/zxing/zxing-cpp/core/src/zxing/oned/CodaBarReader.h +57 -0
  217. data/ext/zxing/zxing-cpp/core/src/zxing/oned/Code128Reader.cpp +497 -0
  218. data/ext/zxing/zxing-cpp/core/src/zxing/oned/Code128Reader.h +48 -0
  219. data/ext/zxing/zxing-cpp/core/src/zxing/oned/Code39Reader.cpp +329 -0
  220. data/ext/zxing/zxing-cpp/core/src/zxing/oned/Code39Reader.h +63 -0
  221. data/ext/zxing/zxing-cpp/core/src/zxing/oned/Code93Reader.cpp +303 -0
  222. data/ext/zxing/zxing-cpp/core/src/zxing/oned/Code93Reader.h +58 -0
  223. data/ext/zxing/zxing-cpp/core/src/zxing/oned/EAN13Reader.cpp +85 -0
  224. data/ext/zxing/zxing-cpp/core/src/zxing/oned/EAN13Reader.h +49 -0
  225. data/ext/zxing/zxing-cpp/core/src/zxing/oned/EAN8Reader.cpp +65 -0
  226. data/ext/zxing/zxing-cpp/core/src/zxing/oned/EAN8Reader.h +47 -0
  227. data/ext/zxing/zxing-cpp/core/src/zxing/oned/ITFReader.cpp +337 -0
  228. data/ext/zxing/zxing-cpp/core/src/zxing/oned/ITFReader.h +54 -0
  229. data/ext/zxing/zxing-cpp/core/src/zxing/oned/MultiFormatOneDReader.cpp +96 -0
  230. data/ext/zxing/zxing-cpp/core/src/zxing/oned/MultiFormatOneDReader.h +38 -0
  231. data/ext/zxing/zxing-cpp/core/src/zxing/oned/MultiFormatUPCEANReader.cpp +110 -0
  232. data/ext/zxing/zxing-cpp/core/src/zxing/oned/MultiFormatUPCEANReader.h +41 -0
  233. data/ext/zxing/zxing-cpp/core/src/zxing/oned/OneDReader.cpp +228 -0
  234. data/ext/zxing/zxing-cpp/core/src/zxing/oned/OneDReader.h +81 -0
  235. data/ext/zxing/zxing-cpp/core/src/zxing/oned/OneDResultPoint.cpp +28 -0
  236. data/ext/zxing/zxing-cpp/core/src/zxing/oned/OneDResultPoint.h +35 -0
  237. data/ext/zxing/zxing-cpp/core/src/zxing/oned/UPCAReader.cpp +70 -0
  238. data/ext/zxing/zxing-cpp/core/src/zxing/oned/UPCAReader.h +50 -0
  239. data/ext/zxing/zxing-cpp/core/src/zxing/oned/UPCEANReader.cpp +309 -0
  240. data/ext/zxing/zxing-cpp/core/src/zxing/oned/UPCEANReader.h +88 -0
  241. data/ext/zxing/zxing-cpp/core/src/zxing/oned/UPCEReader.cpp +146 -0
  242. data/ext/zxing/zxing-cpp/core/src/zxing/oned/UPCEReader.h +47 -0
  243. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/PDF417Reader.cpp +170 -0
  244. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/PDF417Reader.h +49 -0
  245. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/decoder/BitMatrixParser.cpp +997 -0
  246. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/decoder/BitMatrixParser.h +84 -0
  247. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/decoder/DecodedBitStreamParser.cpp +563 -0
  248. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/decoder/DecodedBitStreamParser.h +84 -0
  249. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/decoder/Decoder.cpp +118 -0
  250. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/decoder/Decoder.h +62 -0
  251. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/decoder/ec/ErrorCorrection.cpp +214 -0
  252. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/decoder/ec/ErrorCorrection.h +71 -0
  253. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/decoder/ec/ModulusGF.cpp +120 -0
  254. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/decoder/ec/ModulusGF.h +72 -0
  255. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/decoder/ec/ModulusPoly.cpp +284 -0
  256. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/decoder/ec/ModulusPoly.h +68 -0
  257. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/detector/Detector.cpp +665 -0
  258. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/detector/Detector.h +106 -0
  259. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/detector/LinesSampler.cpp +715 -0
  260. data/ext/zxing/zxing-cpp/core/src/zxing/pdf417/detector/LinesSampler.h +122 -0
  261. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/ErrorCorrectionLevel.cpp +65 -0
  262. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/ErrorCorrectionLevel.h +52 -0
  263. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/FormatInformation.cpp +117 -0
  264. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/FormatInformation.h +54 -0
  265. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/QRCodeReader.cpp +52 -0
  266. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/QRCodeReader.h +48 -0
  267. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/Version.cpp +560 -0
  268. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/Version.h +85 -0
  269. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/decoder/BitMatrixParser.cpp +183 -0
  270. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/decoder/BitMatrixParser.h +56 -0
  271. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/decoder/DataBlock.cpp +118 -0
  272. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/decoder/DataBlock.h +50 -0
  273. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/decoder/DataMask.cpp +159 -0
  274. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/decoder/DataMask.h +50 -0
  275. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/decoder/DecodedBitStreamParser.cpp +428 -0
  276. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/decoder/DecodedBitStreamParser.h +72 -0
  277. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/decoder/Decoder.cpp +107 -0
  278. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/decoder/Decoder.h +46 -0
  279. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/decoder/Mode.cpp +90 -0
  280. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/decoder/Mode.h +57 -0
  281. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/detector/AlignmentPattern.cpp +47 -0
  282. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/detector/AlignmentPattern.h +45 -0
  283. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/detector/AlignmentPatternFinder.cpp +208 -0
  284. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/detector/AlignmentPatternFinder.h +68 -0
  285. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/detector/Detector.cpp +315 -0
  286. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/detector/Detector.h +69 -0
  287. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/detector/FinderPattern.cpp +69 -0
  288. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/detector/FinderPattern.h +48 -0
  289. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/detector/FinderPatternFinder.cpp +559 -0
  290. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/detector/FinderPatternFinder.h +76 -0
  291. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/detector/FinderPatternInfo.cpp +41 -0
  292. data/ext/zxing/zxing-cpp/core/src/zxing/qrcode/detector/FinderPatternInfo.h +47 -0
  293. data/ext/zxing/zxing-cpp/core/tests/src/TestRunner.cpp +30 -0
  294. data/ext/zxing/zxing-cpp/core/tests/src/common/BitArrayTest.cpp +216 -0
  295. data/ext/zxing/zxing-cpp/core/tests/src/common/BitArrayTest.h +61 -0
  296. data/ext/zxing/zxing-cpp/core/tests/src/common/BitMatrixTest.cpp +106 -0
  297. data/ext/zxing/zxing-cpp/core/tests/src/common/BitMatrixTest.h +55 -0
  298. data/ext/zxing/zxing-cpp/core/tests/src/common/BitSourceTest.cpp +49 -0
  299. data/ext/zxing/zxing-cpp/core/tests/src/common/BitSourceTest.h +42 -0
  300. data/ext/zxing/zxing-cpp/core/tests/src/common/CountedTest.cpp +58 -0
  301. data/ext/zxing/zxing-cpp/core/tests/src/common/CountedTest.h +46 -0
  302. data/ext/zxing/zxing-cpp/core/tests/src/common/PerspectiveTransformTest.cpp +69 -0
  303. data/ext/zxing/zxing-cpp/core/tests/src/common/PerspectiveTransformTest.h +47 -0
  304. data/ext/zxing/zxing-cpp/core/tests/src/common/reedsolomon/ReedSolomonTest.cpp +129 -0
  305. data/ext/zxing/zxing-cpp/core/tests/src/common/reedsolomon/ReedSolomonTest.h +62 -0
  306. data/ext/zxing/zxing-cpp/core/tests/src/qrcode/ErrorCorrectionLevelTest.cpp +47 -0
  307. data/ext/zxing/zxing-cpp/core/tests/src/qrcode/ErrorCorrectionLevelTest.h +45 -0
  308. data/ext/zxing/zxing-cpp/core/tests/src/qrcode/FormatInformationTest.cpp +88 -0
  309. data/ext/zxing/zxing-cpp/core/tests/src/qrcode/FormatInformationTest.h +47 -0
  310. data/ext/zxing/zxing-cpp/core/tests/src/qrcode/VersionTest.cpp +88 -0
  311. data/ext/zxing/zxing-cpp/core/tests/src/qrcode/VersionTest.h +49 -0
  312. data/ext/zxing/zxing-cpp/core/tests/src/qrcode/decoder/DataMaskTest.cpp +132 -0
  313. data/ext/zxing/zxing-cpp/core/tests/src/qrcode/decoder/DataMaskTest.h +91 -0
  314. data/ext/zxing/zxing-cpp/core/tests/src/qrcode/decoder/ModeTest.cpp +52 -0
  315. data/ext/zxing/zxing-cpp/core/tests/src/qrcode/decoder/ModeTest.h +47 -0
  316. data/ext/zxing/zxing.cc +224 -0
  317. data/lib/zxing.rb +50 -0
  318. data/lib/zxing/.gitignore +2 -0
  319. data/lib/zxing/aztec.rb +5 -0
  320. data/lib/zxing/aztec/aztec_reader.rb +14 -0
  321. data/lib/zxing/bad_image_exception.rb +4 -0
  322. data/lib/zxing/binarizer.rb +8 -0
  323. data/lib/zxing/binary_bitmap.rb +15 -0
  324. data/lib/zxing/checksum_exception.rb +4 -0
  325. data/lib/zxing/common.rb +7 -0
  326. data/lib/zxing/common/bit_matrix.rb +9 -0
  327. data/lib/zxing/common/hybrid_binarizer.rb +17 -0
  328. data/lib/zxing/common/illegal_argument_exception.rb +4 -0
  329. data/lib/zxing/datamatrix.rb +5 -0
  330. data/lib/zxing/datamatrix/data_matrix_reader.rb +14 -0
  331. data/lib/zxing/decodable.rb +11 -0
  332. data/lib/zxing/exception.rb +4 -0
  333. data/lib/zxing/ffi.rb +20 -0
  334. data/lib/zxing/ffi/aztec.rb +6 -0
  335. data/lib/zxing/ffi/aztec/aztec_reader.rb +9 -0
  336. data/lib/zxing/ffi/binarizer.rb +25 -0
  337. data/lib/zxing/ffi/binary_bitmap.rb +15 -0
  338. data/lib/zxing/ffi/common.rb +8 -0
  339. data/lib/zxing/ffi/common/bit_matrix.rb +12 -0
  340. data/lib/zxing/ffi/common/greyscale_luminance_source.rb +30 -0
  341. data/lib/zxing/ffi/common/hybrid_binarizer.rb +10 -0
  342. data/lib/zxing/ffi/datamatrix.rb +6 -0
  343. data/lib/zxing/ffi/datamatrix/data_matrix_reader.rb +9 -0
  344. data/lib/zxing/ffi/library.rb +102 -0
  345. data/lib/zxing/ffi/luminance_source.rb +18 -0
  346. data/lib/zxing/ffi/multi_format_reader.rb +9 -0
  347. data/lib/zxing/ffi/oned.rb +6 -0
  348. data/lib/zxing/ffi/oned/code_39_reader.rb +10 -0
  349. data/lib/zxing/ffi/qrcode.rb +8 -0
  350. data/lib/zxing/ffi/qrcode/decoder.rb +10 -0
  351. data/lib/zxing/ffi/qrcode/detector.rb +10 -0
  352. data/lib/zxing/ffi/reader.rb +58 -0
  353. data/lib/zxing/ffi/result.rb +23 -0
  354. data/lib/zxing/format_exception.rb +4 -0
  355. data/lib/zxing/illegal_argument_exception.rb +4 -0
  356. data/lib/zxing/image.rb +15 -0
  357. data/lib/zxing/luminance_source.rb +18 -0
  358. data/lib/zxing/multi_format_reader.rb +11 -0
  359. data/lib/zxing/not_found_exception.rb +4 -0
  360. data/lib/zxing/oned.rb +5 -0
  361. data/lib/zxing/oned/code_39_reader.rb +15 -0
  362. data/lib/zxing/qrcode.rb +8 -0
  363. data/lib/zxing/qrcode/decoder.rb +14 -0
  364. data/lib/zxing/qrcode/detector.rb +14 -0
  365. data/lib/zxing/qrcode/encoder.rb +8 -0
  366. data/lib/zxing/qrcode/encoder/byte_matrix.rb +18 -0
  367. data/lib/zxing/qrcode/encoder/encoder.rb +9 -0
  368. data/lib/zxing/qrcode/encoder/qrcode.rb +18 -0
  369. data/lib/zxing/reader.rb +8 -0
  370. data/lib/zxing/reader_exception.rb +4 -0
  371. data/lib/zxing/reed_solomon_exception.rb +2 -0
  372. data/lib/zxing/result.rb +18 -0
  373. data/lib/zxing/rmagick.rb +5 -0
  374. data/lib/zxing/rmagick/image.rb +109 -0
  375. data/lib/zxing/version.rb +33 -0
  376. data/zxing_cpp.gemspec +36 -0
  377. metadata +515 -0
@@ -0,0 +1,18 @@
1
+ module ZXing; end
2
+ module ZXing::FFI; end
3
+
4
+ class ZXing::FFI::LuminanceSource
5
+ include ZXing::LuminanceSource
6
+ def initialize ptr
7
+ super ZXing::FFI::Library::LuminanceSourcePointer.new ptr
8
+ end
9
+ def width
10
+ ZXing::FFI::Library.LuminanceSource_width native
11
+ end
12
+ def height
13
+ ZXing::FFI::Library.LuminanceSource_height native
14
+ end
15
+ def matrix
16
+ ZXing::FFI::Library.LuminanceSource_matrix native
17
+ end
18
+ end
@@ -0,0 +1,9 @@
1
+ module ZXing; end
2
+ module ZXing::FFI; end
3
+
4
+ class ZXing::FFI::MultiFormatReader < ZXing::FFI::Reader
5
+ include ZXing::MultiFormatReader
6
+ def initialize
7
+ super ZXing::FFI::Library.MultiFormatReader_new
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ module ZXing; end
2
+ module ZXing::FFI; end
3
+
4
+ module ZXing::FFI::OneD
5
+ autoload :Code39Reader, 'zxing/ffi/oned/code_39_reader'
6
+ end
@@ -0,0 +1,10 @@
1
+ module ZXing; end
2
+ module ZXing::FFI; end
3
+ module ZXing::FFI::OneD; end
4
+
5
+ class ZXing::FFI::OneD::Code39Reader < ZXing::FFI::Reader
6
+ include ZXing::OneD::Code39Reader
7
+ def initialize usingCheckDigit, extendedMode
8
+ super ZXing::FFI::Library.Code39Reader_new usingCheckDigit, extendedMode
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ module ZXing; end
2
+ module ZXing::FFI; end
3
+
4
+ module ZXing::FFI::QRCode
5
+ autoload :Detector, 'zxing/ffi/qrcode/detector'
6
+ autoload :Decoder, 'zxing/ffi/qrcode/decoder'
7
+ autoload :QRCodeReader, 'zxing/ffi/qrcode/qrcode_reader'
8
+ end
@@ -0,0 +1,10 @@
1
+ module ZXing; end
2
+ module ZXing::FFI; end
3
+ module ZXing::FFI:QRCode; end
4
+
5
+ class ZXing::FFI::QRCode::Decoder < ZXing::FFI::Binarizer
6
+ include ZXing::QRCode::Decoder
7
+ def initialize luminance_source
8
+ super ZXing::FFI::Library.Decoder_new(luminance_source.native), luminance_source
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module ZXing; end
2
+ module ZXing::FFI; end
3
+ module ZXing::FFI:QRCode; end
4
+
5
+ class ZXing::FFI::QRCode::Detector < ZXing::FFI::Binarizer
6
+ include ZXing::QRCode::Detector
7
+ def initialize luminance_source
8
+ super ZXing::FFI::Library.Detector_new(luminance_source.native), luminance_source
9
+ end
10
+ end
@@ -0,0 +1,58 @@
1
+ module ZXing; end
2
+ module ZXing::FFI; end
3
+
4
+ class ZXing::FFI::Reader
5
+ include ZXing::Reader
6
+ def initialize ptr
7
+ super ZXing::FFI::Library::ReaderPointer.new ptr
8
+ end
9
+
10
+ def decode bitmap, hints = nil
11
+ hints ||= {}
12
+ th = hints[:try_harder]
13
+ hints.delete :try_harder
14
+ native_hints = nil
15
+ if hints.empty?
16
+ native_hints = ZXing::FFI::Library::DecodeHintsPointer.new(ZXing::FFI::Library.DecodeHints_default)
17
+ else
18
+ native_hints = ZXing::FFI::Library::DecodeHintsPointer.new(ZXing::FFI::Library.DecodeHints_new(0))
19
+ hints.each do |k, v|
20
+ case k
21
+ when :possible_formats
22
+ v.each do |format|
23
+ case format
24
+ when :DATA_MATRIX
25
+ ZXing::FFI::Library.
26
+ DecodeHints_setDataMatrix native_hints, true
27
+ else
28
+ raise "implement hint for #{format}"
29
+ end
30
+ end
31
+ else
32
+ raise "implement #{k} #{v}"
33
+ end
34
+ end
35
+ end
36
+ if th
37
+ ZXing::FFI::Library.DecodeHints_setTryHarder native_hints, th
38
+ end
39
+ # p @native, bitmap.native, native_hints
40
+ ptr = ZXing::FFI::Library.Reader_decode @native, bitmap.native, native_hints
41
+ # p ptr
42
+ if (ptr.address & 1) != 0
43
+ ptr = FFI::Pointer.new(ptr.address & ~1)
44
+ ptrs = ptr.read_array_of_pointer 2
45
+
46
+ className = ptrs[0].read_string.sub(%r{^zxing},"ZXing")
47
+ what = ptrs[1].read_string
48
+
49
+ ZXing::FFI::Library.free ptrs[1]
50
+ ZXing::FFI::Library.free ptr
51
+
52
+ cls = className.split("::").inject(Object) { |parent, child| parent.const_get(child) }
53
+
54
+ raise cls.new what
55
+ end
56
+ ZXing::Result.new ZXing::FFI::Library::ResultPointer.new ptr
57
+ end
58
+ end
@@ -0,0 +1,23 @@
1
+ module ZXing; end
2
+ module ZXing::FFI; end
3
+
4
+ class ZXing::FFI::Result
5
+ include ZXing::Result
6
+
7
+ def format
8
+ enum = ZXing::FFI::Library.Result_getBarcodeFormat @native
9
+ ZXing::FFI::Library.BarcodeFormat_enum_to_string enum
10
+ end
11
+
12
+ def text
13
+ s = ZXing::FFI::Library.String_string ZXing::FFI::Library::StringPointer.new(ZXing::FFI::Library.Result_getText(@native))
14
+ if RUBY_VERSION =~ /^1.9/
15
+ s.force_encoding("UTF-8")
16
+ end
17
+ s
18
+ end
19
+
20
+ def metadata
21
+ end
22
+
23
+ end
@@ -0,0 +1,4 @@
1
+ module ZXing; end
2
+
3
+ class ZXing::FormatException < Exception
4
+ end
@@ -0,0 +1,4 @@
1
+ module ZXing; end
2
+
3
+ class ZXing::IllegalArgumentException < ZXing::Exception
4
+ end
@@ -0,0 +1,15 @@
1
+ module ZXing; end
2
+
3
+ module ZXing::Image
4
+
5
+ def self.read *args
6
+ ZXing::RMagick::Image::read(*args)
7
+ end
8
+
9
+ attr_reader :native
10
+
11
+ def initialize native
12
+ @native = native
13
+ end
14
+
15
+ end
@@ -0,0 +1,18 @@
1
+ module ZXing; end
2
+
3
+ module ZXing::LuminanceSource
4
+
5
+ def self.new image
6
+ if self == ZXing::LuminanceSource
7
+ image.class.const_get("LuminanceSource").new image
8
+ else
9
+ super
10
+ end
11
+ end
12
+
13
+ attr_reader :native
14
+
15
+ def initialize native
16
+ @native = native
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ module ZXing; end
2
+
3
+ module ZXing::MultiFormatReader
4
+ def self.new *args
5
+ if self == ZXing::MultiFormatReader
6
+ ZXing::FFI::MultiFormatReader.new
7
+ else
8
+ super
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,4 @@
1
+ module ZXing; end
2
+
3
+ class ZXing::NotFoundException < ZXing::Exception
4
+ end
data/lib/zxing/oned.rb ADDED
@@ -0,0 +1,5 @@
1
+ module ZXing; end
2
+
3
+ module ZXing::OneD
4
+ autoload :Code39Reader, 'zxing/oned/code_39_reader'
5
+ end
@@ -0,0 +1,15 @@
1
+ module ZXing; end
2
+ module ZXing::OneD; end
3
+
4
+ module ZXing::OneD::Code39Reader
5
+ extend ZXing::Reader
6
+
7
+ def self.new *args
8
+ if self == ZXing::OneD::Code39Reader
9
+ ZXing::FFI::OneD::Code39Reader.new(*args)
10
+ else
11
+ super
12
+ end
13
+ end
14
+
15
+ end
@@ -0,0 +1,8 @@
1
+ module ZXing; end
2
+
3
+ module ZXing::QRCode
4
+ autoload :QRCodeReader, 'zxing/qrcode/qrcode_reader'
5
+ autoload :Detector, 'zxing/qrcode/detector'
6
+ autoload :Decoder, 'zxing/qrcode/decoder'
7
+ autoload :Encoder, 'zxing/qrcode/encoder'
8
+ end
@@ -0,0 +1,14 @@
1
+ module ZXing; end
2
+ module ZXing::QRCode; end
3
+
4
+ module ZXing::QRCode::Decoder
5
+ include ZXing::Binarizer
6
+
7
+ def self.new *args
8
+ if self == ZXing::QRCode::Decoder
9
+ ZXing::FFI::QRCode::Decoder.new(*args)
10
+ else
11
+ super
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ module ZXing; end
2
+ module ZXing::QRCode; end
3
+
4
+ module ZXing::QRCode::Detector
5
+ include ZXing::Binarizer
6
+
7
+ def self.new *args
8
+ if self == ZXing::QRCode::Detector
9
+ ZXing::FFI::QRCode::Detector.new(*args)
10
+ else
11
+ super
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,8 @@
1
+ module ZXing; end
2
+ module ZXing::QRCode; end
3
+
4
+ module ZXing::QRCode::Encoder
5
+ autoload :Encoder, 'zxing/qrcode/encoder/encoder'
6
+ autoload :QRCode, 'zxing/qrcode/encoder/qrcode'
7
+ autoload :ByteMatrix, 'zxing/qrcode/encoder/byte_matrix'
8
+ end
@@ -0,0 +1,18 @@
1
+ module ZXing; end
2
+ module ZXing::QRCode; end
3
+ module ZXing::QRCode::Encoder; end
4
+
5
+ module ZXing::QRCode::Encoder::ByteMatrix
6
+ def self.new *args
7
+ if self == ZXing::QRCode::Encoder::ByteMatrix
8
+ ZXing::FFI::QRCode::Encoder::ByteMatrix.new(*args)
9
+ else
10
+ super
11
+ end
12
+ end
13
+
14
+ attr_reader :native
15
+ def initialize native
16
+ @native = native
17
+ end
18
+ end
@@ -0,0 +1,9 @@
1
+ module ZXing; end
2
+ module ZXing::QRCode; end
3
+ module ZXing::QRCode::Encoder; end
4
+
5
+ module ZXing::QRCode::Encoder::Encoder
6
+ def self.encode *args
7
+ ZXing::FFI::QRCode::Encoder::Encoder.encode *args
8
+ end
9
+ end
@@ -0,0 +1,18 @@
1
+ module ZXing; end
2
+ module ZXing::QRCode; end
3
+ module ZXing::QRCode::Encoder; end
4
+
5
+ module ZXing::QRCode::Encoder::QRCode
6
+ def self.new *args
7
+ if self == ZXing::QRCode::Encoder::QRCode
8
+ ZXing::FFI::QRCode::Encoder::QRCode.new(*args)
9
+ else
10
+ super
11
+ end
12
+ end
13
+
14
+ attr_reader :native
15
+ def initialize native
16
+ @native = native
17
+ end
18
+ end
@@ -0,0 +1,8 @@
1
+ module ZXing; end
2
+
3
+ module ZXing::Reader
4
+ attr_reader :native
5
+ def initialize native
6
+ @native = native
7
+ end
8
+ end
@@ -0,0 +1,4 @@
1
+ module ZXing; end
2
+
3
+ class ZXing::ReaderException < ZXing::Exception
4
+ end
@@ -0,0 +1,2 @@
1
+ module ZXing; end
2
+ class ZXing::ReedSolomonException < ZXing::Exception; end
@@ -0,0 +1,18 @@
1
+ module ZXing; end
2
+
3
+ module ZXing::Result
4
+ def self.new *args
5
+ if self == ZXing::Result
6
+ ZXing::FFI::Result.new(*args)
7
+ else
8
+ super
9
+ end
10
+ end
11
+
12
+ attr_reader :native
13
+
14
+ def initialize native
15
+ @native = native
16
+ end
17
+
18
+ end
@@ -0,0 +1,5 @@
1
+ module ZXing; end
2
+
3
+ module ZXing::RMagick
4
+ autoload :Image, 'zxing/rmagick/image'
5
+ end
@@ -0,0 +1,109 @@
1
+ begin
2
+ # Support both newer 'rmagick' require and deprecated 'RMagick' require:
3
+ require 'rmagick'
4
+ rescue LoadError => e
5
+ require 'RMagick'
6
+ end
7
+
8
+ module ZXing; end
9
+ module ZXing::RMagick; end
10
+
11
+ class ZXing::RMagick::Image
12
+ include ZXing::Image
13
+ LuminanceSource = ZXing::FFI::Common::GreyscaleLuminanceSource
14
+
15
+ def self.read argument
16
+ img = nil
17
+
18
+ if argument.is_a? String
19
+ if argument.encoding.name == Encoding.aliases['BINARY']
20
+ begin
21
+ img = Magick::Image.from_blob(argument)[0]
22
+ rescue Exception => e
23
+ # Because 'BINARY' is just an alias for ASCII-8BIT, if treating the
24
+ # argument as image blob failed, we should continue on and try treat
25
+ # the argument like a regular string.
26
+ end
27
+ end
28
+ end
29
+
30
+ if img.nil?
31
+ require 'uri'
32
+ require 'pathname'
33
+
34
+ uri = URI.parse(argument.respond_to?(:path) ? argument.path : argument.to_s)
35
+
36
+ if uri.scheme.nil?
37
+ uri.scheme = "file"
38
+ uri.path = Pathname.new(uri.path).realpath.to_s
39
+ end
40
+
41
+ begin
42
+ img = case uri.scheme
43
+ when "file"; Magick::Image.read(uri.path)[0]
44
+ else; Magick::Image.from_blob(fetch(uri).body)[0]
45
+ end
46
+ rescue Exception => e
47
+ raise ZXing::BadImageException.new e.message
48
+ end
49
+ end
50
+
51
+ # p Magick::Magick_version
52
+ # p img.colorspace
53
+ img.colorspace = Magick::RGBColorspace
54
+ # p img.colorspace
55
+
56
+ if false
57
+ (8..8).each do |j|
58
+ (8..8).each do |i|
59
+ p i,j
60
+ pixel = img.pixel_color(i,j)
61
+ r = pixel.red&0xff
62
+ g = pixel.green&0xff
63
+ b = pixel.blue&0xff
64
+ p ['%x'%r, '%x'%g, '%x'%b]
65
+ p [r, g, b]
66
+ p ((306 * (r) + 601 * (g) + 117 * (b) + (1 << 9)) >> 10)
67
+ p img.export_pixels_to_str(i, j, 1, 1, "I").ord
68
+ p "x"
69
+ end
70
+ end
71
+ end
72
+
73
+ self.new img
74
+ end
75
+
76
+ def rotate angle
77
+ self.class.new @native.rotate(angle)
78
+ end
79
+
80
+ def width
81
+ @native.columns
82
+ end
83
+
84
+ def height
85
+ @native.rows
86
+ end
87
+
88
+ def gray
89
+ @native.export_pixels_to_str(0, 0, @native.columns, @native.rows, "I")
90
+ end
91
+
92
+ private
93
+
94
+ def self.fetch(uri, limit = 10)
95
+ # You should choose better exception.
96
+ raise ArgumentError, 'HTTP redirect too deep' if limit == 0
97
+
98
+ require 'net/http'
99
+
100
+ response = Net::HTTP.get_response(uri)
101
+ case response
102
+ when Net::HTTPSuccess; response
103
+ when Net::HTTPRedirection
104
+ fetch(URI.parse(response['location']), limit-1)
105
+ else
106
+ response.error!
107
+ end
108
+ end
109
+ end