C# (CSharp) zxingwp7.qrcode.decoder Namespace

Classes

Name Description
BitMatrixParser
DataMask

Encapsulates data masks for the data bits in a QR code, per ISO 18004:2006 6.8. Implementations of this class can un-mask a raw BitMatrix. For simplicity, they will unmask the entire BitMatrix, including areas used for finder patterns, timing patterns, etc. These areas should be unused after the point they are unmasked anyway.

Note that the diagram in section 6.8.1 is misleading since it indicates that i is column position and j is row position. In fact, as the text says, i is row position and j is column position.

DataMask.DataMask000 000: mask bits for which (x + y) mod 2 == 0
DataMask.DataMask001 001: mask bits for which x mod 2 == 0
DataMask.DataMask010 010: mask bits for which y mod 3 == 0
DataMask.DataMask011 011: mask bits for which (x + y) mod 3 == 0
DataMask.DataMask100 100: mask bits for which (x/2 + y/3) mod 2 == 0
DataMask.DataMask101 101: mask bits for which xy mod 2 + xy mod 3 == 0
DataMask.DataMask110 110: mask bits for which (xy mod 2 + xy mod 3) mod 2 == 0
DataMask.DataMask111 111: mask bits for which ((x+y)mod 2 + xy mod 3) mod 2 == 0
DecodedBitStreamParser

QR Codes can encode text as bits in one of several modes, and can use multiple modes in one QR Code. This class decodes the bits back into text.

See ISO 18004:2006, 6.4.3 - 6.4.7

ErrorCorrectionLevel

See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels defined by the QR code standard.

Mode

See ISO 18004:2006, 6.4.1, Tables 2 and 3. This enum encapsulates the various modes in which data can be encoded to bits in the QR code standard.

Version See ISO 18004:2006 Annex D
Version.ECB

Encapsualtes the parameters for one error-correction block in one symbol version. This includes the number of data codewords, and the number of times a block with these parameters is used consecutively in the QR code version's format.

Version.ECBlocks

Encapsulates a set of error-correction blocks in one symbol version. Most versions will use blocks of differing sizes within one version, so, this encapsulates the parameters for each set of blocks. It also holds the number of error-correction codewords per block since it will be the same across all blocks within one version.