// 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);
}
}
@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.