Menu

## QRMatrix
in package

QRMatrix.php : 22

Holds a numerical representation of the final QR Code; maps the ECC coded binary data and applies the mask pattern

##### Tags

see
  http://www.thonky.com/qr-code-tutorial/format-version-information

### Table of Contents

IS_DARK = 0b100000000000
M_ALIGNMENT = 0b10000
M_DARKMODULE = 0b1
M_DATA = 0b10
M_FINDER = 0b100
M_FINDER_DOT = 0b10000000000
M_FORMAT = 0b1000000
M_LOGO = 0b1000000000
M_NULL = 0b0
M_QUIETZONE = 0b100000000
M_SEPARATOR = 0b1000
M_TEST = 0b11111111111
M_TIMING = 0b100000
M_VERSION = 0b10000000
neighbours = [0b1 => [-1, -1], 0b10 => [0, -1], 0b100 => [1, -1], 0b1000 => [1, 0], 0b10000 => [1, 1], 0b100000 => [0, 1], 0b1000000 => [-1, 1], 0b10000000 => [-1, 0]]
  Map of flag => coord
$eccLevel : EccLevel|null
  the current ECC level
$maskPattern : MaskPattern|null
  the used mask pattern, set via QRMatrix::mask()
$matrix : array<string|int, mixed>
  the actual matrix data array
$moduleCount : int
  the size (side length) of the matrix, including quiet zone (if created)
$version : Version|null
  a Version instance
__construct() : mixed
  QRMatrix constructor.
check() : bool
  Checks whether a module is true (dark) or false (light)
checkNeighbours() : int
  Checks the status neighbouring modules of the given module at ($x, $y) and returns a bitmask with the results.
checkType() : bool
  Checks whether a module is of the given $M_TYPE
checkTypeNotIn() : bool
  checks whether the module at ($x, $y) is not in the given array of $M_TYPES, returns true if no matches are found, otherwise false.
eccLevel() : EccLevel|null
  Returns the current ECC level
flip() : self
  Flips the value of the module
get() : int
  Returns the value of the module at position [$x, $y] or -1 if the coordinate is outside of the matrix
initFunctionalPatterns() : self
  shortcut to initialize the functional patterns
mask() : self
  Applies/reverses the mask pattern
maskPattern() : MaskPattern|null
  Returns the current mask pattern
matrix() : array<string|int, array<string|int, int>>|array<string|int, array<string|int, bool>>
  Returns the data matrix, returns a pure boolean representation if $boolean is set to true
set() : self
  Sets the $M_TYPE value for the module at position [$x, $y]
setAlignmentPattern() : self
  Draws the 5x5 alignment patterns
setDarkModule() : self
  Sets the "dark module", that is always on the same position 1x1px away from the bottom left finder
setFinderPattern() : self
  Draws the 7x7 finder patterns in the corners top left/right and bottom left
setFormatInfo() : self
  Draws the format info along the finder patterns
setLogoSpace() : self
  Clears a space of $width * $height in order to add a logo or text.
setQuietZone() : self
  Draws the "quiet zone" of $size around the matrix
setSeparators() : self
  Draws the separator lines around the finder patterns
setTimingPattern() : self
  Draws the timing pattern (h/v checkered line between the finder patterns)
setVersionNumber() : self
  Draws the version information, 2x 3x6 pixel
size() : int
  Returns the absoulute size of the matrix, including quiet zone (after setting it).
version() : Version|null
  Returns the current version number
writeCodewords() : self
  Maps the interleaved binary $data on the matrix
createMatrix() : array<string|int, mixed>
  Creates a 2-dimensional array (square) of the given $size

### Constants

#### IS_DARK

QRMatrix.php : 51
`public int IS_DARK = 0b100000000000`

#### M_ALIGNMENT

QRMatrix.php : 35
`public int M_ALIGNMENT = 0b10000`

#### M_DARKMODULE

QRMatrix.php : 27
`public int M_DARKMODULE = 0b1`

#### M_DATA

QRMatrix.php : 29
`public int M_DATA = 0b10`

#### M_FINDER

QRMatrix.php : 31
`public int M_FINDER = 0b100`

#### M_FINDER_DOT

QRMatrix.php : 47
`public int M_FINDER_DOT = 0b10000000000`

#### M_FORMAT

QRMatrix.php : 39
`public int M_FORMAT = 0b1000000`

#### M_LOGO

QRMatrix.php : 45
`public int M_LOGO = 0b1000000000`

#### M_NULL

QRMatrix.php : 25
`public int M_NULL = 0b0`

