class-QRcode

It appears that you are using AdBlocking software. The cost of running this website is covered by advertisements. If you like it please feel free to a small amount of money to secure the future of this website.

Class QRcode

Package: com\tecnick\tcpdf
Author: Nicola Asuni
Version: 1.0.010
Class:

QRcode Class to create QR-code arrays for TCPDF class. QR Code symbol is a 2D barcode that can be scanned by handy terminals such as a mobile phone with CCD. The capacity of QR Code is up to 7000 digits or 4000 characters, and has high robustness. This class supports QR Code model 2, described in JIS (Japanese Industrial Standards) X0510:2004 or ISO/IEC 18004. Currently the following features are not supported: ECI and FNC1 mode, Micro QR Code, QR Code model 1, Structured mode.

This class is derived from "PHP QR Code encoder" by Dominik Dzienia (http://phpqrcode.sourceforge.net/) based on "libqrencode C library 3.1.1." by Kentaro Fukuchi (http://megaui.net/fukuchi/works/qrencode/index.en.html), contains Reed-Solomon code written by Phil Karn, KA9Q. QR Code is registered trademark of DENSO WAVE INCORPORATED (http://www.denso-wave.com/qrcode/index-e.html). Please read comments on this class source file for full copyright and license information.


Located at include/barcodes/qrcode.php
Methods summary
public
# __construct( $code, $eclevel = 'L' )

This is the class constructor. Creates a QRcode object

public array
# getBarcodeArray( )

Returns a barcode array which is readable by TCPDF

protected array
# binarize( $frame )

Convert the frame in binary form

protected
# encodeString( $string )

Encode the input string to QR code

protected
# encodeMask( $mask )

Encode mask

protected
# setFrameAt( $at, $val )

Set frame value at specified position

protected value
# getFrameAt( $at )

Get frame value at specified position

protected array
# getNextPosition( )

Return the next frame position

protected 0
# init( $spec )

Initialize code.

protected array
# getCode( )

Return Reed-Solomon block code.

protected integer
# writeFormatInformation( $width, & $frame, $mask, $level )

Write Format Information on frame and returns the number of black bits

protected integer
# mask0( $x, $y )

mask0

protected integer
# mask1( $x, $y )

mask1

protected integer
# mask2( $x, $y )

mask2

protected integer
# mask3( $x, $y )

mask3

protected integer
# mask4( $x, $y )

mask4

protected integer
# mask5( $x, $y )

mask5

protected integer
# mask6( $x, $y )

mask6

protected integer
# mask7( $x, $y )

mask7

protected array
# generateMaskNo( $maskNo, $width, $frame )

Return bitmask

protected integer
# makeMaskNo( $maskNo, $width, $s, & $d, $maskGenOnly = false )

makeMaskNo

protected array
# makeMask( $width, $frame, $maskNo, $level )

makeMask

protected integer
# calcN1N3( $length )

calcN1N3

protected integer
# evaluateSymbol( $width, $frame )

evaluateSymbol

protected array
# mask( $width, $frame, $level )

mask

protected boolean
# isdigitat( $str, $pos )

Return true if the character at specified position is a number

protected boolean
# isalnumat( $str, $pos )

Return true if the character at specified position is an alphanumeric character

protected integer
# identifyMode( $pos )

identifyMode

protected integer
# eatNum( )

eatNum

protected integer
# eatAn( )

eatAn

protected integer
# eatKanji( )

eatKanji

protected integer
# eat8( )

eat8

protected (int)
# splitString( )

splitString

protected
# toUpper( )

toUpper

protected array
# newInputItem( $mode, $size, $data, $bstream = null )

newInputItem

protected array
# encodeModeNum( $inputitem, $version )

encodeModeNum

protected array
# encodeModeAn( $inputitem, $version )

encodeModeAn

protected array
# encodeMode8( $inputitem, $version )

encodeMode8

protected array
# encodeModeKanji( $inputitem, $version )

encodeModeKanji

protected array
# encodeModeStructure( $inputitem )

encodeModeStructure

protected array
# encodeBitStream( $inputitem, $version )

encodeBitStream

protected QRcode::$items
# appendNewInputItem( $items, $mode, $size, $data )

Append data to an input object. The data is copied and appended to the input object.

protected array
# insertStructuredAppendHeader( $items, $size, $index, $parity )

insertStructuredAppendHeader

protected integer
# calcParity( $items )

calcParity

protected boolean
# checkModeNum( $size, $data )

checkModeNum

protected value
# lookAnTable( $c )

Look up the alphabet-numeric convesion table (see JIS X0510:2004, pp.19).

protected boolean
# checkModeAn( $size, $data )

checkModeAn

protected integer
# estimateBitsModeNum( $size )

estimateBitsModeNum

protected integer
# estimateBitsModeAn( $size )

estimateBitsModeAn

protected integer
# estimateBitsMode8( $size )

estimateBitsMode8

protected integer
# estimateBitsModeKanji( $size )

estimateBitsModeKanji

protected boolean
# checkModeKanji( $size, $data )

checkModeKanji

protected boolean
# check( $mode, $size, $data )

Validate the input data.

protected integer
# estimateBitStreamSize( $items, $version )

estimateBitStreamSize

protected integer
# estimateVersion( $items )

estimateVersion

protected integer
# lengthOfCode( $mode, $version, $bits )

lengthOfCode

protected array
# createBitStream( $items )

createBitStream

protected array
# convertData( $items )

convertData

protected array
# appendPaddingBit( $bstream )

Append Padding Bit to bitstream

protected array
# mergeBitStream( $items )

mergeBitStream

protected array
# getBitStream( $items )

Returns a stream of bits.

protected array
# getByteStream( $items )

Pack all bit streams padding bits into a byte array.

protected array
# allocate( $setLength )

Return an array with zeros

protected array
# newFromNum( $bits, $num )

Return new bitstream from number

protected array
# newFromBytes( $size, $data )

Return new bitstream from bytes

protected array
# appendBitstream( $bitstream, $append )

Append one bitstream to another

protected array
# appendNum( $bitstream, $bits, $num )

Append one bitstream created from number to another

protected array
# appendBytes( $bitstream, $size, $data )

Append one bitstream created from bytes to another

protected array
# bitstreamToByte( $bstream )

Convert bitstream to bytes

protected array
# qrstrset( $srctab, $x, $y, $repl, $replLen = false )

Replace a value on the array at the specified position

protected integer
# getDataLength( $version, $level )

Return maximum data code length (bytes) for the version.

protected integer
# getECCLength( $version, $level )

Return maximum error correction code length (bytes) for the version.

protected integer
# getWidth( $version )

Return the width of the symbol for the version.

protected integer
# getRemainder( $version )

Return the numer of remainder bits.

protected integer
# getMinimumVersion( $size, $level )

Return a version number that satisfies the input code length.

protected integer
# lengthIndicator( $mode, $version )

Return the size of length indicator for the mode and version.

protected integer
# maximumWords( $mode, $version )

Return the maximum length for the mode and version.

protected array
# getEccSpec( $version, $level, $spec )

Return an array of ECC specification.

protected array
# putAlignmentMarker( $frame, $ox, $oy )

Put an alignment marker.

protected array
# putAlignmentPattern( $version, $frame, $width )

Put an alignment pattern.

protected BCH
# getVersionPattern( $version )

Return BCH encoded version information pattern that is used for the symbol of version 7 or greater. Use lower 18 bits.

protected BCH
# getFormatInfo( $mask, $level )

Return BCH encoded format information pattern.

protected array
# putFinderPattern( $frame, $ox, $oy )

Put a finder pattern.

protected Array
# createFrame( $version )

Return a copy of initialized frame.

protected Array
# newFrame( $version )

Set new frame for the specified version.

protected integer
# rsBlockNum( $spec )

Return block number 0

protected integer
# rsBlockNum1( $spec )

Return block number 1

protected integer
# rsDataCodes1( $spec )

Return data codes 1

protected integer
# rsEccCodes1( $spec )

Return ecc codes 1

protected integer
# rsBlockNum2( $spec )

Return block number 2

protected integer
# rsDataCodes2( $spec )

Return data codes 2

protected integer
# rsEccCodes2( $spec )

Return ecc codes 2

protected integer
# rsDataLength( $spec )

Return data length

protected integer
# rsEccLength( $spec )

Return ecc length

protected array
# init_rs( $symsize, $gfpoly, $fcr, $prim, $nroots, $pad )

Initialize a Reed-Solomon codec and add it to existing rsitems

protected integer
# modnn( $rs, $x )

modnn

protected array
# init_rs_char( $symsize, $gfpoly, $fcr, $prim, $nroots, $pad )

Initialize a Reed-Solomon codec and returns an array of values.

protected parity
# encode_rs_char( $rs, $data, $parity )

Encode a Reed-Solomon codec and returns the parity array

Properties summary
protected array $barcode_array

Barcode array to be returned which is readable by TCPDF.

# array()
protected integer $version

QR code version. Size of QRcode is defined as version. Version is from 1 to 40. Version 1 is 2121 matrix. And 4 modules increases whenever 1 version increases. So version 40 is 177177 matrix.

# 0
protected $level

Levels of error correction. See definitions for possible values.

# QR_ECLEVEL_L
protected $hint

Encoding mode.

# QR_MODE_8B
protected boolean $casesensitive

Boolean flag, if true the input string will be converted to uppercase.

# true
protected integer $structured

Structured QR code (not supported yet).

# 0
protected $data

Mask data.

protected $width

Width.

protected $frame

Frame.

protected $x

X position of bit.

protected $y

Y position of bit.

protected $dir

Direction.

protected $bit

Single bit value.

protected array $datacode

Data code.

# array()
protected array $ecccode

Error correction code.

# array()
protected $blocks

Blocks.

protected array $rsblocks

Reed-Solomon blocks.

# array()
protected $count

Counter.

protected $dataLength

Data length.

protected $eccLength

Error correction length.

protected $b1

Value b1.

protected array $runLength

Run length.

# array()
protected string $dataStr

Input data string.

# ''
protected $items

Input items.

protected array $rsitems

Reed-Solomon items.

# array()
protected array $frames

Array of frames.

# array()
protected array $anTable

Alphabet-numeric convesion table.

# array( -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43, // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1, // -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, // 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, // -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 // )
protected array $capacity

Array Table of the capacity of symbols. See Table 1 (pp.13) and Table 12-16 (pp.30-36), JIS X0510:2004.

# array( array( 0, 0, 0, array( 0, 0, 0, 0)), // array( 21, 26, 0, array( 7, 10, 13, 17)), // 1 array( 25, 44, 7, array( 10, 16, 22, 28)), // array( 29, 70, 7, array( 15, 26, 36, 44)), // array( 33, 100, 7, array( 20, 36, 52, 64)), // array( 37, 134, 7, array( 26, 48, 72, 88)), // 5 array( 41, 172, 7, array( 36, 64, 96, 112)), // array( 45, 196, 0, array( 40, 72, 108, 130)), // array( 49, 242, 0, array( 48, 88, 132, 156)), // array( 53, 292, 0, array( 60, 110, 160, 192)), // array( 57, 346, 0, array( 72, 130, 192, 224)), // 10 array( 61, 404, 0, array( 80, 150, 224, 264)), // array( 65, 466, 0, array( 96, 176, 260, 308)), // array( 69, 532, 0, array( 104, 198, 288, 352)), // array( 73, 581, 3, array( 120, 216, 320, 384)), // array( 77, 655, 3, array( 132, 240, 360, 432)), // 15 array( 81, 733, 3, array( 144, 280, 408, 480)), // array( 85, 815, 3, array( 168, 308, 448, 532)), // array( 89, 901, 3, array( 180, 338, 504, 588)), // array( 93, 991, 3, array( 196, 364, 546, 650)), // array( 97, 1085, 3, array( 224, 416, 600, 700)), // 20 array(101, 1156, 4, array( 224, 442, 644, 750)), // array(105, 1258, 4, array( 252, 476, 690, 816)), // array(109, 1364, 4, array( 270, 504, 750, 900)), // array(113, 1474, 4, array( 300, 560, 810, 960)), // array(117, 1588, 4, array( 312, 588, 870, 1050)), // 25 array(121, 1706, 4, array( 336, 644, 952, 1110)), // array(125, 1828, 4, array( 360, 700, 1020, 1200)), // array(129, 1921, 3, array( 390, 728, 1050, 1260)), // array(133, 2051, 3, array( 420, 784, 1140, 1350)), // array(137, 2185, 3, array( 450, 812, 1200, 1440)), // 30 array(141, 2323, 3, array( 480, 868, 1290, 1530)), // array(145, 2465, 3, array( 510, 924, 1350, 1620)), // array(149, 2611, 3, array( 540, 980, 1440, 1710)), // array(153, 2761, 3, array( 570, 1036, 1530, 1800)), // array(157, 2876, 0, array( 570, 1064, 1590, 1890)), // 35 array(161, 3034, 0, array( 600, 1120, 1680, 1980)), // array(165, 3196, 0, array( 630, 1204, 1770, 2100)), // array(169, 3362, 0, array( 660, 1260, 1860, 2220)), // array(173, 3532, 0, array( 720, 1316, 1950, 2310)), // array(177, 3706, 0, array( 750, 1372, 2040, 2430)) // 40 )
protected array $lengthTableBits

Array Length indicator.

# array( array(10, 12, 14), array( 9, 11, 13), array( 8, 16, 16), array( 8, 10, 12) )
protected array $eccTable

Array Table of the error correction code (Reed-Solomon block). See Table 12-16 (pp.30-36), JIS X0510:2004.

# array( array(array( 0, 0), array( 0, 0), array( 0, 0), array( 0, 0)), // array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), // 1 array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), // array(array( 1, 0), array( 1, 0), array( 2, 0), array( 2, 0)), // array(array( 1, 0), array( 2, 0), array( 2, 0), array( 4, 0)), // array(array( 1, 0), array( 2, 0), array( 2, 2), array( 2, 2)), // 5 array(array( 2, 0), array( 4, 0), array( 4, 0), array( 4, 0)), // array(array( 2, 0), array( 4, 0), array( 2, 4), array( 4, 1)), // array(array( 2, 0), array( 2, 2), array( 4, 2), array( 4, 2)), // array(array( 2, 0), array( 3, 2), array( 4, 4), array( 4, 4)), // array(array( 2, 2), array( 4, 1), array( 6, 2), array( 6, 2)), // 10 array(array( 4, 0), array( 1, 4), array( 4, 4), array( 3, 8)), // array(array( 2, 2), array( 6, 2), array( 4, 6), array( 7, 4)), // array(array( 4, 0), array( 8, 1), array( 8, 4), array(12, 4)), // array(array( 3, 1), array( 4, 5), array(11, 5), array(11, 5)), // array(array( 5, 1), array( 5, 5), array( 5, 7), array(11, 7)), // 15 array(array( 5, 1), array( 7, 3), array(15, 2), array( 3, 13)), // array(array( 1, 5), array(10, 1), array( 1, 15), array( 2, 17)), // array(array( 5, 1), array( 9, 4), array(17, 1), array( 2, 19)), // array(array( 3, 4), array( 3, 11), array(17, 4), array( 9, 16)), // array(array( 3, 5), array( 3, 13), array(15, 5), array(15, 10)), // 20 array(array( 4, 4), array(17, 0), array(17, 6), array(19, 6)), // array(array( 2, 7), array(17, 0), array( 7, 16), array(34, 0)), // array(array( 4, 5), array( 4, 14), array(11, 14), array(16, 14)), // array(array( 6, 4), array( 6, 14), array(11, 16), array(30, 2)), // array(array( 8, 4), array( 8, 13), array( 7, 22), array(22, 13)), // 25 array(array(10, 2), array(19, 4), array(28, 6), array(33, 4)), // array(array( 8, 4), array(22, 3), array( 8, 26), array(12, 28)), // array(array( 3, 10), array( 3, 23), array( 4, 31), array(11, 31)), // array(array( 7, 7), array(21, 7), array( 1, 37), array(19, 26)), // array(array( 5, 10), array(19, 10), array(15, 25), array(23, 25)), // 30 array(array(13, 3), array( 2, 29), array(42, 1), array(23, 28)), // array(array(17, 0), array(10, 23), array(10, 35), array(19, 35)), // array(array(17, 1), array(14, 21), array(29, 19), array(11, 46)), // array(array(13, 6), array(14, 23), array(44, 7), array(59, 1)), // array(array(12, 7), array(12, 26), array(39, 14), array(22, 41)), // 35 array(array( 6, 14), array( 6, 34), array(46, 10), array( 2, 64)), // array(array(17, 4), array(29, 14), array(49, 10), array(24, 46)), // array(array( 4, 18), array(13, 32), array(48, 14), array(42, 32)), // array(array(20, 4), array(40, 7), array(43, 22), array(10, 67)), // array(array(19, 6), array(18, 31), array(34, 34), array(20, 61)) // 40 )
protected array $alignmentPattern

Array Positions of alignment patterns. This array includes only the second and the third position of the alignment patterns. Rest of them can be calculated from the distance between them. See Table 1 in Appendix E (pp.71) of JIS X0510:2004.

# array( array( 0, 0), array( 0, 0), array(18, 0), array(22, 0), array(26, 0), array(30, 0), // 1- 5 array(34, 0), array(22, 38), array(24, 42), array(26, 46), array(28, 50), // 6-10 array(30, 54), array(32, 58), array(34, 62), array(26, 46), array(26, 48), // 11-15 array(26, 50), array(30, 54), array(30, 56), array(30, 58), array(34, 62), // 16-20 array(28, 50), array(26, 50), array(30, 54), array(28, 54), array(32, 58), // 21-25 array(30, 58), array(34, 62), array(26, 50), array(30, 54), array(26, 52), // 26-30 array(30, 56), array(34, 60), array(30, 58), array(34, 62), array(30, 54), // 31-35 array(24, 50), array(28, 54), array(32, 58), array(26, 54), array(30, 58) // 35-40 )
protected array $versionPattern

Array Version information pattern (BCH coded). See Table 1 in Appendix D (pp.68) of JIS X0510:2004. size: [QRSPEC_VERSION_MAX - 6]

# array( 0x07c94, 0x085bc, 0x09a99, 0x0a4d3, 0x0bbf6, 0x0c762, 0x0d847, 0x0e60d, // 0x0f928, 0x10b78, 0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9, // 0x177ec, 0x18ec4, 0x191e1, 0x1afab, 0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75, // 0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b, 0x2542e, 0x26a64, // 0x27541, 0x28c69 )
protected array $formatInfo

Array Format information

# array( array(0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976), // array(0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0), // array(0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed), // array(0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b) // )
 

© 2004-2018 – Nicola Asuni - Tecnick.com - All rights reserved.
about - disclaimer - privacy