Package com.google.zxing.qrcode.decoder
Enum DataMask
- All Implemented Interfaces:
Serializable
,Comparable<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.
-
Enum Constant Summary
Enum ConstantsEnum ConstantDescription000: mask bits for which (x + y) mod 2 == 0001: mask bits for which x mod 2 == 0010: mask bits for which y mod 3 == 0011: mask bits for which (x + y) mod 3 == 0100: mask bits for which (x/2 + y/3) mod 2 == 0101: mask bits for which xy mod 2 + xy mod 3 == 0 equivalently, such that xy mod 6 == 0110: mask bits for which (xy mod 2 + xy mod 3) mod 2 == 0 equivalently, such that xy mod 6 invalid input: '<' 3111: mask bits for which ((x+y)mod 2 + xy mod 3) mod 2 == 0 equivalently, such that (x + y + xy mod 3) mod 2 == 0 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) abstract boolean
isMasked
(int i, int j) (package private) final void
unmaskBitMatrix
(BitMatrix bits, int dimension) Implementations of this method reverse the data masking process applied to a QR Code and make its bits ready to read.static DataMask
Returns the enum constant of this type with the specified name.static DataMask[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
Enum Constant Details
-
DATA_MASK_000
000: mask bits for which (x + y) mod 2 == 0 -
DATA_MASK_001
001: mask bits for which x mod 2 == 0 -
DATA_MASK_010
010: mask bits for which y mod 3 == 0 -
DATA_MASK_011
011: mask bits for which (x + y) mod 3 == 0 -
DATA_MASK_100
100: mask bits for which (x/2 + y/3) mod 2 == 0 -
DATA_MASK_101
101: mask bits for which xy mod 2 + xy mod 3 == 0 equivalently, such that xy mod 6 == 0 -
DATA_MASK_110
110: mask bits for which (xy mod 2 + xy mod 3) mod 2 == 0 equivalently, such that xy mod 6 invalid input: '<' 3 -
DATA_MASK_111
111: mask bits for which ((x+y)mod 2 + xy mod 3) mod 2 == 0 equivalently, such that (x + y + xy mod 3) mod 2 == 0
-
-
Constructor Details
-
DataMask
private DataMask()
-
-
Method Details
-
values
Returns an array containing the constants of this enum type, in the order they are declared.- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is null
-
unmaskBitMatrix
Implementations of this method reverse the data masking process applied to a QR Code and make its bits ready to read.
- Parameters:
bits
- representation of QR Code bitsdimension
- dimension of QR Code, represented by bits, being unmasked
-
isMasked
abstract boolean isMasked(int i, int j)
-