#### M_QUIETZONE

QRMatrix.php : 43
`public int M_QUIETZONE = 0b100000000`

#### M_SEPARATOR

QRMatrix.php : 33
`public int M_SEPARATOR = 0b1000`

#### M_TEST

QRMatrix.php : 49
`public int M_TEST = 0b11111111111`

#### M_TIMING

QRMatrix.php : 37
`public int M_TIMING = 0b100000`

#### M_VERSION

QRMatrix.php : 41
`public int M_VERSION = 0b10000000`

#### neighbours

QRMatrix.php : 60

Map of flag => coord

`protected array<string|int, mixed> neighbours = [0b1 => [-1, -1], 0b10 => [0, -1], 0b100 => [1, -1], 0b1000 => [1, 0], 0b10000 => [1, 1], 0b100000 => [0, 1], 0b1000000 => [-1, 1], 0b10000000 => [-1, 0]]`

##### Tags

see
  QRMatrix::checkNeighbours()

### Properties

#### $eccLevel

QRMatrix.php : 79

the current ECC level

`protected EccLevel|null $eccLevel = null`

#### $maskPattern

QRMatrix.php : 74

the used mask pattern, set via QRMatrix::mask()

`protected MaskPattern|null $maskPattern = null`

#### $matrix

QRMatrix.php : 96

the actual matrix data array

`protected array<string|int, mixed> $matrix`

#### $moduleCount

QRMatrix.php : 89

the size (side length) of the matrix, including quiet zone (if created)

`protected int $moduleCount`

#### $version

QRMatrix.php : 84

a Version instance

`protected Version|null $version = null`

### Methods

#### __construct()

QRMatrix.php : 101

QRMatrix constructor.

`public __construct(Version $version, EccLevel $eccLevel, MaskPattern $maskPattern) : mixed`

##### Parameters

$version : Version
$eccLevel : EccLevel
$maskPattern : MaskPattern

##### Return values

mixed —

#### check()

QRMatrix.php : 259

Checks whether a module is true (dark) or false (light)

`public check(int $x, int $y) : bool`

true => $value & 0x800 === 0x800 false => $value & 0x800 === 0

##### Parameters

$x : int
$y : int

##### Return values

bool —

#### checkNeighbours()

QRMatrix.php : 273

Checks the status neighbouring modules of the given module at ($x, $y) and returns a bitmask with the results.

`public checkNeighbours(int $x, int $y[, int $M_TYPE_VALUE = null ]) : int`

The 8 flags of the bitmask represent the status of each of the neighbouring fields, starting with the lowest bit for top left, going clockwise:

1 2 3 8 # 4 7 6 5

##### Parameters

$x : int
$y : int
$M_TYPE_VALUE : int = null

##### Return values

int —

#### checkType()

QRMatrix.php : 229

Checks whether a module is of the given $M_TYPE

`public checkType(int $x, int $y, int $M_TYPE) : bool`

true => $value & $M_TYPE === $M_TYPE

##### Parameters

$x : int
$y : int
$M_TYPE : int

##### Return values

bool —

#### checkTypeNotIn()

QRMatrix.php : 242

checks whether the module at ($x, $y) is not in the given array of $M_TYPES, returns true if no matches are found, otherwise false.

`public checkTypeNotIn(int $x, int $y, array<string|int, mixed> $M_TYPES) : bool`

##### Parameters

$x : int
$y : int
$M_TYPES : array<string|int, mixed>

##### Return values

bool —

#### eccLevel()

QRMatrix.php : 165

Returns the current ECC level

`public eccLevel() : EccLevel|null`

##### Return values

EccLevel|null —

#### flip()

QRMatrix.php : 215

Flips the value of the module

`public flip(int $x, int $y) : self`

##### Parameters

$x : int
$y : int

##### Return values

self —

#### get()

QRMatrix.php : 188

Returns the value of the module at position [$x, $y] or -1 if the coordinate is outside of the matrix

`public get(int $x, int $y) : int`

##### Parameters

$x : int
$y : int

##### Return values

int —

#### initFunctionalPatterns()

QRMatrix.php : 119

shortcut to initialize the functional patterns

`public initFunctionalPatterns() : self`

##### Return values

self —

#### mask()

QRMatrix.php : 642

Applies/reverses the mask pattern

`public mask() : self`

ISO/IEC 18004:2000 Section 8.8.1

##### Return values

self —

#### maskPattern()

QRMatrix.php : 172

Returns the current mask pattern

