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
Encapsulates functionality and implementation that is common to UPC and EAN families of one-dimensional barcodes.
- Author:
- dswitkin@google.com (Daniel Switkin), Sean Owen, alasdair@google.com (Alasdair Mackintosh)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract int
decodeMiddle
(BitArray row, int[] startRange, StringBuilder resultString) Subclasses override this to decode the portion of a barcode between the start and end guard patterns.decodeRow
(int rowNumber, BitArray row, int[] startGuardRange, Map<DecodeHintType, ?> hints) LikedecodeRow(int, BitArray, Map)
, but allows caller to inform method about where the UPC/EAN start pattern is found.decodeRow
(int rowNumber, BitArray row, 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
-
Constructor Details
-
UPCEANReader
protected UPCEANReader()
-
-
Method Details
-
decodeRow
public Result decodeRow(int rowNumber, BitArray row, Map<DecodeHintType, ?> hints) throws NotFoundException, ChecksumException, FormatExceptionDescription copied from class:OneDReader
Attempts to decode a one-dimensional barcode format given a single row of an image.
- Specified by:
decodeRow
in classOneDReader
- Parameters:
rowNumber
- row number from top of the rowrow
- the black/white pixel data of the rowhints
- decode hints- Returns:
Result
containing 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, Map<DecodeHintType, ?> hints) throws NotFoundException, ChecksumException, FormatExceptionLike
decodeRow(int, BitArray, 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:
Result
encapsulating 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, 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
-StringBuilder
to append decoded chars to- Returns:
- horizontal offset of first pixel after the "middle" that was decoded
- Throws:
NotFoundException
- if decoding could not complete successfully
-