com.google.zxing.oned
Class UPCAReader

java.lang.Object
  extended by com.google.zxing.oned.OneDReader
      extended by com.google.zxing.oned.UPCEANReader
          extended by com.google.zxing.oned.UPCAReader
All Implemented Interfaces:
Reader

public final class UPCAReader
extends UPCEANReader

Implements decoding of the UPC-A format.

Author:
dswitkin@google.com (Daniel Switkin), Sean Owen

Field Summary
 
Fields inherited from class com.google.zxing.oned.OneDReader
INTEGER_MATH_SHIFT, PATTERN_MATCH_RESULT_SCALE_FACTOR
 
Constructor Summary
UPCAReader()
           
 
Method Summary
 Result decode(BinaryBitmap image)
          Locates and decodes a barcode in some format within an image.
 Result decode(BinaryBitmap image, java.util.Map<DecodeHintType,?> hints)
          Locates and decodes a barcode in some format within an image.
protected  int decodeMiddle(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.
 Result decodeRow(int rowNumber, BitArray row, int[] startGuardRange, java.util.Map<DecodeHintType,?> hints)
          Like UPCEANReader.decodeRow(int, BitArray, java.util.Map), but allows caller to inform method about where the UPC/EAN start pattern is found.
 Result decodeRow(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
patternMatchVariance, recordPattern, recordPatternInReverse, reset
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UPCAReader

public UPCAReader()
Method Detail

decodeRow

public Result decodeRow(int rowNumber,
                        BitArray row,
                        int[] startGuardRange,
                        java.util.Map<DecodeHintType,?> hints)
                 throws NotFoundException,
                        FormatException,
                        ChecksumException
Description copied from class: UPCEANReader

Like UPCEANReader.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.

Overrides:
decodeRow in class UPCEANReader
Throws:
NotFoundException
FormatException
ChecksumException

decodeRow

public Result decodeRow(int rowNumber,
                        BitArray row,
                        java.util.Map<DecodeHintType,?> hints)
                 throws NotFoundException,
                        FormatException,
                        ChecksumException
Description copied from class: OneDReader

Attempts to decode a one-dimensional barcode format given a single row of an image.

Overrides:
decodeRow in class UPCEANReader
Parameters:
rowNumber - row number from top of the row
row - the black/white pixel data of the row
hints - decode hints
Returns:
Result containing encoded string and start/end of barcode
Throws:
NotFoundException - if an error occurs or barcode cannot be found
FormatException
ChecksumException

decode

public Result decode(BinaryBitmap image)
              throws NotFoundException,
                     FormatException
Description copied from interface: Reader
Locates and decodes a barcode in some format within an image.

Specified by:
decode in interface Reader
Overrides:
decode in class OneDReader
Parameters:
image - image of barcode to decode
Returns:
String which the barcode encodes
Throws:
NotFoundException - if the barcode cannot be located or decoded for any reason
FormatException

decode

public Result decode(BinaryBitmap image,
                     java.util.Map<DecodeHintType,?> hints)
              throws NotFoundException,
                     FormatException
Description copied from interface: Reader
Locates and decodes a barcode in some format within an image. This method also accepts hints, each possibly associated to some data, which may help the implementation decode.

Specified by:
decode in interface Reader
Overrides:
decode in class OneDReader
Parameters:
image - image of barcode to decode
hints - passed as a Map from DecodeHintType to arbitrary data. The meaning of the data depends upon the hint type. The implementation may or may not do anything with these hints.
Returns:
String which the barcode encodes
Throws:
NotFoundException - if the barcode cannot be located or decoded for any reason
FormatException

decodeMiddle

protected int decodeMiddle(BitArray row,
                           int[] startRange,
                           java.lang.StringBuilder resultString)
                    throws NotFoundException
Description copied from class: UPCEANReader
Subclasses override this to decode the portion of a barcode between the start and end guard patterns.

Specified by:
decodeMiddle in class UPCEANReader
Parameters:
row - row of black/white values to search
startRange - start/end offset of start guard pattern
resultString - 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