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 and Description
    `UPCAReader()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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 Detail

    - #### UPCAReader

          public UPCAReader()

  - ### Method Detail

    - #### 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

Copyright © 2007–2018. All rights reserved.