Package com.google.zxing.oned
Class UPCEANReader
- java.lang.Object
-
- com.google.zxing.oned.OneDReader
-
- com.google.zxing.oned.UPCEANReader
-
- All Implemented Interfaces:
Reader
- Direct Known Subclasses:
EAN13Reader,EAN8Reader,UPCAReader,UPCEReader
public abstract class UPCEANReader extends OneDReader
Encapsulates functionality and implementation that is common to UPC and EAN families of one-dimensional barcodes.
-
-
Field Summary
-
Fields inherited from class com.google.zxing.oned.OneDReader
INTEGER_MATH_SHIFT, PATTERN_MATCH_RESULT_SCALE_FACTOR
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedUPCEANReader()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract intdecodeMiddle(BitArray row, int[] startRange, java.lang.StringBuilder resultString)Subclasses override this to decode the portion of a barcode between the start and end guard patterns.ResultdecodeRow(int rowNumber, BitArray row, int[] startGuardRange, java.util.Map<DecodeHintType,?> hints)LikedecodeRow(int, BitArray, java.util.Map), but allows caller to inform method about where the UPC/EAN start pattern is found.ResultdecodeRow(int rowNumber, BitArray row, java.util.Map<DecodeHintType,?> hints)Attempts to decode a one-dimensional barcode format given a single row of an image.-
Methods inherited from class com.google.zxing.oned.OneDReader
decode, decode, patternMatchVariance, recordPattern, recordPatternInReverse, reset
-
-
-
-
Method Detail
-
decodeRow
public Result decodeRow(int rowNumber, BitArray row, java.util.Map<DecodeHintType,?> hints) throws NotFoundException, ChecksumException, FormatException
Description copied from class:OneDReaderAttempts to decode a one-dimensional barcode format given a single row of an image.
- Specified by:
decodeRowin classOneDReader- Parameters:
rowNumber- row number from top of the rowrow- the black/white pixel data of the rowhints- decode hints- Returns:
Resultcontaining encoded string and start/end of barcode- Throws:
NotFoundException- if no potential barcode is foundChecksumException- if a potential barcode is found but does not pass its checksumFormatException- if a potential barcode is found but format is invalid
-
decodeRow
public Result decodeRow(int rowNumber, BitArray row, int[] startGuardRange, java.util.Map<DecodeHintType,?> hints) throws NotFoundException, ChecksumException, FormatException
Like
decodeRow(int, BitArray, java.util.Map), but allows caller to inform method about where the UPC/EAN start pattern is found. This allows this to be computed once and reused across many implementations.- Parameters:
rowNumber- row index into the imagerow- encoding of the row of the barcode imagestartGuardRange- start/end column where the opening start pattern was foundhints- optional hints that influence decoding- Returns:
Resultencapsulating the result of decoding a barcode in the row- Throws:
NotFoundException- if no potential barcode is foundChecksumException- if a potential barcode is found but does not pass its checksumFormatException- if a potential barcode is found but format is invalid
-
decodeMiddle
protected abstract int decodeMiddle(BitArray row, int[] startRange, java.lang.StringBuilder resultString) throws NotFoundException
Subclasses override this to decode the portion of a barcode between the start and end guard patterns.- Parameters:
row- row of black/white values to searchstartRange- start/end offset of start guard patternresultString-StringBuilderto append decoded chars to- Returns:
- horizontal offset of first pixel after the "middle" that was decoded
- Throws:
NotFoundException- if decoding could not complete successfully
-
-