UPCAReader (ZXing 3.5.2 API)
Description: declaration: package: com.google.zxing.oned, class: UPCAReader

Package com.google.zxing.oned

# Class UPCAReader

java.lang.Object
com.google.zxing.oned.OneDReader
com.google.zxing.oned.UPCEANReader
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

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `UPCAReader()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Result`
  `decode(BinaryBitmap image)`
  Locates and decodes a barcode in some format within an image.
  `Result`
  `decode(BinaryBitmap image, Map<DecodeHintType,?> hints)`
  Locates and decodes a barcode in some format within an image.
  `protected 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.
  `Result`
  `decodeRow(int rowNumber, BitArray row, int[] startGuardRange, Map<DecodeHintType,?> hints)`
  Like `UPCEANReader.decodeRow(int, BitArray, Map)`, but allows caller to inform method about where the UPC/EAN start pattern is found.
  `Result`
  `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

  `patternMatchVariance, recordPattern, recordPatternInReverse, reset`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### UPCAReader

    public UPCAReader()

- ## Method Details

  - ### decodeRow

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

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

    Overrides:
      `decodeRow` in class `UPCEANReader`
    Parameters:
      `rowNumber` - row index into the image
      `row` - encoding of the row of the barcode image
      `startGuardRange` - start/end column where the opening start pattern was found
      `hints` - optional hints that influence decoding
    Returns:
      `Result` encapsulating the result of decoding a barcode in the row
    Throws:
      `NotFoundException` - if no potential barcode is found
      `FormatException` - if a potential barcode is found but format is invalid
      `ChecksumException` - if a potential barcode is found but does not pass its checksum

  - ### decodeRow

    public Result decodeRow(int rowNumber, BitArray row, 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 no potential barcode is found
      `FormatException` - if a potential barcode is found but format is invalid
      `ChecksumException` - if a potential barcode is found but does not pass its checksum

  - ### 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 no potential barcode is found
      `FormatException` - if a potential barcode is found but format is invalid

  - ### decode

    public Result decode(BinaryBitmap image, 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 no potential barcode is found
      `FormatException` - if a potential barcode is found but format is invalid

  - ### decodeMiddle

    protected int decodeMiddle(BitArray row, int[] startRange, 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