More fixes, to cropping BufferedImages
authorsrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Fri, 13 Nov 2009 10:46:04 +0000 (10:46 +0000)
committersrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Fri, 13 Nov 2009 10:46:04 +0000 (10:46 +0000)
git-svn-id: http://zxing.googlecode.com/svn/trunk@1109 59b500cc-1b3d-0410-9834-0bbf25fbcc57

core/src/com/google/zxing/multi/GenericMultipleBarcodeReader.java
javase/src/com/google/zxing/client/j2se/BufferedImageLuminanceSource.java

index b25a688..8760528 100644 (file)
@@ -121,21 +121,23 @@ public final class GenericMultipleBarcodeReader implements MultipleBarcodeReader
 
     // Decode left of barcode
     if (minX > MIN_DIMENSION_TO_RECUR) {
-      doDecodeMultiple(image.crop(0, 0, (int) minX, height), hints, results, 0, 0);
+      doDecodeMultiple(image.crop(0, 0, (int) minX, height),
+                       hints, results, xOffset, yOffset);
     }
     // Decode above barcode
     if (minY > MIN_DIMENSION_TO_RECUR) {
-      doDecodeMultiple(image.crop(0, 0, width, (int) minY), hints, results, 0, 0);
+      doDecodeMultiple(image.crop(0, 0, width, (int) minY),
+                       hints, results, xOffset, yOffset);
     }
     // Decode right of barcode
     if (maxX < width - MIN_DIMENSION_TO_RECUR) {
       doDecodeMultiple(image.crop((int) maxX, 0, width - (int) maxX, height),
-                       hints, results, (int) maxX, 0);
+                       hints, results, xOffset + (int) maxX, yOffset);
     }
     // Decode below barcode
     if (maxY < height - MIN_DIMENSION_TO_RECUR) {
       doDecodeMultiple(image.crop(0, (int) maxY, width, height - (int) maxY),
-                       hints, results, 0, (int) maxY);
+                       hints, results, xOffset, yOffset + (int) maxY);
     }
   }
 
index d9e61a3..e60d3e2 100644 (file)
@@ -110,7 +110,7 @@ public final class BufferedImageLuminanceSource extends LuminanceSource {
 
   @Override
   public LuminanceSource crop(int left, int top, int width, int height) {
-    return new BufferedImageLuminanceSource(image, left, top, width, height);
+    return new BufferedImageLuminanceSource(image, this.left + left, this.top + top, width, height);
   }
 
   // Can't run AffineTransforms on images of unknown format.