Remove use of BinaryBitmap in QR Code, DM
[zxing.git] / core / src / com / google / zxing / multi / qrcode / detector / MultiFinderPatternFinder.java
index c5d8691..96f04d1 100644 (file)
 package com.google.zxing.multi.qrcode.detector;\r
 \r
 import com.google.zxing.DecodeHintType;\r
-import com.google.zxing.BinaryBitmap;\r
 import com.google.zxing.ReaderException;\r
 import com.google.zxing.ResultPoint;\r
-import com.google.zxing.common.BitArray;\r
 import com.google.zxing.common.Collections;\r
 import com.google.zxing.common.Comparator;\r
+import com.google.zxing.common.BitMatrix;\r
 import com.google.zxing.qrcode.detector.FinderPattern;\r
 import com.google.zxing.qrcode.detector.FinderPatternFinder;\r
 import com.google.zxing.qrcode.detector.FinderPatternInfo;\r
@@ -87,7 +86,7 @@ final class MultiFinderPatternFinder extends FinderPatternFinder {
    *\r
    * @param image image to search\r
    */\r
-  MultiFinderPatternFinder(BinaryBitmap image) {\r
+  MultiFinderPatternFinder(BitMatrix image) {\r
     super(image);\r
   }\r
 \r
@@ -228,7 +227,7 @@ final class MultiFinderPatternFinder extends FinderPatternFinder {
 \r
   public FinderPatternInfo[] findMulti(Hashtable hints) throws ReaderException {\r
     boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);\r
-    BinaryBitmap image = getImage();\r
+    BitMatrix image = getImage();\r
     int maxI = image.getHeight();\r
     int maxJ = image.getWidth();\r
     // We are looking for black/white/black/white/black modules in\r
@@ -245,10 +244,7 @@ final class MultiFinderPatternFinder extends FinderPatternFinder {
 \r
     int[] stateCount = new int[5];\r
     for (int i = iSkip - 1; i < maxI; i += iSkip) {\r
-      BitArray blackRow = new BitArray(maxJ);\r
-\r
       // Get a row of black/white values\r
-      blackRow = image.getBlackRow(i, blackRow, 0, maxJ);\r
       stateCount[0] = 0;\r
       stateCount[1] = 0;\r
       stateCount[2] = 0;\r
@@ -256,7 +252,7 @@ final class MultiFinderPatternFinder extends FinderPatternFinder {
       stateCount[4] = 0;\r
       int currentState = 0;\r
       for (int j = 0; j < maxJ; j++) {\r
-        if (blackRow.get(j)) {\r
+        if (image.get(j, i)) {\r
           // Black pixel\r
           if ((currentState & 1) == 1) { // Counting white pixels\r
             currentState++;\r
@@ -270,7 +266,7 @@ final class MultiFinderPatternFinder extends FinderPatternFinder {
                 if (!confirmed) {\r
                   do { // Advance to next black pixel\r
                     j++;\r
-                  } while (j < maxJ && !blackRow.get(j));\r
+                  } while (j < maxJ && !image.get(j, i));\r
                   j--; // back up to that last white pixel\r
                 }\r
                 // Clear state to start looking again\r