Namespace ZXing.Common
Classes
- BitArray
A simple, fast array of bits, represented compactly by an array of ints internally.
- BitMatrix
-
Represents a 2D matrix of bits. In function arguments below, and throughout the common module, x is the column position, and y is the row position. The ordering is always x, y. The origin is at the top-left.
Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins with a new int. This is done intentionally so that we can copy out a row into a BitArray very efficiently.
The ordering of bits is row-major. Within each int, the least significant bits are used first, meaning they represent lower x values. This is compatible with BitArray's implementation.
- BitSource
This provides an easy abstraction to read bits at a time from a sequence of bytes, where the number of bits read is not often a multiple of 8.
<p>This class is thread-safe but not reentrant. Unless the caller modifies the bytes array it passed in, in which case all bets are off.</p>
- CharacterSetECI
Encapsulates a Character Set ECI, according to "Extended Channel Interpretations" 5.3.1.1 of ISO 18004.
- DecoderResult
Encapsulates the result of decoding a matrix of bits. This typically applies to 2D barcode formats. For now it contains the raw bytes obtained, as well as a String interpretation of those bytes, if applicable.
Sean Owen
- DecodingOptions
Defines an container for encoder options
- DetectorResult
Encapsulates the result of detecting a barcode in an image. This includes the raw matrix of black/white pixels corresponding to the barcode, and possibly points of interest in the image, like the location of finder patterns or corners of the barcode in the image.
- ECI
Superclass of classes encapsulating types ECIs, according to "Extended Channel Interpretations" 5.3 of ISO 18004.
- ECIEncoderSet
Set of CharsetEncoders for a given input string Invariants:
- The list contains only encoders from CharacterSetECI(list is shorter then the list of encoders available on the platform for which ECI values are defined).
- The list contains encoders at least one encoder for every character in the input.
- The first encoder in the list is always the ISO-8859-1 encoder even of no character in the input can be encoded by it.
- If the input contains a character that is not in ISO-8859-1 then the last two entries in the list will be the UTF-8 encoder and the UTF-16BE encoder.
@author Alex Geller
- ECIStringBuilder
Class that converts a sequence of ECIs and bytes into a string
@author Alex Geller
- EncodingOptions
Defines an container for encoder options
- GlobalHistogramBinarizer
This Binarizer implementation uses the old ZXing global histogram approach. It is suitable for low-end mobile devices which don't have enough CPU or memory to use a local thresholding algorithm. However, because it picks a global black point, it cannot handle difficult shadows and gradients.
Faster mobile devices and all desktop applications should probably use HybridBinarizer instead. <author>dswitkin@google.com (Daniel Switkin)</author> <author>Sean Owen</author>
- GridSampler
Implementations of this class can, given locations of finder patterns for a QR code in an image, sample the right points in the image to reconstruct the QR code, accounting for perspective distortion. It is abstracted since it is relatively expensive and should be allowed to take advantage of platform-specific optimized implementations, like Sun's Java Advanced Imaging library, but which may not be available in other environments such as J2ME, and vice versa.
The implementation used can be controlled by calling {@link #setGridSampler(GridSampler)} with an instance of a class which implements this interface.
- HybridBinarizer
This class implements a local thresholding algorithm, which while slower than the GlobalHistogramBinarizer, is fairly efficient for what it does. It is designed for high frequency images of barcodes with black data on white backgrounds. For this application, it does a much better job than a global blackpoint with severe shadows and gradients. However it tends to produce artifacts on lower frequency images and is therefore not a good general purpose binarizer for uses outside ZXing.
This class extends GlobalHistogramBinarizer, using the older histogram approach for 1D readers, and the newer local approach for 2D readers. 1D decoding using a per-row histogram is already inherently local, and only fails for horizontal gradients. We can revisit that problem later, but for now it was not a win to use local blocks for 1D. This Binarizer is the default for the unit tests and the recommended class for library users. <author>dswitkin@google.com (Daniel Switkin)</author>
- MinimalECIInput
Class that converts a character string into a sequence of ECIs and bytes The implementation uses the Dijkstra algorithm to produce minimal encodings @author Alex Geller
- PerspectiveTransform
This class implements a perspective transform in two dimensions. Given four source and four destination points, it will compute the transformation implied between them. The code is based directly upon section 3.4.2 of George Wolberg's "Digital Image Warping"; see pages 54-56.
- StringUtils
Common string-related functions.
Interfaces
- ECIInput
Interface to navigate a sequence of ECIs and bytes. @author Alex Geller