A wrapper implementation of LuminanceSource which inverts the luminances it returns -- black becomes
white and vice versa, and each value becomes (255-value).
The purpose of this class hierarchy is to abstract different bitmap implementations across
platforms into a standard interface for requesting greyscale luminance values. The interface
only provides immutable methods; therefore crop and rotation create copies. This is to ensure
that one Reader does not modify the original luminance source and leave it in an unknown state
for other Readers in the chain.
MultiFormatReader is a convenience class and the main entry point into the library for most uses.
By default it attempts to decode all barcode formats that the library supports. Optionally, you
can provide a hints object to request different behavior, for example only decoding QR codes.
This is a factory class which finds the appropriate Writer subclass for the BarcodeFormat
requested and encodes the barcode with the supplied contents.
This object extends LuminanceSource around an array of YUV data returned from the camera driver,
with the option to crop to a rectangle within the full data. This can be used to exclude
superfluous pixels around the perimeter and speed up decoding.
Implementations of this interface can decode an image of a barcode in some format into
the String it encodes. For example, QRCodeReader can
decode a QR code. The decoder may optionally receive hints from the caller which may help
it decode more quickly or accurately.
Encapsulates a type of hint that a caller may pass to a barcode reader to help it
more quickly or accurately decode it. It is up to implementations to decide what,
if anything, to do with the information that is supplied.