*/\r
private static BitMatrix extractPureBits(BinaryBitmap image) throws ReaderException {\r
// Now need to determine module size in pixels\r
-\r
- int height = image.getHeight();\r
- int width = image.getWidth();\r
+ BitMatrix matrix = image.getBlackMatrix();\r
+ int height = matrix.getHeight();\r
+ int width = matrix.getWidth();\r
int minDimension = Math.min(height, width);\r
\r
// First, skip white border by tracking diagonally from the top left down and to the right:\r
int borderWidth = 0;\r
- while (borderWidth < minDimension && !image.isBlack(borderWidth, borderWidth)) {\r
+ while (borderWidth < minDimension && !matrix.get(borderWidth, borderWidth)) {\r
borderWidth++;\r
}\r
if (borderWidth == minDimension) {\r
\r
// And then keep tracking across the top-left black module to determine module size\r
int moduleEnd = borderWidth;\r
- while (moduleEnd < minDimension && image.isBlack(moduleEnd, moduleEnd)) {\r
+ while (moduleEnd < minDimension && matrix.get(moduleEnd, moduleEnd)) {\r
moduleEnd++;\r
}\r
if (moduleEnd == minDimension) {\r
\r
// And now find where the rightmost black module on the first row ends\r
int rowEndOfSymbol = width - 1;\r
- while (rowEndOfSymbol >= 0 && !image.isBlack(rowEndOfSymbol, borderWidth)) {\r
+ while (rowEndOfSymbol >= 0 && !matrix.get(rowEndOfSymbol, borderWidth)) {\r
rowEndOfSymbol--;\r
}\r
if (rowEndOfSymbol < 0) {\r
\r
// Now just read off the bits\r
BitMatrix bits = new BitMatrix(dimension);\r
- for (int i = 0; i < dimension; i++) {\r
- int iOffset = borderWidth + i * moduleSize;\r
- for (int j = 0; j < dimension; j++) {\r
- if (image.isBlack(borderWidth + j * moduleSize, iOffset)) {\r
- bits.set(i, j);\r
+ for (int y = 0; y < dimension; y++) {\r
+ int iOffset = borderWidth + y * moduleSize;\r
+ for (int x = 0; x < dimension; x++) {\r
+ if (matrix.get(borderWidth + x * moduleSize, iOffset)) {\r
+ bits.set(x, y);\r
}\r
}\r
}\r
return bits;\r
}\r
}\r
-\r