`public maskPattern() : MaskPattern|null`

##### Return values

MaskPattern|null —

#### matrix()

QRMatrix.php : 136

Returns the data matrix, returns a pure boolean representation if $boolean is set to true

`public matrix([bool $boolean = false ]) : array<string|int, array<string|int, int>>|array<string|int, array<string|int, bool>>`

##### Parameters

$boolean : bool = false

##### Return values

array<string|int, array<string|int, int>>|array<string|int, array<string|int, bool>> —

#### set()

QRMatrix.php : 203

Sets the $M_TYPE value for the module at position [$x, $y]

`public set(int $x, int $y, bool $value, int $M_TYPE) : self`

true => $M_TYPE | 0x800 false => $M_TYPE

##### Parameters

$x : int
$y : int
$value : bool
$M_TYPE : int

##### Return values

self —

#### setAlignmentPattern()

QRMatrix.php : 373

Draws the 5x5 alignment patterns

`public setAlignmentPattern() : self`

ISO/IEC 18004:2000 Section 7.3.5

##### Return values

self —

#### setDarkModule()

QRMatrix.php : 297

Sets the "dark module", that is always on the same position 1x1px away from the bottom left finder

`public setDarkModule() : self`

4 * version + 9 or moduleCount - 8

##### Return values

self —

#### setFinderPattern()

QRMatrix.php : 308

Draws the 7x7 finder patterns in the corners top left/right and bottom left

`public setFinderPattern() : self`

ISO/IEC 18004:2000 Section 7.3.2

##### Return values

self —

#### setFormatInfo()

QRMatrix.php : 450

Draws the format info along the finder patterns

`public setFormatInfo() : self`

ISO/IEC 18004:2000 Section 8.9

##### Return values

self —

#### setLogoSpace()

QRMatrix.php : 530

Clears a space of $width * $height in order to add a logo or text.

`public setLogoSpace(int $width, int $height[, int $startX = null ][, int $startY = null ]) : self`

Additionally, the logo space can be positioned within the QR Code - respecting the main functional patterns - using $startX and $startY. If either of these are null, the logo space will be centered in that direction. ECC level "H" (30%) is required.

Please note that adding a logo space minimizes the error correction capacity of the QR Code and created images may become unreadable, especially when printed with a chance to receive damage. Please test thoroughly before using this feature in production.

This method should be called from within an output module (after the matrix has been filled with data). Note that there is no restiction on how many times this method could be called on the same matrix instance.

##### Parameters

$width : int
$height : int
$startX : int = null
$startY : int = null

##### Tags

link
  https://github.com/chillerlan/php-qrcode/issues/52
throws
  QRCodeDataException

##### Return values

self —

#### setQuietZone()

QRMatrix.php : 488

Draws the "quiet zone" of $size around the matrix

`public setQuietZone(int $quietZoneSize) : self`

ISO/IEC 18004:2000 Section 7.3.7

##### Parameters

$quietZoneSize : int

##### Tags

throws
  QRCodeDataException

##### Return values

self —

#### setSeparators()

QRMatrix.php : 343

Draws the separator lines around the finder patterns

`public setSeparators() : self`

ISO/IEC 18004:2000 Section 7.3.3

##### Return values

self —

#### setTimingPattern()

QRMatrix.php : 404

Draws the timing pattern (h/v checkered line between the finder patterns)

`public setTimingPattern() : self`

ISO/IEC 18004:2000 Section 7.3.4

##### Return values

self —

#### setVersionNumber()

QRMatrix.php : 426

Draws the version information, 2x 3x6 pixel

`public setVersionNumber() : self`

ISO/IEC 18004:2000 Section 8.10

##### Return values

self —

#### size()

QRMatrix.php : 181

Returns the absoulute size of the matrix, including quiet zone (after setting it).

`public size() : int`

size = version * 4 + 17 [ + 2 * quietzone size]

##### Return values

int —

#### version()

QRMatrix.php : 158

Returns the current version number

`public version() : Version|null`

##### Return values

Version|null —

#### writeCodewords()

QRMatrix.php : 595

Maps the interleaved binary $data on the matrix

`public writeCodewords(BitBuffer $bitBuffer) : self`

##### Parameters

$bitBuffer : BitBuffer

##### Return values

self —

#### createMatrix()

QRMatrix.php : 112

Creates a 2-dimensional array (square) of the given $size

`protected createMatrix(int $size, int $value) : array<string|int, mixed>`

##### Parameters

$size : int
$value : int

##### Return values

array<string|int, mixed> —

## Search results