Class ByQuadrantReader

  • All Implemented Interfaces:
    Reader

    public final class ByQuadrantReader
    extends java.lang.Object
    implements Reader
    This class attempts to decode a barcode from an image, not by scanning the whole image, but by scanning subsets of the image. This is important when there may be multiple barcodes in an image, and detecting a barcode may find parts of multiple barcode and fail to decode (e.g. QR Codes). Instead this scans the four quadrants of the image -- and also the center 'quadrant' to cover the case where a barcode is found in the center.
    See Also:
    GenericMultipleBarcodeReader
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private Reader delegate  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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.
      private static void makeAbsolute​(ResultPoint[] points, int leftOffset, int topOffset)  
      void reset()
      Resets any internal state the implementation has after a decode, to prepare it for reuse.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • delegate

        private final Reader delegate
    • Constructor Detail

      • ByQuadrantReader

        public ByQuadrantReader​(Reader delegate)
    • Method Detail

      • decode

        public Result decode​(BinaryBitmap image,
                             java.util.Map<DecodeHintType,​?> hints)
                      throws NotFoundException,
                             ChecksumException,
                             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
        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
        ChecksumException - if a potential barcode is found but does not pass its checksum
        FormatException - if a potential barcode is found but format is invalid
      • reset

        public void reset()
        Description copied from interface: Reader
        Resets any internal state the implementation has after a decode, to prepare it for reuse.
        Specified by:
        reset in interface Reader
      • makeAbsolute

        private static void makeAbsolute​(ResultPoint[] points,
                                         int leftOffset,
                                         int topOffset)