From 783c330e194d8fc405a039941953dca978d538d5 Mon Sep 17 00:00:00 2001 From: dswitkin Date: Tue, 1 Apr 2008 21:23:14 +0000 Subject: [PATCH] Fixed the result points for 1D decoding so that we once again get a green line in the Android client across the successful row. git-svn-id: http://zxing.googlecode.com/svn/trunk@335 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- .../zxing/oned/AbstractUPCEANReader.java | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/core/src/com/google/zxing/oned/AbstractUPCEANReader.java b/core/src/com/google/zxing/oned/AbstractUPCEANReader.java index 68132d12..c85ff580 100644 --- a/core/src/com/google/zxing/oned/AbstractUPCEANReader.java +++ b/core/src/com/google/zxing/oned/AbstractUPCEANReader.java @@ -102,12 +102,10 @@ public abstract class AbstractUPCEANReader extends AbstractOneDReader implements return decodeRow(rowNumber, row, findStartGuardPattern(row)); } - public final Result decodeRow(int rowNumber, BitArray row, int[] startGuardRange) throws ReaderException { - + public final Result decodeRow(int rowNumber, BitArray row, int[] startGuardRange) + throws ReaderException { StringBuffer result = new StringBuffer(); - int endStart = decodeMiddle(row, startGuardRange, result); - int[] endRange = decodeEnd(row, endStart); // Check for whitespace after the pattern @@ -121,12 +119,13 @@ public abstract class AbstractUPCEANReader extends AbstractOneDReader implements throw new ReaderException("Checksum failed"); } - return new Result( - resultString, + float left = (float) (startGuardRange[1] + startGuardRange[0]) / 2.0f; + float right = (float) (endRange[1] + endRange[0]) / 2.0f; + return new Result(resultString, null, // no natural byte representation for these barcodes new ResultPoint[]{ - new GenericResultPoint((float) (startGuardRange[1] - startGuardRange[0]) / 2.0f, (float) rowNumber), - new GenericResultPoint((float) (endRange[1] - endRange[0]) / 2.0f, (float) rowNumber)}, + new GenericResultPoint(left, (float) rowNumber), + new GenericResultPoint(right, (float) rowNumber)}, getBarcodeFormat()); } @@ -241,10 +240,8 @@ public abstract class AbstractUPCEANReader extends AbstractOneDReader implements * @return horizontal offset of first pixel beyond the decoded digit * @throws ReaderException if digit cannot be decoded */ - static int decodeDigit(BitArray row, - int[] counters, - int rowOffset, - int[][] patterns) throws ReaderException { + static int decodeDigit(BitArray row, int[] counters, int rowOffset, int[][] patterns) + throws ReaderException { recordPattern(row, rowOffset, counters); float bestVariance = MAX_VARIANCE; // worst variance we'll accept int bestMatch = -1; -- 2.20.1