From 0fa35ec52080cfbdcdf5822f4d1869a3ab3b020b Mon Sep 17 00:00:00 2001
From: codemasher
Date: Wed, 4 Oct 2023 21:18:39 +0000
Subject: [PATCH] =?UTF-8?q?Deploying=20to=20readthedocs=20from=20@=20chill?=
=?UTF-8?q?erlan/php-qrcode@171f0d97dae580ac7b12e9812d01d7073ff497d5=20?=
=?UTF-8?q?=F0=9F=9A=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Appendix/Contribute.html | 13 +
Appendix/License.html | 13 +
Appendix/Terminology.html | 13 +
Appendix/URI-Content.html | 13 +
Built-In-Output/QREps.html | 17 +-
Built-In-Output/QRFpdf.html | 13 +
Built-In-Output/QRGdImage.html | 13 +
Built-In-Output/QRImagick.html | 13 +
Built-In-Output/QRMarkupHTML.html | 13 +
Built-In-Output/QRMarkupSVG.html | 13 +
Built-In-Output/QRString.html | 13 +
Customizing/Module-Values.html | 547 +++++++++++++++++++
Usage/Advanced-usage.html | 15 +-
Usage/Configuration-settings.html | 24 +-
Usage/Installation.html | 13 +
Usage/Overview.html | 15 +-
Usage/Quickstart.html | 13 +
_sources/Customizing/Module-Values.md.txt | 221 ++++++++
_sources/Usage/Advanced-usage.md.txt | 2 +-
_sources/Usage/Configuration-settings.md.txt | 7 +-
_sources/Usage/Overview.md.txt | 2 +-
_sources/index.rst.txt | 6 +
genindex.html | 13 +
index.html | 28 +
objects.inv | Bin 536 -> 561 bytes
search.html | 13 +
searchindex.js | 2 +-
27 files changed, 1057 insertions(+), 11 deletions(-)
create mode 100644 Customizing/Module-Values.html
create mode 100644 _sources/Customizing/Module-Values.md.txt
diff --git a/Appendix/Contribute.html b/Appendix/Contribute.html
index dc89182a5..c2d46c528 100644
--- a/Appendix/Contribute.html
+++ b/Appendix/Contribute.html
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
diff --git a/Appendix/License.html b/Appendix/License.html
index c039835c9..33107a23b 100644
--- a/Appendix/License.html
+++ b/Appendix/License.html
@@ -145,6 +145,19 @@
+Customizing output
+
Built-In Output Modules
QREps
diff --git a/Appendix/Terminology.html b/Appendix/Terminology.html
index 16f9b1896..b7255f5bc 100644
--- a/Appendix/Terminology.html
+++ b/Appendix/Terminology.html
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
diff --git a/Appendix/URI-Content.html b/Appendix/URI-Content.html
index 470bbd476..ce971c43f 100644
--- a/Appendix/URI-Content.html
+++ b/Appendix/URI-Content.html
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
diff --git a/Built-In-Output/QREps.html b/Built-In-Output/QREps.html
index 89d2a1935..ff18496f1 100644
--- a/Built-In-Output/QREps.html
+++ b/Built-In-Output/QREps.html
@@ -21,7 +21,7 @@
-
+
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
@@ -428,7 +441,7 @@
diff --git a/Built-In-Output/QRFpdf.html b/Built-In-Output/QRFpdf.html
index ab8820c17..988c39800 100644
--- a/Built-In-Output/QRFpdf.html
+++ b/Built-In-Output/QRFpdf.html
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
diff --git a/Built-In-Output/QRGdImage.html b/Built-In-Output/QRGdImage.html
index a3ca2238c..eafcf142d 100644
--- a/Built-In-Output/QRGdImage.html
+++ b/Built-In-Output/QRGdImage.html
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
diff --git a/Built-In-Output/QRImagick.html b/Built-In-Output/QRImagick.html
index e5a3551d5..46157863d 100644
--- a/Built-In-Output/QRImagick.html
+++ b/Built-In-Output/QRImagick.html
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
diff --git a/Built-In-Output/QRMarkupHTML.html b/Built-In-Output/QRMarkupHTML.html
index 7dceb6988..55fc9bdeb 100644
--- a/Built-In-Output/QRMarkupHTML.html
+++ b/Built-In-Output/QRMarkupHTML.html
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
diff --git a/Built-In-Output/QRMarkupSVG.html b/Built-In-Output/QRMarkupSVG.html
index cea927936..1113531bd 100644
--- a/Built-In-Output/QRMarkupSVG.html
+++ b/Built-In-Output/QRMarkupSVG.html
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
diff --git a/Built-In-Output/QRString.html b/Built-In-Output/QRString.html
index c0ca0698b..3bb0d9b3c 100644
--- a/Built-In-Output/QRString.html
+++ b/Built-In-Output/QRString.html
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
diff --git a/Customizing/Module-Values.html b/Customizing/Module-Values.html
new file mode 100644
index 000000000..08e0ede17
--- /dev/null
+++ b/Customizing/Module-Values.html
@@ -0,0 +1,547 @@
+
+
+
+
+
+
+ Module values — PHP-QRCode main
+ Manual
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PHP-QRCode
+
+
+
+
+
+
+
+
+
+Module values
+
+Basics
+The QR Code matrix is a 2-dimensional array of numerical values that hold a bit mask for
+each QR pixel (“module” as per specification), the so-called “module type” or $M_TYPE , which is represented by
+the QRMatrix::M_* constants .
+You can assign different values for the several function patterns to colorize them or even draw pixel-art.
+
+
+Assigning values
+To map the values and properly render the modules for the given QROutputInterface , it may be necessary to overwrite the
+default values ,
+that are replaced by the user defined values in QROptions::$moduleValues during the render process.
+The map of QRMatrix::M_* constants => default values looks similar to the following:
+$options -> moduleValues = [
+ // light
+ QRMatrix :: M_NULL => false ,
+ QRMatrix :: M_DARKMODULE_LIGHT => false ,
+ QRMatrix :: M_DATA => false ,
+ QRMatrix :: M_FINDER => false ,
+ QRMatrix :: M_SEPARATOR => false ,
+ QRMatrix :: M_ALIGNMENT => false ,
+ QRMatrix :: M_TIMING => false ,
+ QRMatrix :: M_FORMAT => false ,
+ QRMatrix :: M_VERSION => false ,
+ QRMatrix :: M_QUIETZONE => false ,
+ QRMatrix :: M_LOGO => false ,
+ QRMatrix :: M_FINDER_DOT_LIGHT => false ,
+ QRMatrix :: M_TEST => false ,
+ // dark
+ QRMatrix :: M_DARKMODULE => true ,
+ QRMatrix :: M_DATA_DARK => true ,
+ QRMatrix :: M_FINDER_DARK => true ,
+ QRMatrix :: M_SEPARATOR_DARK => true ,
+ QRMatrix :: M_ALIGNMENT_DARK => true ,
+ QRMatrix :: M_TIMING_DARK => true ,
+ QRMatrix :: M_FORMAT_DARK => true ,
+ QRMatrix :: M_VERSION_DARK => true ,
+ QRMatrix :: M_QUIETZONE_DARK => true ,
+ QRMatrix :: M_LOGO_DARK => true ,
+ QRMatrix :: M_FINDER_DOT => true ,
+ QRMatrix :: M_TEST_DARK => true ,
+];
+
+
+Not all the module values need to be specified - missing values will be filled with the internal default values
+for true (dark) and false (light) respectively. The QROutputInterface inheritors implement a moduleValueIsValid()
+method that checks if the given value is valid for that particular class:
+// set an initial value that acts as default
+$dark = 'rgba(0, 0, 0, 0.5)' ;
+
+// try to receive user input
+if ( QRMarkupSVG :: moduleValueIsValid ( $_GET [ 'qr_dark' ])){
+ // module values for HTML, SVG and other markup may need special treatment,
+ // e.g. only accept hexadecimal values from user input
+ // as moduleValueIsValid() just checks for the general syntax
+ $dark = sanitize_user_input ( $_GET [ 'qr_dark' ]);
+}
+
+$options -> moduleValues = [
+ QRMatrix :: M_DATA_DARK => $dark ,
+ QRMatrix :: M_FINDER_DARK => $dark ,
+ QRMatrix :: M_ALIGNMENT_DARK => $dark ,
+ QRMatrix :: M_FINDER_DOT => $dark ,
+];
+
+
+The several output classes may need different substitute values (you can find examples in the test moduleValueProvider() for each output class ):
+// for HTML, SVG and ImageMagick
+$options -> moduleValues = [
+ QRMatrix :: M_DATA => '#ffffff' ,
+ QRMatrix :: M_DATA_DARK => '#000000' ,
+ // ...
+];
+
+// for the GdImage, EPS and FPDF output types
+$options -> moduleValues = [
+ QRMatrix :: M_DATA => [ 255 , 255 , 255 ],
+ QRMatrix :: M_DATA_DARK => [ 0 , 0 , 0 ],
+ // ...
+];
+
+// for string/text output
+$options -> moduleValues = [
+ QRMatrix :: M_DATA => '░░' ,
+ QRMatrix :: M_DATA_DARK => '██' ,
+ // ...
+];
+
+
+
+
+Handling in your own QROutputInterface
+
+Setting module values
+QROutputAbstract::setModuleValues()
+calls the 3 abstract methods moduleValueIsValid() , getModuleValue() and getDefaultModuleValue() to fill the internal
+module value map with the values given via QROptions::$moduleValues :
+protected function setModuleValues () : void {
+
+ foreach ( $this :: DEFAULT_MODULE_VALUES as $M_TYPE => $defaultValue ){
+ $value = ( $this -> options -> moduleValues [ $M_TYPE ] ?? null );
+
+ $this -> moduleValues [ $M_TYPE ] = $this -> moduleValueIsValid ( $value )
+ ? $this -> getModuleValue ( $value )
+ : $this -> getDefaultModuleValue ( $defaultValue );
+ }
+
+}
+
+
+In the following example we’ll create these methods for the GdImage output.
+Since imagecolorallocate() and other GD functions accept 3 values
+for RGB color (or 4 in case of RGBA), we’ll supply these as a array where each value is an integer between 0 and 255 ([RRR, GGG, BBB, (, AAA)] ).
+First we need to validate the input:
+protected function moduleValueIsValid ( $value ) : bool {
+
+ // nowhere near valid
+ if ( ! is_array ( $value ) || count ( $value ) !== 3 ){
+ return false ;
+ }
+
+ // now iterate over the values
+ foreach ( $value as $color ){
+
+ // non-integers won't work
+ if ( ! is_int ( $color )){
+ return false ;
+ }
+
+ // a strict check - we could also just ignore outliers and clamp the values instead
+ if ( $color < 0 || $color > 255 ){
+ return false ;
+ }
+ }
+
+ return true ; // yay!
+}
+
+
+Now we can prepare the value:
+protected function getModuleValue ( $value ) : array {
+ // we call array_values() so we don't run into string-key related issues
+ return array_map ( fn ( int $val ) : int => max ( 0 , min ( 255 , $val )), array_values ( $value ));
+}
+
+
+And finally we need to provide default values:
+protected function getDefaultModuleValue ( bool $isDark ) : array {
+ return $isDark ? [ 0 , 0 , 0 ] : [ 255 , 255 , 255 ];
+}
+
+
+Now that everything is ready and set, we can use the values in our GD functions:
+$color = imagecolorallocate ( $this -> image , ... $this -> moduleValues [ $M_TYPE ]);
+
+
+
+
+Using the module values
+The state of the $M_TYPE is set with the QRMatrix::IS_DARK constant:
+// set to dark (true) with bitwise OR:
+$M_TYPE = ( $M_TYPE | QRMatrix :: IS_DARK );
+
+// set to light (false) with bitwise AND NOT
+$M_TYPE = ( $M_TYPE & ~ QRMatrix :: IS_DARK );
+
+// toggle the opposite state with bitwise XOR
+$M_TYPE = ( $M_TYPE ^ QRMatrix :: IS_DARK );
+
+
+You can manually check whether the module is dark:
+( $value & QRMatrix :: IS_DARK ) === QRMatrix :: IS_DARK ;
+
+
+However it is much more convenient to use the QRMatrix methods for that:
+for ( $y = 0 ; $y < $this -> moduleCount ; $y ++ ){ // rows
+ for ( $x = 0 ; $x < $this -> moduleCount ; $x ++ ){ // columns
+ // sets current module as dark (true) with the M_DATA type
+ $this -> matrix -> set ( $x , $y , true , QRMatrix :: M_DATA );
+
+ // -> true (shortcut for checkType($x, $y, QRMatrix::IS_DARK))
+ $this -> matrix -> check ( $x , $y );
+
+ // -> true (current module is of type M_DATA)
+ $this -> matrix -> checkType ( $x , $y , QRMatrix :: M_DATA );
+
+ // -> true (current module is of type IS_DARK)
+ $this -> matrix -> checkType ( $x , $y , QRMatrix :: IS_DARK );
+
+ // -> false, type is M_DATA
+ $this -> matrix -> checkTypeIn ( $x , $y , [ QRMatrix :: M_FINDER_DARK , QRMatrix :: M_ALIGNMENT ]);
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Usage/Advanced-usage.html b/Usage/Advanced-usage.html
index 54cc22e5f..bbd66ae16 100644
--- a/Usage/Advanced-usage.html
+++ b/Usage/Advanced-usage.html
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
$options = new QROptions ;
// set some values
diff --git a/Usage/Configuration-settings.html b/Usage/Configuration-settings.html
index 18104be2e..fb5545b71 100644
--- a/Usage/Configuration-settings.html
+++ b/Usage/Configuration-settings.html
@@ -20,7 +20,7 @@
-
+
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
@@ -636,6 +649,11 @@ The opacity value is the same for all paths - please use CSS for more sophistica
textDark
String substitute for dark
+See also:
+
textLight
@@ -651,7 +669,7 @@ The opacity value is the same for all paths - please use CSS for more sophistica
fpdfMeasureUnit
-Measurement unit for FPDF output: pt, mm, cm, in (defaults to “pt”)
+Measurement unit for FPDF output: pt , mm , cm , in (default: pt )
See also:
FPDF::__construct()
@@ -677,7 +695,7 @@ The opacity value is the same for all paths - please use CSS for more sophistica
diff --git a/Usage/Installation.html b/Usage/Installation.html
index 97eeb06d9..657781635 100644
--- a/Usage/Installation.html
+++ b/Usage/Installation.html
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
diff --git a/Usage/Overview.html b/Usage/Overview.html
index cdf800d61..726559de8 100644
--- a/Usage/Overview.html
+++ b/Usage/Overview.html
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
@@ -304,7 +317,7 @@
Overview
-A PHP QR Code generator based on the implementation by Kazuhiko Arase , namespaced, cleaned up, improved and other stuff.
+
A PHP QR Code generator based on the implementation by Kazuhiko Arase , namespaced, cleaned up, improved and other stuff.
It also features a QR Code reader based on a PHP port of the ZXing library .
Features
diff --git a/Usage/Quickstart.html b/Usage/Quickstart.html
index 879494b0a..b5e61baea 100644
--- a/Usage/Quickstart.html
+++ b/Usage/Quickstart.html
@@ -146,6 +146,19 @@
+Customizing output
+
Built-In Output Modules
QREps
diff --git a/_sources/Customizing/Module-Values.md.txt b/_sources/Customizing/Module-Values.md.txt
new file mode 100644
index 000000000..d25de444e
--- /dev/null
+++ b/_sources/Customizing/Module-Values.md.txt
@@ -0,0 +1,221 @@
+# Module values
+
+## Basics
+
+The QR Code matrix is a 2-dimensional array of numerical values that hold a bit mask for
+each QR pixel ("module" as per specification), the so-called "module type" or `$M_TYPE`, which is represented by
+[the `QRMatrix::M_*` constants](https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-Data-QRMatrix.html#toc-constants).
+You can assign different values for the several [function patterns](../Appendix/Terminology.md#function-patterns) to colorize them or even draw pixel-art.
+
+
+## Assigning values
+
+To map the values and properly render the modules for the given `QROutputInterface`, it may be necessary to overwrite the
+[default values](https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-Output-QROutputInterface.html#constant_DEFAULT_MODULE_VALUES),
+that are replaced by the user defined values in `QROptions::$moduleValues` during the render process.
+
+The map of `QRMatrix::M_*` constants => default values looks similar to the following:
+
+```php
+$options->moduleValues = [
+ // light
+ QRMatrix::M_NULL => false,
+ QRMatrix::M_DARKMODULE_LIGHT => false,
+ QRMatrix::M_DATA => false,
+ QRMatrix::M_FINDER => false,
+ QRMatrix::M_SEPARATOR => false,
+ QRMatrix::M_ALIGNMENT => false,
+ QRMatrix::M_TIMING => false,
+ QRMatrix::M_FORMAT => false,
+ QRMatrix::M_VERSION => false,
+ QRMatrix::M_QUIETZONE => false,
+ QRMatrix::M_LOGO => false,
+ QRMatrix::M_FINDER_DOT_LIGHT => false,
+ QRMatrix::M_TEST => false,
+ // dark
+ QRMatrix::M_DARKMODULE => true,
+ QRMatrix::M_DATA_DARK => true,
+ QRMatrix::M_FINDER_DARK => true,
+ QRMatrix::M_SEPARATOR_DARK => true,
+ QRMatrix::M_ALIGNMENT_DARK => true,
+ QRMatrix::M_TIMING_DARK => true,
+ QRMatrix::M_FORMAT_DARK => true,
+ QRMatrix::M_VERSION_DARK => true,
+ QRMatrix::M_QUIETZONE_DARK => true,
+ QRMatrix::M_LOGO_DARK => true,
+ QRMatrix::M_FINDER_DOT => true,
+ QRMatrix::M_TEST_DARK => true,
+];
+```
+
+Not all the module values need to be specified - missing values will be filled with the internal default values
+for `true` (dark) and `false` (light) respectively. The `QROutputInterface` inheritors implement a `moduleValueIsValid()`
+method that checks if the given value is valid for that particular class:
+
+```php
+// set an initial value that acts as default
+$dark = 'rgba(0, 0, 0, 0.5)';
+
+// try to receive user input
+if(QRMarkupSVG::moduleValueIsValid($_GET['qr_dark'])){
+ // module values for HTML, SVG and other markup may need special treatment,
+ // e.g. only accept hexadecimal values from user input
+ // as moduleValueIsValid() just checks for the general syntax
+ $dark = sanitize_user_input($_GET['qr_dark']);
+}
+
+$options->moduleValues = [
+ QRMatrix::M_DATA_DARK => $dark,
+ QRMatrix::M_FINDER_DARK => $dark,
+ QRMatrix::M_ALIGNMENT_DARK => $dark,
+ QRMatrix::M_FINDER_DOT => $dark,
+];
+```
+
+The several output classes may need different substitute values (you can find examples [in the test `moduleValueProvider()` for each output class](https://github.com/chillerlan/php-qrcode/tree/main/tests/Output)):
+
+```php
+// for HTML, SVG and ImageMagick
+$options->moduleValues = [
+ QRMatrix::M_DATA => '#ffffff',
+ QRMatrix::M_DATA_DARK => '#000000',
+ // ...
+];
+
+// for the GdImage, EPS and FPDF output types
+$options->moduleValues = [
+ QRMatrix::M_DATA => [255, 255, 255],
+ QRMatrix::M_DATA_DARK => [0, 0, 0],
+ // ...
+];
+
+// for string/text output
+$options->moduleValues = [
+ QRMatrix::M_DATA => '░░',
+ QRMatrix::M_DATA_DARK => '██',
+ // ...
+];
+```
+
+
+## Handling in your own `QROutputInterface`
+
+### Setting module values
+
+[`QROutputAbstract::setModuleValues()`](https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-Output-QROutputAbstract.html#method_setModuleValues)
+calls the 3 abstract methods `moduleValueIsValid()`, `getModuleValue()` and `getDefaultModuleValue()` to fill the internal
+module value map with the values given via `QROptions::$moduleValues`:
+
+```php
+protected function setModuleValues():void{
+
+ foreach($this::DEFAULT_MODULE_VALUES as $M_TYPE => $defaultValue){
+ $value = ($this->options->moduleValues[$M_TYPE] ?? null);
+
+ $this->moduleValues[$M_TYPE] = $this->moduleValueIsValid($value)
+ ? $this->getModuleValue($value)
+ : $this->getDefaultModuleValue($defaultValue);
+ }
+
+}
+```
+
+In the following example we'll create these methods for the `GdImage` output.
+Since [`imagecolorallocate()`](https://www.php.net/manual/function.imagecolorallocate) and other GD functions accept 3 values
+for RGB color (or 4 in case of RGBA), we'll supply these as a array where each value is an integer between 0 and 255 (`[RRR, GGG, BBB, (, AAA)]`).
+
+First we need to validate the input:
+
+```php
+protected function moduleValueIsValid($value):bool{
+
+ // nowhere near valid
+ if(!is_array($value) || count($value) !== 3){
+ return false;
+ }
+
+ // now iterate over the values
+ foreach($value as $color){
+
+ // non-integers won't work
+ if(!is_int($color)){
+ return false;
+ }
+
+ // a strict check - we could also just ignore outliers and clamp the values instead
+ if($color < 0 || $color > 255){
+ return false;
+ }
+ }
+
+ return true; // yay!
+}
+```
+
+Now we can prepare the value:
+
+```php
+protected function getModuleValue($value):array{
+ // we call array_values() so we don't run into string-key related issues
+ return array_map(fn(int $val):int => max(0, min(255, $val)), array_values($value));
+}
+```
+
+And finally we need to provide default values:
+
+```php
+protected function getDefaultModuleValue(bool $isDark):array{
+ return $isDark ? [0, 0, 0] : [255, 255, 255];
+}
+```
+
+Now that everything is ready and set, we can use the values in our GD functions:
+
+```php
+$color = imagecolorallocate($this->image, ...$this->moduleValues[$M_TYPE]);
+```
+
+
+### Using the module values
+
+The state of the `$M_TYPE` is set with the `QRMatrix::IS_DARK` constant:
+
+```php
+// set to dark (true) with bitwise OR:
+$M_TYPE = ($M_TYPE | QRMatrix::IS_DARK);
+
+// set to light (false) with bitwise AND NOT
+$M_TYPE = ($M_TYPE & ~QRMatrix::IS_DARK);
+
+// toggle the opposite state with bitwise XOR
+$M_TYPE = ($M_TYPE ^ QRMatrix::IS_DARK);
+```
+
+You can manually check whether the module is dark:
+
+```php
+($value & QRMatrix::IS_DARK) === QRMatrix::IS_DARK;
+```
+
+However it is much more convenient to use the `QRMatrix` methods for that:
+
+```php
+for($y = 0; $y < $this->moduleCount; $y++){ // rows
+ for($x = 0; $x < $this->moduleCount; $x++){ // columns
+ // sets current module as dark (true) with the M_DATA type
+ $this->matrix->set($x, $y, true, QRMatrix::M_DATA);
+
+ // -> true (shortcut for checkType($x, $y, QRMatrix::IS_DARK))
+ $this->matrix->check($x, $y);
+
+ // -> true (current module is of type M_DATA)
+ $this->matrix->checkType($x, $y, QRMatrix::M_DATA);
+
+ // -> true (current module is of type IS_DARK)
+ $this->matrix->checkType($x, $y, QRMatrix::IS_DARK);
+
+ // -> false, type is M_DATA
+ $this->matrix->checkTypeIn($x, $y, [QRMatrix::M_FINDER_DARK, QRMatrix::M_ALIGNMENT]);
+ }
+}
+```
diff --git a/_sources/Usage/Advanced-usage.md.txt b/_sources/Usage/Advanced-usage.md.txt
index 7fbae1907..725bf9c41 100644
--- a/_sources/Usage/Advanced-usage.md.txt
+++ b/_sources/Usage/Advanced-usage.md.txt
@@ -3,7 +3,7 @@
## Configuration via `QROptions`
The [`QROptions`](https://github.com/chillerlan/php-qrcode/blob/main/src/QROptions.php) class is a container based on [chillerlan/php-settings-container](https://github.com/chillerlan/php-settings-container) that behaves similar to a [`\stdClass`](https://www.php.net/manual/class.stdclass) object, but with fixed properties.
-A list with all available `QROptions` can be found under [cnfiguration settings](../Usage/Configuration-settings.md).
+A list with all available `QROptions` can be found under [configuration settings](../Usage/Configuration-settings.md).
```php
$options = new QROptions;
diff --git a/_sources/Usage/Configuration-settings.md.txt b/_sources/Usage/Configuration-settings.md.txt
index 3cb7a8104..169176ee3 100644
--- a/_sources/Usage/Configuration-settings.md.txt
+++ b/_sources/Usage/Configuration-settings.md.txt
@@ -389,6 +389,11 @@ Sets the value for the "preserveAspectRatio" on the `` element
String substitute for dark
+**See also:**
+
+- [en.wikipedia.org/wiki/Block_Elements](https://en.wikipedia.org/wiki/Block_Elements)
+- [en.wikipedia.org/wiki/ANSI_escape_code#8-bit](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit)
+
## textLight
@@ -407,7 +412,7 @@ Whether to return matrix values in JSON as booleans or `$M_TYPE` integers
## fpdfMeasureUnit
-Measurement unit for `FPDF` output: pt, mm, cm, in (defaults to "pt")
+Measurement unit for `FPDF` output: `pt`, `mm`, `cm`, `in` (default: `pt`)
**See also:**
diff --git a/_sources/Usage/Overview.md.txt b/_sources/Usage/Overview.md.txt
index 2b656bcb5..cbce5bdc4 100644
--- a/_sources/Usage/Overview.md.txt
+++ b/_sources/Usage/Overview.md.txt
@@ -1,6 +1,6 @@
# Overview
-A PHP QR Code generator based on the [implementation by Kazuhiko Arase](https://github.com/kazuhikoarase/qrcode-generator), namespaced, cleaned up, improved and other stuff.
+A PHP QR Code generator based on the [implementation by Kazuhiko Arase](https://github.com/kazuhikoarase/qrcode-generator), namespaced, cleaned up, improved and other stuff.
It also features a QR Code reader based on a [PHP port](https://github.com/khanamiryan/php-qrcode-detector-decoder) of the [ZXing library](https://github.com/zxing/zxing).
diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt
index 5f4d0d185..bff629843 100644
--- a/_sources/index.rst.txt
+++ b/_sources/index.rst.txt
@@ -22,6 +22,12 @@ This work is licensed under the Creative Commons Attribution 4.0 International (
Usage/Advanced-usage.md
Usage/Configuration-settings.md
+.. toctree::
+ :maxdepth: 3
+ :caption: Customizing output
+
+ Customizing/Module-Values.md
+
.. toctree::
:maxdepth: 3
:caption: Built-In Output Modules
diff --git a/genindex.html b/genindex.html
index d39bb9580..08b891b8c 100644
--- a/genindex.html
+++ b/genindex.html
@@ -143,6 +143,19 @@
+Customizing output
+
Built-In Output Modules
QREps
diff --git a/index.html b/index.html
index d7e90eb09..3ee7965ff 100644
--- a/index.html
+++ b/index.html
@@ -145,6 +145,19 @@
+Customizing output
+
Built-In Output Modules
+
Built-In Output Modules
QREps
diff --git a/objects.inv b/objects.inv
index 92bdfa1ef6c2e1469920439f69d05e27d622c32d..777502ab79d26667435f93cc8e387a66e191780f 100644
GIT binary patch
delta 444
zcmV;t0Ym3@DqTOxuY8$v2Cp#qgW
z8pbtV3cNPDHagvGpK3KkM+1)C9V3M2nto0r+C*Tq=LqD5E-O;NG{=Vm%8wCRtF!!T
zn&v}+=En$aMVc>DFZQd~X<(lV%wD;P-Mzp3hiYSEs1+j2on2v3Oaome(A<>FjncAW
z-}aoYBsCoHJAdH@M$2(C
zjlM4So`0~*oD?9Kpm6F+oO}RpYe5Z{w8x~6dG;WYEj2Q{+0G>ev?9U~o>Y=Xxb+za
mWAxhY3j_C$T6Wf@{ewqs1*FN#anWh6vvYpdZo?0Ha~Udf>D35
zEv&0J#QFl&g~D}M_l~Xl$<;R6yb=Se)Ueok?s^|{lmn-nz^y4Ud<0h4yy_2WmQfpX
z>`o$Gr154u69mu-bB$S42om6y_t+b@xDrG&a65F|KOAc5U7gGY_u3M0m7V%UtJ%)Z
N`f2?degJ$k`s36b#f1O>
diff --git a/search.html b/search.html
index 7c6bb1e88..e80e78650 100644
--- a/search.html
+++ b/search.html
@@ -146,6 +146,19 @@
+
Customizing output
+
Built-In Output Modules
QREps
diff --git a/searchindex.js b/searchindex.js
index d3c56d13f..c08773ef4 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["Appendix/Contribute", "Appendix/License", "Appendix/Terminology", "Appendix/URI-Content", "Built-In-Output/QREps", "Built-In-Output/QRFpdf", "Built-In-Output/QRGdImage", "Built-In-Output/QRImagick", "Built-In-Output/QRMarkupHTML", "Built-In-Output/QRMarkupSVG", "Built-In-Output/QRString", "Usage/Advanced-usage", "Usage/Configuration-settings", "Usage/Installation", "Usage/Overview", "Usage/Quickstart", "index"], "filenames": ["Appendix/Contribute.md", "Appendix/License.rst", "Appendix/Terminology.md", "Appendix/URI-Content.md", "Built-In-Output/QREps.md", "Built-In-Output/QRFpdf.md", "Built-In-Output/QRGdImage.md", "Built-In-Output/QRImagick.md", "Built-In-Output/QRMarkupHTML.md", "Built-In-Output/QRMarkupSVG.md", "Built-In-Output/QRString.md", "Usage/Advanced-usage.md", "Usage/Configuration-settings.md", "Usage/Installation.md", "Usage/Overview.md", "Usage/Quickstart.md", "index.rst"], "titles": ["How to contribute", "License", "Terminology", "Popular content and URI schemes", "QREps", "QRFpdf", "QRGdImage", "QRImagick", "QRMarkupHTML", "QRMarkupSVG", "QRString", "Advanced usage", "Configuration settings", "Installation", "Overview", "Quickstart", "PHP-QRCode Manual"], "terms": {"If": [0, 1, 2, 13], "you": [0, 1, 3, 8, 11, 13, 15], "have": [0, 1, 2, 15, 16], "about": [0, 13], "gener": [0, 3, 8, 11, 13, 14, 15], "while": 0, "us": [0, 1, 2, 3, 8, 9, 10, 11, 12, 14, 15, 16], "thi": [0, 1, 2, 3, 11, 12, 14, 15, 16], "librari": [0, 3, 14, 16], "head": [0, 8], "over": [0, 12], "discuss": [0, 9, 12], "section": [0, 1, 3], "creat": [0, 1, 3, 6, 7, 10, 11, 14, 16], "new": [0, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15], "post": 0, "describ": [0, 1, 3], "your": [0, 1, 7, 11, 13, 16], "precis": 0, "possibl": [0, 1, 2, 3], "ideal": [0, 11], "add": [0, 3, 9, 10, 12, 13], "code": [0, 3, 8, 12, 13, 14, 16], "exampl": [0, 1, 2, 3, 14, 15, 16], "applic": [0, 1, 2, 3, 4, 5, 10, 12, 13], "pleas": [0, 3, 7, 12, 13, 14], "don": [0, 15], "t": [0, 2, 3, 9, 15], "just": [0, 3, 11], "write": [0, 3], "headlin": 0, "sai": 0, "all": [0, 1, 2, 3, 8, 9, 11, 12, 13], "becaus": [0, 1], "repli": 0, "like": [0, 3, 13, 15], "similarli": [0, 2], "concis": 0, "help": 0, "me": 0, "other": [0, 1, 2, 3, 5, 6, 7, 12, 14], "clarifi": 0, "doe": [0, 1, 2, 11], "mean": [0, 1, 2], "php": [0, 3, 6, 7, 8, 9, 11, 12, 14, 15], "support": [0, 3, 7, 14, 16], "which": [0, 1, 2, 3, 8, 11, 12], "case": [0, 1, 3, 11, 13], "re": 0, "better": 0, "off": 0, "stackoverflow": 0, "r": [0, 3, 4, 5, 12], "phphelp": 0, "so": [0, 1, 2, 3, 12, 13], "found": [0, 2, 11, 16], "i": [0, 1, 2, 3, 8, 9, 11, 12, 14, 15, 16], "somehow": 0, "misbehav": 0, "That": 0, "": [0, 1, 3, 5, 6, 7, 9, 10, 11, 13, 15], "great": 0, "well": [0, 1, 3], "tho": 0, "In": [0, 1, 11, 13], "open": [0, 3, 13], "fill": [0, 9, 12], "out": [0, 1, 5, 6, 7, 8, 9, 14], "THE": [0, 1], "templat": 0, "cap": 0, "nobodi": 0, "actual": 0, "usual": 0, "lead": 0, "sever": [0, 1, 11, 12, 13], "avoid": [0, 1, 9, 12, 13, 15], "follow": [0, 1, 2, 3, 7, 13, 14], "up": [0, 2, 13, 14], "cost": [0, 1], "both": 0, "u": [0, 3, 9, 12], "preciou": 0, "time": [0, 1, 3, 16], "below": [0, 1], "an": [0, 1, 2, 3, 5, 8, 12, 13, 14, 16], "hard": 0, "A": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14], "clear": [0, 11], "descript": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "what": [0, 3], "step": [0, 2, 14], "reproduc": [0, 1], "behavior": 0, "when": [0, 2, 3, 8, 11, 12], "do": [0, 1, 5, 6, 7, 13], "The": [0, 1, 2, 3, 11, 12, 13, 15, 16], "error": [0, 1, 11, 12, 15, 16], "messag": [0, 2, 3], "sampl": 0, "here": [0, 1, 3], "expect": [0, 1, 12, 13], "happen": 0, "screenshot": 0, "explain": [0, 3], "problem": 0, "environ": 0, "complet": [0, 3], "inform": [0, 1, 16], "version": [0, 3, 9, 11, 14, 15, 16], "o": [0, 3], "e": [0, 1, 7, 11, 12, 13, 15, 16], "g": [0, 1, 3, 4, 5, 7, 11, 12, 13], "7": [0, 1, 2, 3, 9, 11, 12, 13, 14, 15], "4": [0, 1, 2, 3, 6, 7, 9, 12, 13, 14, 16], "12": [0, 2], "ubuntu": 0, "20": [0, 1, 6, 7, 12], "04": [0, 16], "3": [0, 1, 2, 13, 14], "addit": [0, 1, 2, 3, 11, 16], "context": [0, 1], "ani": [0, 1, 11, 15], "want": [0, 13, 15], "someth": 0, "featur": [0, 16], "hei": [0, 15], "cool": 0, "howev": [0, 1, 3, 11, 13], "few": 0, "thing": 0, "keep": [0, 9, 13], "mind": 0, "pr": 0, "why": 0, "should": [0, 1, 3, 8, 11], "merg": 0, "unsur": 0, "befor": [0, 1, 8, 12, 13], "gather": 0, "feedback": 0, "make": [0, 1, 3, 11], "sure": [0, 3, 11], "branch": [0, 13], "date": [0, 1], "even": [0, 1], "upstream": 0, "submit": 0, "try": [0, 15], "adher": 0, "loos": 0, "outlin": 0, "standard": [0, 1, 2], "phpstorm": 0, "suppli": [0, 1, 3, 16], "id": [0, 2, 9], "profil": 0, "work": [0, 1, 3, 12, 16], "progress": 0, "suggest": [0, 1], "veri": 0, "welcom": 0, "api": [0, 13, 16], "auto": [0, 12], "phpdocumentor": [0, 16], "from": [0, 1, 2, 3, 9, 11, 12, 13], "docblock": 0, "sourc": 0, "markdown": 0, "read": [0, 1, 2, 12, 13, 16], "doc": [0, 9, 12], "onlin": [0, 3], "manual": [0, 6, 11], "ar": [0, 1, 2, 3, 12, 13, 14], "locat": [0, 2, 3], "directori": [0, 13], "copyright": 1, "c": [1, 4, 12], "2023": [1, 16], "smilei": 1, "under": [1, 11, 16], "creativ": [1, 16], "common": [1, 3, 11, 12, 16], "attribut": [1, 9, 12, 16], "0": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 16], "intern": [1, 2, 11, 12, 16], "cc": [1, 3, 16], "BY": [1, 16], "summari": [1, 3], "given": [1, 2, 7, 8, 9, 12], "full": [1, 3], "legal": 1, "text": [1, 3, 8, 14, 16], "free": [1, 2], "share": [1, 3, 14], "copi": [1, 3], "redistribut": 1, "materi": 1, "medium": [1, 2], "format": [1, 3, 4, 5, 7, 12, 14, 16], "adapt": 1, "remix": 1, "transform": 1, "build": 1, "upon": 1, "purpos": [1, 12], "commerci": 1, "licensor": 1, "cannot": 1, "revok": 1, "freedom": 1, "long": 1, "term": 1, "must": 1, "give": [1, 2], "appropri": [1, 2], "credit": 1, "provid": [1, 2, 3, 14], "link": [1, 3, 13], "indic": [1, 2, 3], "chang": [1, 2], "were": 1, "made": 1, "mai": [1, 2, 3, 11, 12, 15], "reason": [1, 4, 5, 6, 7, 8, 9, 10], "manner": 1, "wai": [1, 14], "endors": 1, "No": [1, 12], "restrict": 1, "appli": [1, 2, 12], "technolog": 1, "measur": [1, 12], "anyth": [1, 12], "permit": 1, "corpor": 1, "law": 1, "firm": 1, "servic": [1, 3], "advic": 1, "distribut": 1, "public": 1, "lawyer": 1, "client": [1, 14], "relationship": 1, "its": [1, 2], "relat": 1, "avail": [1, 8, 11, 12], "basi": 1, "warranti": 1, "regard": 1, "condit": 1, "disclaim": 1, "liabil": 1, "damag": 1, "result": [1, 11, 15], "fullest": 1, "extent": 1, "set": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 16], "creator": 1, "right": [1, 2], "holder": 1, "origin": 1, "authorship": 1, "subject": [1, 3], "certain": 1, "specifi": [1, 3, 4, 11, 12, 13], "consider": 1, "onli": [1, 3, 12], "exhaust": 1, "form": [1, 2, 3], "part": [1, 2, 15], "our": 1, "intend": [1, 2, 9], "those": [1, 2], "author": 1, "permiss": 1, "otherwis": 1, "irrevoc": 1, "understand": 1, "thei": [1, 2, 3], "choos": [1, 15], "also": [1, 2, 9, 11, 12, 13, 14, 15, 16], "secur": 1, "necessari": [1, 11, 15], "can": [1, 2, 3, 4, 6, 9, 11, 14, 15, 16], "reus": [1, 11], "clearli": 1, "mark": [1, 2], "includ": [1, 3, 13, 15], "except": [1, 11, 15], "limit": 1, "more": [1, 2, 3, 9, 11, 12, 15], "wiki": [1, 3], "creativecommon": 1, "org": [1, 3, 7, 9, 12, 13], "considerations_for_licensor": 1, "By": 1, "one": [1, 2, 3, 6, 9], "grant": 1, "regul": 1, "ha": [1, 3], "still": 1, "special": [1, 3], "request": [1, 16], "ask": 1, "although": 1, "requir": [1, 3, 16], "encourag": 1, "respect": [1, 2, 13], "where": [1, 2, 12], "considerations_for_license": 1, "exercis": 1, "defin": [1, 2, 14], "accept": 1, "agre": 1, "bound": 1, "To": [1, 13], "interpret": [1, 3, 16], "contract": 1, "benefit": 1, "receiv": 1, "1": [1, 2, 3, 8, 9, 12, 13, 14], "definit": 1, "similar": [1, 2, 3, 9, 11, 13], "deriv": 1, "base": [1, 2, 3, 11, 14], "translat": 1, "alter": 1, "arrang": [1, 2], "modifi": 1, "held": [1, 10], "For": [1, 2, 11, 14], "music": 1, "perform": 1, "sound": 1, "record": 1, "alwai": [1, 2], "produc": 1, "synch": 1, "move": [1, 2], "imag": [1, 2, 6, 7, 9, 11, 12, 15], "b": [1, 4, 5, 12], "contribut": [1, 16], "accord": [1, 2, 3, 12], "close": 1, "without": [1, 3, 11, 16], "broadcast": 1, "sui": 1, "generi": 1, "databas": [1, 11, 14], "how": [1, 14, 16], "label": [1, 2, 3], "categor": 1, "2": [1, 2, 3, 9, 10, 12, 13, 14], "d": 1, "effect": [1, 11, 12, 16], "absenc": 1, "proper": [1, 10, 11], "circumv": 1, "fulfil": 1, "oblig": 1, "articl": [1, 14], "11": [1, 2, 3], "wipo": 1, "treati": 1, "adopt": 1, "decemb": 1, "1996": 1, "agreement": 1, "fair": 1, "deal": 1, "f": 1, "artist": 1, "literari": 1, "h": [1, 2, 3, 12, 14], "individu": 1, "entiti": 1, "process": [1, 2, 15], "reproduct": 1, "displai": [1, 8], "dissemin": 1, "commun": 1, "import": [1, 16], "member": 1, "access": [1, 3], "place": [1, 2], "chosen": 1, "them": [1, 11], "j": [1, 14], "than": [1, 2, 12, 14], "direct": [1, 2], "96": 1, "9": [1, 2, 12, 13], "ec": 1, "european": 1, "parliament": 1, "council": 1, "march": 1, "protect": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11], "amend": 1, "succeed": 1, "essenti": [1, 2], "equival": [1, 3], "anywher": 1, "world": [1, 3], "k": [1, 3, 4, 12], "correspond": 1, "scope": 1, "herebi": 1, "worldwid": 1, "royalti": 1, "non": [1, 12], "sublicens": 1, "exclus": 1, "whole": 1, "doubt": 1, "need": [1, 2, 11], "compli": 1, "6": [1, 2, 3, 9, 10, 13], "media": 1, "technic": 1, "modif": [1, 11], "allow": [1, 2, 13], "whether": [1, 12], "now": [1, 15], "known": 1, "hereaft": 1, "waiv": 1, "assert": 1, "forbid": 1, "simpli": [1, 3, 15], "never": 1, "5": [1, 2, 4, 5, 10, 11, 13], "downstream": 1, "recipi": [1, 3], "offer": [1, 11], "everi": 1, "automat": 1, "impos": 1, "differ": [1, 3, 12], "noth": 1, "constitut": 1, "constru": 1, "impli": 1, "connect": [1, 9, 12], "sponsor": 1, "offici": 1, "statu": 1, "design": [1, 2], "moral": 1, "integr": [1, 16], "nor": [1, 13], "privaci": 1, "person": 1, "patent": 1, "trademark": 1, "collect": 1, "directli": [1, 11, 12], "through": 1, "societi": 1, "voluntari": 1, "waivabl": 1, "statutori": 1, "compulsori": 1, "scheme": [1, 16], "expressli": 1, "reserv": [1, 2], "retain": 1, "identif": [1, 2, 3], "pseudonym": 1, "ii": 1, "notic": 1, "iii": 1, "refer": [1, 2, 3], "iv": 1, "v": [1, 3, 4, 5, 6, 7, 8, 9, 10], "uri": [1, 12, 15, 16], "hyperlink": 1, "practic": 1, "previou": [1, 2], "satisfi": 1, "resourc": [1, 3, 6, 12], "remov": [1, 9], "prevent": 1, "extract": [1, 13], "substanti": 1, "portion": 1, "content": [1, 2, 4, 6, 7, 8, 10, 11, 13, 15, 16], "supplement": 1, "replac": [1, 13], "unless": 1, "separ": [1, 3, 16], "undertaken": 1, "TO": 1, "AS": 1, "AND": 1, "NO": 1, "represent": 1, "OR": 1, "OF": 1, "kind": 1, "concern": 1, "express": 1, "titl": [1, 8], "merchant": 1, "fit": 1, "FOR": 1, "particular": 1, "infring": 1, "latent": 1, "defect": 1, "accuraci": 1, "presenc": 1, "NOT": 1, "discover": 1, "IN": 1, "event": [1, 2, 16], "WILL": 1, "BE": 1, "liabl": 1, "ON": 1, "theori": 1, "neglig": 1, "indirect": 1, "incident": 1, "consequenti": 1, "punit": 1, "exemplari": 1, "loss": 1, "expens": 1, "aris": 1, "IF": 1, "been": [1, 13], "advis": [1, 3], "SUCH": 1, "abov": 1, "shall": [1, 2, 3], "most": [1, 3, 13], "approxim": [1, 2], "absolut": [1, 13], "waiver": 1, "termin": [1, 2, 16], "fail": 1, "reinstat": 1, "violat": 1, "cure": 1, "within": [1, 2, 14], "30": [1, 2, 3, 12], "dai": 1, "discoveri": 1, "affect": [1, 16], "seek": 1, "remedi": 1, "stop": [1, 9], "8": [1, 2, 3, 8, 9, 10, 11, 12, 13, 14], "surviv": 1, "state": [1, 3], "herein": 1, "independ": 1, "reduc": [1, 2], "could": 1, "lawfulli": 1, "provis": 1, "deem": 1, "unenforc": 1, "reform": 1, "minimum": [1, 3, 12], "enforc": 1, "remain": [1, 13], "failur": 1, "consent": 1, "privileg": 1, "immun": 1, "jurisdict": 1, "parti": 1, "notwithstand": 1, "elect": 1, "publish": 1, "instanc": [1, 5, 6, 7, 15, 16], "consid": 1, "dedic": 1, "domain": 1, "cc0": 1, "polici": 1, "logo": [1, 3, 12], "prior": 1, "written": 1, "unauthor": 1, "paragraph": 1, "contact": [1, 16], "quick": 2, "respons": 2, "type": [2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15], "two": [2, 14], "dimension": 2, "barcod": [2, 3], "invent": 2, "1994": 2, "japanes": [2, 14], "compani": 2, "denso": 2, "wave": 2, "automobil": 2, "system": [2, 3, 7, 13], "wa": [2, 8], "beyond": 2, "industri": 2, "due": 2, "fast": [2, 15], "readabl": 2, "greater": 2, "storag": 2, "compar": 2, "upc": 2, "specif": [2, 3, 13], "popular": [2, 16], "model": [2, 14], "internation": 2, "iso": 2, "iec": 2, "18004": 2, "symbol": [2, 14], "consist": 2, "arrai": [2, 4, 5, 6, 7, 9], "nomin": 2, "squar": [2, 9, 12], "overal": 2, "eas": [2, 3], "posit": [2, 7, 12], "row": [2, 8], "column": 2, "coordin": [2, 16], "x": [2, 3, 4, 5, 6, 9, 12, 13, 14], "y": [2, 4, 5, 6, 9, 12], "count": 2, "left": [2, 12], "top": [2, 12], "downward": 2, "commenc": 2, "therefor": [2, 13], "upper": 2, "corner": [2, 12], "repres": 2, "singl": [2, 4, 5, 6, 7, 9], "pixel": [2, 6, 7, 9, 12], "confus": 2, "raster": [2, 6, 9], "screen": 2, "dark": [2, 4, 5, 6, 7, 8, 9, 12], "binari": [2, 14], "light": [2, 4, 5, 6, 7, 8, 9, 12], "zero": 2, "determin": 2, "side": [2, 11], "length": [2, 3], "word": 2, "rang": 2, "21": [2, 3, 10], "177": 2, "40": [2, 12, 14], "increas": [2, 11, 12, 15], "calcul": 2, "17": [2, 14], "each": [2, 11], "tabl": 2, "qrcode": [2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15], "com": [2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13], "three": 2, "ident": [2, 3], "detect": 2, "lower": 2, "view": 2, "superimpos": 2, "concentr": 2, "construct": 2, "preferenti": 2, "low": 2, "probabl": 2, "being": 2, "encount": 2, "elsewher": 2, "enabl": 2, "rapid": 2, "field": [2, 3], "compris": 2, "unambigu": 2, "orient": 2, "fix": [2, 11, 16], "decod": 2, "softwar": 2, "resynchronis": 2, "map": [2, 3, 12], "moder": 2, "amount": 2, "distort": 2, "central": 2, "number": [2, 11, 12, 16], "depend": [2, 12, 13, 14], "larger": 2, "horizont": [2, 12], "vertic": [2, 12], "wide": 2, "altern": [2, 3], "end": [2, 3], "run": [2, 13], "across": [2, 13], "between": 2, "down": 2, "hand": 2, "densiti": 2, "datum": 2, "rest": 2, "surround": 2, "four": 2, "Its": 2, "valu": [2, 3, 4, 8, 9, 10, 11, 12], "equal": 2, "contain": [2, 3, 11], "charact": [2, 3, 11], "codeword": 2, "block": [2, 3, 8, 10, 15], "bit": [2, 10, 14], "start": [2, 10, 12], "bottom": 2, "proceed": 2, "upward": 2, "reach": 2, "next": 2, "immedi": 2, "continu": 2, "whenev": 2, "current": [2, 8, 9, 11], "edg": 2, "area": [2, 3], "unus": 2, "see": [2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16], "wikipedia": [2, 3], "thonki": 2, "tutori": 2, "18": [2, 14], "sequenc": [2, 10], "bch": 2, "15": [2, 12, 14], "10": [2, 3], "It": [2, 3, 14, 15], "remaind": 2, "method": [2, 3, 16], "string": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "identifi": [2, 3], "numer": [2, 14], "0001": 2, "per": 2, "digit": [2, 3], "alphanumer": [2, 14], "0010": 2, "byte": [2, 11, 14], "0100": 2, "kanji": [2, 11, 14], "1000": 2, "shift": [2, 14], "ji": [2, 14], "13": [2, 14], "hanzi": [2, 11, 14], "1101": 2, "simplifi": [2, 14], "chines": [2, 14], "gb2312": [2, 11, 14], "gb18030": [2, 11, 14], "structur": 2, "append": 2, "0011": 2, "split": 2, "multipl": [2, 7], "16": 2, "0111": 2, "select": 2, "fnc1": 2, "first": [2, 16], "0101": 2, "128": 2, "zxing": [2, 3, 14], "issu": [2, 8, 9, 12, 13, 16], "1373": 2, "second": [2, 3], "1001": 2, "0000": 2, "gb": 2, "18284": 2, "stream": 2, "vari": [2, 12], "variabl": 2, "charcount": 2, "subset": 2, "total": 2, "pariti": 2, "assign": 2, "payload": 2, "lenght": 2, "26": 2, "27": [2, 3], "14": 2, "default": [2, 3, 8, 9, 10, 11, 12, 15], "8859": 2, "latin": 2, "24": 2, "preced": [2, 3, 12], "127": 2, "16383": 2, "16384": 2, "999999": 2, "order": 2, "optim": 2, "usag": [2, 15], "basic": [2, 13], "bitstream": 2, "n": [2, 3, 4, 5, 6, 7, 8, 9, 10], "reed": 2, "solomon": 2, "reader": [2, 3, 14, 15, 16], "detail": [2, 3], "breakdown": 2, "versu": 2, "higher": 2, "less": [2, 12], "list": [2, 3, 11, 13], "capabl": 2, "short": 2, "l": [2, 12, 14], "01": 2, "m": [2, 3, 4, 11, 12, 14], "00": 2, "quartil": 2, "q": [2, 3, 12, 14], "25": [2, 12], "high": [2, 15], "shown": 2, "max": [2, 10], "23648": 2, "7089": 2, "4296": 2, "2953": 2, "1817": 2, "18672": 2, "5596": 2, "3391": 2, "2331": 2, "1435": 2, "13328": 2, "3993": 2, "2420": 2, "1663": 2, "1024": 2, "10208": 2, "3057": 2, "1852": 2, "1273": 2, "784": 2, "store": [2, 11], "xore": 2, "evenli": 2, "balanc": 2, "occurr": 2, "would": [2, 3], "interfer": 2, "done": 2, "lowest": 2, "penalti": 2, "score": 2, "final": [2, 6], "output": [2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "dure": 2, "rule": [2, 8], "get": [2, 15], "find": [2, 13], "repetit": 2, "cell": [2, 3], "same": [2, 12], "color": [2, 4, 6, 7, 9, 10, 12], "00000": 2, "11111": 2, "consecut": 2, "black": 2, "white": [2, 12], "ratio": 2, "far": 2, "50": 2, "000": 2, "mod": 2, "001": 2, "010": 2, "011": 2, "100": [2, 12], "intdiv": 2, "101": 2, "110": 2, "111": 2, "width": [2, 8, 12], "height": [2, 8, 12], "either": [2, 3, 4, 14], "background": [2, 6, 7, 9, 10, 12], "revers": [2, 12], "brief": 3, "qr": [3, 6, 7, 8, 9, 12, 13, 14, 16], "perhap": 3, "encod": [3, 11, 12, 14, 15, 16], "properli": 3, "en": [3, 6, 9, 12], "some": [3, 10, 11, 14, 15], "vendor": [3, 13, 15], "youtub": [3, 4, 5, 6, 7, 8, 9, 10], "app": 3, "www": [3, 4, 5, 6, 7, 8, 9, 10, 12], "watch": [3, 4, 5, 6, 7, 8, 9, 10], "dqw4w9wgxcq": [3, 4, 5, 6, 7, 8, 9, 10], "mozilla": [3, 9, 12], "mdn": 3, "ensur": 3, "paramet": [3, 11, 12], "ad": [3, 11], "queri": 3, "addr": 3, "bcc": 3, "bodi": [3, 8], "address": 3, "hello": 3, "20world": 3, "messagewith": 3, "20i": 3, "20the": 3, "20messag": 3, "20bodi": 3, "carbon": 3, "blind": 3, "adress": 3, "element": [3, 8, 9, 10, 12], "comma": 3, "rfc": 3, "3986": 3, "addr1": 3, "addr2": 3, "6068": 3, "email": 3, "prefix": [3, 12], "devic": [3, 8], "dialer": 3, "invok": [3, 11], "999": 3, "123": 3, "456": 3, "7890": 3, "telephon": 3, "sould": 3, "countri": 3, "space": [3, 10, 12], "hyphen": 3, "sm": [3, 10], "fax": 3, "deprec": [3, 14], "favor": 3, "3966": 3, "call": [3, 6, 11], "nation": 3, "convent": 3, "googl": [3, 14], "libphonenumb": 3, "github": [3, 7, 9, 12, 13, 16], "port": [3, 14], "geograph": 3, "altitud": 3, "latitud": 3, "longitud": 3, "cr": 3, "num": 3, "wg": 3, "84": 3, "decim": 3, "degre": 3, "option": [3, 12, 13, 14, 15, 16], "meter": 3, "uncertainti": 3, "z": 3, "zoom": 3, "level": [3, 12, 14, 16], "local": 3, "search": 3, "47": 3, "620521": 3, "122": [3, 12], "349293": 3, "988056": 3, "86": 3, "925278": 3, "8848": 3, "373333": 3, "142": 3, "591667": 3, "10920": 3, "37": 3, "786971": 3, "399677": 3, "moon": 3, "2011": 3, "35": 3, "5870": 3, "uniform": 3, "mode": [3, 14, 16], "secret": [3, 15], "issuer": [3, 15], "param": 3, "path": [3, 4, 9, 11, 12, 15], "elemet": 3, "mandatori": 3, "strongi": 3, "totp": [3, 15], "hotp": 3, "counter": 3, "account": 3, "kei": [3, 11], "associ": 3, "name": [3, 8, 11], "colon": 3, "cryptograph": 3, "random": 3, "base32": 3, "3548": 3, "pad": 3, "base64": [3, 5, 6, 7, 9, 12, 15], "hexadecim": 3, "algorithm": 3, "hash": [3, 13], "sha1": 3, "sha256": 3, "sha512": 3, "otp": 3, "initi": [3, 5, 8], "period": 3, "valid": [3, 13], "jbswy3dpehpk3pxp": 3, "42": 3, "3atim": 3, "60": 3, "4226": 3, "hmac": 3, "One": 3, "password": 3, "6238": 3, "wi": 3, "fi": 3, "syntax": [3, 13], "look": [3, 15], "wifi": 3, "ssid": 3, "p": 3, "hidden": 3, "wep": 3, "wpa": 3, "wpa2": 3, "eap": 3, "nopass": 3, "omit": 3, "ignor": [3, 5, 6, 7, 12], "true": [3, 4, 5, 6, 7, 8, 9, 11, 12], "enclos": 3, "doubl": [3, 14], "quot": 3, "ascii": 3, "hex": 3, "abcd1234": 3, "escap": [3, 10], "backslash": 3, "wpa3": 3, "note": [3, 12, 13, 16], "anonym": 3, "ttl": 3, "pwd": 3, "ph2": 3, "phase": 3, "mschapv2": 3, "utf": [3, 8, 11, 12], "present": [3, 11], "sae": 3, "der": 3, "asn": 3, "subjectpublickeyinfo": 3, "compress": [3, 12], "pk": 3, "transit": 3, "disabl": 3, "mynetworkwihoutpassword": 3, "myhiddenwpanetwork": 3, "password123": 3, "myhiddenwpa2network": 3, "commonli": 3, "exchang": 3, "too": 3, "complex": 3, "fulli": [3, 8], "instead": [3, 9, 12, 15], "bare": 3, "begin": 3, "fn": 3, "gender": 3, "home": 3, "adr": 3, "line1": 3, "line2": 3, "street": 3, "citi": 3, "zip": [3, 13], "tz": 3, "photo": 3, "jpeg": [3, 6, 7], "categori": 3, "6350": 3, "ontologi": 3, "peopl": 3, "organ": 3, "w3c": 3, "vobject": 3, "via": [3, 5, 7, 8, 9, 13, 14, 16], "formerli": 3, "object": [3, 10, 11], "prodid": 3, "spati": 3, "laracon": 3, "wr": 3, "calnam": 3, "vevent": 3, "uid": 3, "5ef5c3f64cb2c": 3, "dtstamp": 3, "tzid": 3, "utc": 3, "20200626t094630": 3, "feed": 3, "dtstart": 3, "20190306t150000z": 3, "dtend": 3, "20190306t160000z": 3, "20190419t135034z": 3, "5545": 3, "internet": 3, "schedul": 3, "core": [3, 14], "class": [4, 5, 6, 7, 8, 9, 10, 12, 15, 16], "encapsul": [4, 14], "postscript": [4, 14], "ep": [4, 12, 14], "qroption": [4, 5, 6, 7, 8, 9, 10, 12, 15, 16], "outputtyp": [4, 5, 6, 7, 8, 9, 10, 11, 16], "qroutputinterfac": [4, 5, 6, 7, 8, 9, 10, 11, 12], "scale": [4, 5, 6, 7, 8, 9, 10, 16], "drawlightmodul": [4, 5, 6, 7, 8, 9, 10, 16], "fals": [4, 5, 6, 7, 8, 9, 10, 12, 15], "255": [4, 5, 6, 10, 12], "bgcolor": [4, 5, 6, 7, 8, 9, 10, 16], "222": [4, 5], "modulevalu": [4, 5, 6, 7, 8, 10, 16], "qrmatrix": [4, 5, 6, 7, 8, 9, 10, 12, 16], "m_finder_dark": [4, 5, 6, 7, 8, 9, 10], "63": [4, 5, 6], "m_finder_dot": [4, 5, 6, 7, 8, 9, 10], "finder": [4, 5, 6, 7, 8, 16], "dot": [4, 5, 6, 7, 8], "m_finder": [4, 5, 6, 7, 8, 10], "233": [4, 6], "m_alignment_dark": [4, 5, 6, 7, 8, 9, 10], "m_align": [4, 5, 6, 7, 8, 10], "m_data_dark": [4, 5, 6], "m_data": [4, 5, 6], "render": [4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16], "save": [4, 16], "file": [4, 12, 13, 15, 16], "data": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16], "http": [4, 5, 6, 7, 8, 9, 10, 16], "__dir__": [4, 15], "push": 4, "download": [4, 7, 13], "browser": [4, 8], "header": [4, 5, 6, 7, 8, 9, 10, 12, 15], "disposit": 4, "filenam": 4, "echo": [4, 5, 7, 8, 10, 15], "exit": 4, "return": [4, 5, 6, 7, 8, 9, 10, 11, 12], "formatcolor": 4, "int": [4, 5, 6, 7, 8, 9, 10], "m_type": [4, 5, 6, 8, 9, 10, 12], "segment": [4, 9, 11, 16], "properti": [4, 5, 6, 7, 8, 9, 10, 11], "connectpath": [4, 5, 6, 7, 8, 9, 10, 16], "bool": [4, 5, 6, 7, 8, 9, 10], "excludefromconnect": [4, 5, 6, 7, 8, 9, 10, 16], "circleradiu": [4, 5, 6, 7, 8, 9, 10, 16], "implement": [4, 10, 12, 13, 14], "drawcircularmodul": [4, 5, 6, 7, 8, 9, 10, 16], "outputbase64": [4, 5, 6, 7, 8, 9, 10, 15, 16], "imagetranspar": [4, 5, 6, 7, 8, 9, 10, 16], "keepassquar": [4, 5, 6, 7, 8, 9, 10, 16], "returnresourc": [4, 5, 6, 7, 8, 9, 10, 16], "portabl": 5, "document": [5, 8, 16], "pdf": [5, 14], "fpdf": [5, 12, 14], "fpdfmeasureunit": [5, 16], "mm": [5, 12], "pt": [5, 12], "cm": [5, 12, 14], "var": [5, 6, 7], "stuff": [5, 6, 7, 14], "dump": [5, 6, 7, 12], "initfpdf": 5, "void": [5, 6, 7, 11], "\u00ecnt": 5, "gdimag": [6, 12, 13, 14], "graphic": [6, 9], "gif": 6, "jpg": 6, "png": [6, 7, 11, 15], "gdimage_bmp": [6, 12], "gdimage_gif": [6, 12], "gdimage_jpg": [6, 12], "gdimage_png": [6, 11, 12], "gdimage_webp": [6, 12], "qualiti": [6, 7, 16], "90": [6, 7], "size": [6, 9, 12, 15], "200": 6, "150": [6, 7], "transpar": [6, 7, 9, 12], "net": [6, 12, 15], "function": [6, 10, 11, 16], "imagecolortranspar": [6, 12], "transparencycolor": [6, 7, 16], "webp": [6, 7], "printf": [6, 7, 9, 11, 15], "img": [6, 7, 9, 11, 15], "alt": [6, 7, 9, 11, 15], "src": [6, 7, 9, 11, 15], "imagesx": 6, "imagejpeg": [6, 12], "imagedestroi": 6, "drawimag": [6, 7], "draw": [6, 7, 9, 12], "dumpimag": 6, "desir": [6, 13], "gd": [6, 12, 13, 14], "setbgcolor": [6, 7], "settransparencycolor": [6, 7], "mix": [6, 7, 14, 16], "float": [6, 7, 9, 14], "imagemagick": [7, 9, 12, 14, 16], "instal": [7, 14, 16], "guid": [7, 13, 15], "oper": [7, 13], "script": [7, 12, 13], "ext": [7, 13, 14], "imagick": [7, 12, 13, 14], "window": [7, 13], "imagickdemo": 7, "imagickformat": [7, 16], "png32": 7, "ccccaa": 7, "a71111": [7, 8], "ffbfbf": [7, 8], "a70364": [7, 8], "ffc9c9": [7, 8], "m_version_dark": [7, 10], "650098": 7, "m_version": [7, 10], "e0b8ff": 7, "scaleimag": 7, "setimageformat": [7, 12], "getimageblob": 7, "imagickdraw": 7, "markupdark": [7, 8, 9, 16], "markuplight": [7, 8, 9, 16], "html": [8, 9, 12, 14], "cheap": 8, "markup": [8, 12, 14], "substitut": [8, 12], "svg": [8, 9, 11, 12, 14, 15], "ca": 8, "2012": 8, "As": 8, "plan": 8, "web": [8, 9, 12], "markup_html": [8, 12], "cssclass": [8, 9, 16], "unassign": [8, 10], "555": 8, "ccc": 8, "align": [8, 12, 16], "doctyp": 8, "lang": 8, "none": 8, "meta": 8, "charset": 8, "viewport": 8, "style": [8, 9], "div": 8, "margin": [8, 12], "1em": 8, "10px": 8, "span": 8, "inlin": 8, "poutput": 8, "createmarkup": 8, "savetofil": 8, "pars": [8, 9], "input": [8, 11, 15], "getcssclass": [8, 9], "css": [8, 9, 12], "eol": [8, 9, 10, 13, 16], "scalabl": 9, "vector": 9, "markup_svg": [9, 12], "won": 9, "empti": [9, 12], "opac": [9, 12], "circl": [9, 12], "isntead": 9, "glitch": [9, 12], "chillerlan": [9, 11, 12, 13, 15, 16], "57": [9, 12], "gradient": [9, 12], "def": [9, 12], "develop": [9, 12], "lineargradi": 9, "svgdef": [9, 16], "rainbow": 9, "x1": 9, "y2": 9, "e2453c": 9, "offset": 9, "e07e39": 9, "e5d667": 9, "51b95b": 9, "1e72b7": 9, "6f5ba7": 9, "cdata": 9, "url": [9, 16], "eee": 9, "xml": [9, 12, 15], "pd94bwwgdmvyc2": 9, "svgaddxmlhead": [9, 16], "svgopac": [9, 16], "svgpreserveaspectratio": [9, 16], "svgviewboxs": 9, "null": [9, 10, 11, 12], "achiev": 9, "199": 9, "comment": 9, "cli": 10, "consol": [10, 12], "ansi": 10, "littl": 10, "helper": 10, "ansi8": 10, "str": 10, "min": 10, "48": 10, "38": 10, "sprintf": 10, "x1b": 10, "0m": 10, "string_text": [10, 12], "line": [10, 12], "textlinestart": [10, 16], "str_repeat": 10, "textdark": [10, 16], "253": 10, "textlight": [10, 16], "124": 10, "string_json": [10, 12], "integ": [10, 12], "matrix": [10, 11, 12, 15, 16], "jsonasboolean": [10, 16], "behav": 11, "stdclass": 11, "cnfigur": 11, "exist": 11, "foo": 11, "bar": 11, "retriev": 11, "var_dump": 11, "thrown": 11, "constructor": 11, "take": [11, 12], "pair": 11, "setter": 11, "myoption": 11, "ecclevel": [11, 16], "fromiter": 11, "tojson": 11, "json_throw_on_error": 11, "jsonserializ": 11, "interfac": 11, "json_encod": 11, "__tostr": 11, "fromjson": 11, "overwriten": 11, "modul": [11, 12, 14, 15], "mycustomopt": 11, "myparam": 11, "defaultvalu": 11, "settingscontainerinterfac": 11, "flexibl": [11, 14], "approach": 11, "trait": 11, "mycustomoptionstrait": 11, "magic": 11, "set_": 11, "set_myparam": 11, "trim": 11, "getter": 11, "get_": 11, "get_myparam": 11, "strtoupper": 11, "settingscontainerabstract": 11, "qroptionstrait": 11, "whatev": [11, 13], "fly": 11, "asid": 11, "after": [11, 13], "invoc": 11, "setopt": 11, "again": 11, "backreferenc": 11, "overrid": [11, 12], "cachefil": [11, 16], "getqrmatrix": 11, "readerresult": 11, "initfunctionalpattern": 11, "rendermatrix": [11, 12], "ini": 11, "internal_encod": 11, "default_charset": 11, "mbstring": [11, 13, 14], "mb_internal_encod": 11, "clearseg": 11, "addnumericseg": 11, "numericdata": 11, "addalphanumseg": 11, "alphanumdata": 11, "addkanjiseg": 11, "kanjidata": 11, "addhanziseg": 11, "hanzidata": 11, "addbyteseg": 11, "binarydata": 11, "addeciseg": 11, "ecicharset": 11, "encodedecidata": 11, "qrdatamodeinterfac": 11, "validatestr": 11, "implemend": 11, "alphanum": 11, "come": 11, "handi": 11, "check": [11, 14], "beforehand": 11, "throw": [11, 15], "invalid": 11, "might": 11, "contrast": [11, 12], "readeruseimagickifavail": [11, 16], "readerincreasecontrast": [11, 16], "readergrayscal": [11, 16], "readfromfil": [11, 15], "decoderresult": [11, 15], "maximum": [12, 16], "correct": [12, 16], "160": 12, "mask": [12, 15, 16], "pattern": [12, 15, 16], "mostli": 12, "unit": 12, "test": [12, 13, 15], "pattern_auto": 12, "quiet": [12, 16], "zone": [12, 16], "spec": 12, "howto": 12, "clamp": 12, "modulecount": 12, "built": [12, 13, 14, 15], "custom": 12, "qrep": [12, 16], "qrfpdf": [12, 16], "qrgdimag": [12, 16], "qrimagick": [12, 13, 14, 16], "qrmarkuphtml": [12, 16], "qrmarkupsvg": [12, 16], "qrstring": [12, 16], "fqcn": 12, "cach": 12, "toggl": 12, "raw": [12, 15], "qroutputabstract": 12, "tobase64datauri": 12, "newlin": 12, "php_eol": 12, "blank": 12, "page": 12, "invert": 12, "reflect": [12, 16], "upscal": 12, "drawn": 12, "imagefilledellips": 12, "back": 12, "23": 12, "radiu": 12, "45": 12, "exclud": 12, "weird": 12, "etc": [12, 14], "abcdef": 12, "cssname": 12, "rgb": 12, "rgba": 12, "setmodulevalu": 12, "creation": [12, 14], "addmatrixmodif": 12, "setlogospac": 12, "assum": 12, "121": 12, "color_str": 12, "transparentpaintimag": 12, "imagebmp": 12, "imagepng": 12, "imagewebp": 12, "setimagecompressionqu": 12, "emb": 12, "sophist": 12, "tag": [12, 13], "preserveaspectratio": 12, "json": [12, 14, 16], "boolean": 12, "__construct": 12, "grayscal": 12, "mileag": 12, "packag": [13, 14], "complain": 13, "monopol": 13, "we": [13, 15], "ve": 13, "dev": 13, "main": [13, 15, 16], "constraint": 13, "releas": 13, "commit": 13, "unforseen": 13, "cb69751c3bc090a7fdd2f2601bbe10f28d225f10": 13, "older": 13, "suit": [13, 14], "platform": 13, "v2": 13, "unchang": 13, "throughout": 13, "v5": 13, "verifi": 13, "deploi": 13, "f15b0afe9d4128bf734c3bf1bcffae72bf7b3e53": 13, "project": [13, 14], "folder": [13, 15], "root": 13, "autoload": [13, 15], "profit": 13, "recommend": 13, "With": 13, "said": 13, "ll": 13, "leav": 13, "info": 13, "choic": 13, "repo": 13, "packagist": 13, "good": [13, 15], "luck": 13, "sinc": 13, "v3": 13, "ye": 13, "fileinfo": [13, 14], "v4": [13, 14], "php8": 13, "v1": 13, "let": 13, "die": 13, "psa": 13, "longer": 13, "kazuhiko": 14, "aras": 14, "namespac": 14, "clean": 14, "improv": 14, "ecc": [14, 16], "combin": 14, "gbt18284": 14, "2000": 14, "easili": 14, "extens": [14, 16], "plain": [14, 16], "setasign": 14, "drupal": 14, "factor": 14, "authent": [14, 15, 16], "tfa": 14, "login": 14, "ga_login": 14, "symfoni": 14, "phpqrcode": 14, "bundl": 14, "wordpress": 14, "wp": 14, "auth": 14, "simpl": 14, "2fa": 14, "button": 14, "woltlab": 14, "verif": 14, "appwrit": 14, "cachet": 14, "g\u00e9ant": 14, "cat": 14, "openitcockpit": 14, "twill": 14, "elef": 14, "twilio": 14, "hi": 14, "my": 14, "cooler": 14, "javascript": 14, "httpinterfac": 14, "psr": 14, "implemet": 14, "oauth": 14, "along": 14, "bunch": 14, "querybuild": 14, "mysql": 14, "postgr": 14, "sqlite": 14, "mssql": 14, "firebird": 14, "tootbot": 14, "mastodon": 14, "bot": 14, "require_onc": 15, "mobil": [15, 16], "otpauth": [15, 16], "b3jx4vcvjdvnxnz5": 15, "advanc": [15, 16], "depth": 15, "pretti": 15, "straight": 15, "forward": 15, "catch": 15, "throwabl": 15, "handl": 15, "cast": 15, "idea": 15, "wrap": 15, "occur": 15, "especi": 15, "subroutin": 15, "caus": 15, "cpu": 15, "load": [15, 16], "oh": 15, "forget": 15, "sanit": 15, "user": [15, 16], "updat": 16, "oct": 16, "io": 16, "licens": 16, "overview": 16, "framework": 16, "shameless": 16, "advertis": 16, "compos": 16, "quickstart": 16, "configur": 16, "iter": 16, "extend": 16, "versionmin": 16, "versionmax": 16, "maskpattern": 16, "addquietzon": 16, "quietzones": 16, "outputinterfac": 16, "invertmatrix": 16, "addlogospac": 16, "logospacewidth": 16, "logospaceheight": 16, "logospacestartx": 16, "logospacestarti": 16, "question": 16, "bug": 16, "report": 16, "pull": 16, "terminologi": 16, "region": 16, "darkmodul": 16, "channel": 16, "eci": 16, "capac": 16, "evalu": 16, "mail": 16, "mailto": 16, "phone": 16, "tel": 16, "geo": 16, "wireless": 16, "network": 16, "vcard": 16, "calendar": 16, "vcalendar": 16, "icalendar": 16}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"how": 0, "contribut": 0, "question": 0, "issu": 0, "bug": 0, "report": 0, "pull": 0, "request": 0, "fix": 0, "document": 0, "licens": 1, "terminologi": 2, "qr": [2, 11, 15], "code": [2, 11, 15], "matrix": 2, "modul": [2, 4, 5, 6, 7, 8, 9, 10, 16], "version": [2, 12, 13], "function": 2, "pattern": 2, "finder": 2, "align": 2, "time": 2, "separ": 2, "quiet": 2, "zone": 2, "encod": 2, "region": 2, "data": 2, "inform": [2, 3], "format": 2, "darkmodul": 2, "mode": [2, 11], "segment": 2, "extend": [2, 11], "channel": 2, "interpret": 2, "eci": 2, "mix": [2, 11], "ecc": 2, "error": 2, "correct": 2, "level": 2, "maximum": 2, "capac": 2, "mask": 2, "evalu": 2, "reflect": 2, "popular": 3, "content": 3, "uri": 3, "scheme": 3, "url": 3, "http": 3, "e": 3, "mail": 3, "mailto": 3, "phone": 3, "number": 3, "tel": 3, "geo": 3, "coordin": 3, "mobil": 3, "authent": 3, "otpauth": 3, "wireless": 3, "network": 3, "configur": [3, 11, 12, 15], "contact": 3, "vcard": 3, "calendar": 3, "event": 3, "vcalendar": 3, "icalendar": 3, "see": 3, "also": 3, "qrep": 4, "exampl": [4, 5, 6, 7, 8, 9], "addit": [4, 5, 6, 7, 8, 9, 10], "method": [4, 5, 6, 7, 8, 9, 10, 11], "option": [4, 5, 6, 7, 8, 9, 10, 11], "affect": [4, 5, 6, 7, 8, 9, 10], "thi": [4, 5, 6, 7, 8, 9, 10, 13], "have": [4, 5, 6, 7, 8, 9, 10], "effect": [4, 5, 6, 7, 8, 9, 10], "qrfpdf": 5, "qrgdimag": 6, "qrimagick": 7, "qrmarkuphtml": 8, "qrmarkupsvg": 9, "qrstring": 10, "plain": 10, "text": 10, "json": [10, 11, 13], "advanc": 11, "usag": [11, 16], "via": 11, "qroption": 11, "suppli": 11, "an": 11, "iter": 11, "load": 11, "save": 11, "class": 11, "qrcode": [11, 16], "file": 11, "render": 11, "qrmatrix": 11, "instanc": 11, "reader": 11, "set": 12, "versionmin": 12, "versionmax": 12, "ecclevel": 12, "maskpattern": 12, "addquietzon": 12, "quietzones": 12, "outputtyp": 12, "outputinterfac": 12, "returnresourc": 12, "cachefil": 12, "outputbase64": 12, "eol": 12, "bgcolor": 12, "invertmatrix": 12, "drawlightmodul": 12, "drawcircularmodul": 12, "circleradiu": 12, "keepassquar": 12, "connectpath": 12, "excludefromconnect": 12, "modulevalu": 12, "addlogospac": 12, "logospacewidth": 12, "logospaceheight": 12, "logospacestartx": 12, "logospacestarti": 12, "scale": 12, "imagetranspar": 12, "transparencycolor": 12, "qualiti": 12, "imagickformat": 12, "cssclass": 12, "markupdark": 12, "markuplight": 12, "svgaddxmlhead": 12, "svgopac": 12, "svgdef": 12, "svgpreserveaspectratio": 12, "textdark": 12, "textlight": 12, "textlinestart": 12, "jsonasboolean": 12, "fpdfmeasureunit": 12, "readeruseimagickifavail": 12, "readergrayscal": 12, "readerincreasecontrast": 12, "instal": 13, "compos": 13, "switch": 13, "termin": 13, "manual": [13, 16], "can": 13, "i": 13, "us": 13, "librari": [13, 15], "without": 13, "support": 13, "php": [13, 16], "extens": 13, "requir": [13, 14], "imagemagick": 13, "overview": 14, "featur": 14, "framework": 14, "integr": 14, "shameless": 14, "advertis": 14, "quickstart": 15, "import": 15, "creat": 15, "your": 15, "first": 15, "read": 15, "note": 15, "built": 16, "In": 16, "output": 16, "appendix": 16}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"How to contribute": [[0, "how-to-contribute"]], "Questions and issues": [[0, "questions-and-issues"]], "Bug reports": [[0, "bug-reports"]], "Pull requests and bug fixes": [[0, "pull-requests-and-bug-fixes"]], "Documentation": [[0, "documentation"]], "License": [[1, "license"]], "Terminology": [[2, "terminology"]], "QR Code": [[2, "qr-code"]], "Matrix": [[2, "matrix"]], "Module": [[2, "module"]], "Version": [[2, "version"]], "Function Patterns": [[2, "function-patterns"]], "Finder Pattern": [[2, "finder-pattern"]], "Alignment Pattern": [[2, "alignment-pattern"]], "Timing Pattern": [[2, "timing-pattern"]], "Separators": [[2, "separators"]], "Quiet Zone": [[2, "quiet-zone"]], "Encoding Region": [[2, "encoding-region"]], "Data": [[2, "data"]], "Version Information": [[2, "version-information"]], "Format Information": [[2, "format-information"]], "Darkmodule": [[2, "darkmodule"]], "Mode": [[2, "mode"]], "Segment": [[2, "segment"]], "Extended Channel Interpretation (ECI)": [[2, "extended-channel-interpretation-eci"]], "Mixed Mode": [[2, "mixed-mode"]], "ECC (Error Correction Coding)": [[2, "ecc-error-correction-coding"]], "ECC Level": [[2, "ecc-level"]], "Maximum data capacity": [[2, "maximum-data-capacity"]], "Data masking": [[2, "data-masking"]], "Evaluation": [[2, "evaluation"]], "Mask pattern": [[2, "mask-pattern"]], "Reflectance": [[2, "reflectance"]], "Popular content and URI schemes": [[3, "popular-content-and-uri-schemes"]], "URL https": [[3, "url-https"]], "E-Mail mailto": [[3, "e-mail-mailto"]], "Phone numbers tel": [[3, "phone-numbers-tel"]], "Geo Coordinates geo": [[3, "geo-coordinates-geo"]], "Mobile Authenticators otpauth": [[3, "mobile-authenticators-otpauth"]], "Wireless Network configuration": [[3, "wireless-network-configuration"]], "Contact information: vCard": [[3, "contact-information-vcard"]], "Calendar Events: vCalendar and iCalendar": [[3, "calendar-events-vcalendar-and-icalendar"]], "See also": [[3, "see-also"]], "QREps": [[4, "qreps"]], "Example": [[4, "example"], [5, "example"], [6, "example"], [7, "example"], [8, "example"], [9, "example"]], "Additional methods": [[4, "additional-methods"], [5, "additional-methods"], [6, "additional-methods"], [7, "additional-methods"], [8, "additional-methods"], [9, "additional-methods"], [10, "additional-methods"]], "Options that affect this module": [[4, "options-that-affect-this-module"], [5, "options-that-affect-this-module"], [6, "options-that-affect-this-module"], [7, "options-that-affect-this-module"], [8, "options-that-affect-this-module"], [9, "options-that-affect-this-module"], [10, "options-that-affect-this-module"]], "Options that have no effect": [[4, "options-that-have-no-effect"], [5, "options-that-have-no-effect"], [6, "options-that-have-no-effect"], [7, "options-that-have-no-effect"], [8, "options-that-have-no-effect"], [9, "options-that-have-no-effect"], [10, "options-that-have-no-effect"]], "QRFpdf": [[5, "qrfpdf"]], "QRGdImage": [[6, "qrgdimage"]], "QRImagick": [[7, "qrimagick"]], "QRMarkupHTML": [[8, "qrmarkuphtml"]], "QRMarkupSVG": [[9, "qrmarkupsvg"]], "QRString": [[10, "qrstring"]], "Plain text": [[10, "plain-text"]], "JSON": [[10, "json"]], "Advanced usage": [[11, "advanced-usage"]], "Configuration via QROptions": [[11, "configuration-via-qroptions"]], "Supply an iterable of options": [[11, "supply-an-iterable-of-options"]], "Load and save JSON": [[11, "load-and-save-json"]], "Extending the QROptions class": [[11, "extending-the-qroptions-class"]], "QRCode methods": [[11, "qrcode-methods"]], "Save to file": [[11, "save-to-file"]], "Render a QRMatrix instance": [[11, "render-a-qrmatrix-instance"]], "Mixed mode": [[11, "mixed-mode"]], "QR Code reader": [[11, "qr-code-reader"]], "Configuration settings": [[12, "configuration-settings"]], "version": [[12, "version"]], "versionMin": [[12, "versionmin"]], "versionMax": [[12, "versionmax"]], "eccLevel": [[12, "ecclevel"]], "maskPattern": [[12, "maskpattern"]], "addQuietzone": [[12, "addquietzone"]], "quietzoneSize": [[12, "quietzonesize"]], "outputType": [[12, "outputtype"]], "outputInterface": [[12, "outputinterface"]], "returnResource": [[12, "returnresource"]], "cachefile": [[12, "cachefile"]], "outputBase64": [[12, "outputbase64"]], "eol": [[12, "eol"]], "bgColor": [[12, "bgcolor"]], "invertMatrix": [[12, "invertmatrix"]], "drawLightModules": [[12, "drawlightmodules"]], "drawCircularModules": [[12, "drawcircularmodules"]], "circleRadius": [[12, "circleradius"]], "keepAsSquare": [[12, "keepassquare"]], "connectPaths": [[12, "connectpaths"]], "excludeFromConnect": [[12, "excludefromconnect"]], "moduleValues": [[12, "modulevalues"]], "addLogoSpace": [[12, "addlogospace"]], "logoSpaceWidth": [[12, "logospacewidth"]], "logoSpaceHeight": [[12, "logospaceheight"]], "logoSpaceStartX": [[12, "logospacestartx"]], "logoSpaceStartY": [[12, "logospacestarty"]], "scale": [[12, "scale"]], "imageTransparent": [[12, "imagetransparent"]], "transparencyColor": [[12, "transparencycolor"]], "quality": [[12, "quality"]], "imagickFormat": [[12, "imagickformat"]], "cssClass": [[12, "cssclass"]], "markupDark": [[12, "markupdark"]], "markupLight": [[12, "markuplight"]], "svgAddXmlHeader": [[12, "svgaddxmlheader"]], "svgOpacity": [[12, "svgopacity"]], "svgDefs": [[12, "svgdefs"]], "svgPreserveAspectRatio": [[12, "svgpreserveaspectratio"]], "textDark": [[12, "textdark"]], "textLight": [[12, "textlight"]], "textLineStart": [[12, "textlinestart"]], "jsonAsBooleans": [[12, "jsonasbooleans"]], "fpdfMeasureUnit": [[12, "fpdfmeasureunit"]], "readerUseImagickIfAvailable": [[12, "readeruseimagickifavailable"]], "readerGrayscale": [[12, "readergrayscale"]], "readerIncreaseContrast": [[12, "readerincreasecontrast"]], "Installation": [[13, "installation"]], "Installation with Composer": [[13, "installation-with-composer"]], "composer.json": [[13, "composer-json"]], "Version switch": [[13, "version-switch"]], "Terminal": [[13, "terminal"]], "Manual installation": [[13, "manual-installation"]], "Can i use this library without using composer?": [[13, "can-i-use-this-library-without-using-composer"]], "Supported PHP versions & extension requirements": [[13, "supported-php-versions-extension-requirements"]], "ImageMagick": [[13, "imagemagick"]], "Overview": [[14, "overview"]], "Features": [[14, "features"]], "Requirements": [[14, "requirements"]], "Framework Integration": [[14, "framework-integration"]], "Shameless advertising": [[14, "shameless-advertising"]], "Quickstart": [[15, "quickstart"]], "Import the library": [[15, "import-the-library"]], "Create your first QR Code": [[15, "create-your-first-qr-code"]], "Configuration": [[15, "configuration"]], "Reading QR Codes": [[15, "reading-qr-codes"]], "Notes": [[15, "notes"]], "PHP-QRCode Manual": [[16, "php-qrcode-manual"]], "Usage": [[16, null]], "Built-In Output Modules": [[16, null]], "Appendix": [[16, null]]}, "indexentries": {}})
\ No newline at end of file
+Search.setIndex({"docnames": ["Appendix/Contribute", "Appendix/License", "Appendix/Terminology", "Appendix/URI-Content", "Built-In-Output/QREps", "Built-In-Output/QRFpdf", "Built-In-Output/QRGdImage", "Built-In-Output/QRImagick", "Built-In-Output/QRMarkupHTML", "Built-In-Output/QRMarkupSVG", "Built-In-Output/QRString", "Customizing/Module-Values", "Usage/Advanced-usage", "Usage/Configuration-settings", "Usage/Installation", "Usage/Overview", "Usage/Quickstart", "index"], "filenames": ["Appendix/Contribute.md", "Appendix/License.rst", "Appendix/Terminology.md", "Appendix/URI-Content.md", "Built-In-Output/QREps.md", "Built-In-Output/QRFpdf.md", "Built-In-Output/QRGdImage.md", "Built-In-Output/QRImagick.md", "Built-In-Output/QRMarkupHTML.md", "Built-In-Output/QRMarkupSVG.md", "Built-In-Output/QRString.md", "Customizing/Module-Values.md", "Usage/Advanced-usage.md", "Usage/Configuration-settings.md", "Usage/Installation.md", "Usage/Overview.md", "Usage/Quickstart.md", "index.rst"], "titles": ["How to contribute", "License", "Terminology", "Popular content and URI schemes", "QREps", "QRFpdf", "QRGdImage", "QRImagick", "QRMarkupHTML", "QRMarkupSVG", "QRString", "Module values", "Advanced usage", "Configuration settings", "Installation", "Overview", "Quickstart", "PHP-QRCode Manual"], "terms": {"If": [0, 1, 2, 14], "you": [0, 1, 3, 8, 11, 12, 14, 16], "have": [0, 1, 2, 16, 17], "about": [0, 14], "gener": [0, 3, 8, 11, 12, 14, 15, 16], "while": 0, "us": [0, 1, 2, 3, 8, 9, 10, 12, 13, 15, 16, 17], "thi": [0, 1, 2, 3, 11, 12, 13, 15, 16, 17], "librari": [0, 3, 15, 17], "head": [0, 8], "over": [0, 11, 13], "discuss": [0, 9, 13], "section": [0, 1, 3], "creat": [0, 1, 3, 6, 7, 10, 11, 12, 15, 17], "new": [0, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16], "post": 0, "describ": [0, 1, 3], "your": [0, 1, 7, 12, 14, 17], "precis": 0, "possibl": [0, 1, 2, 3], "ideal": [0, 12], "add": [0, 3, 9, 10, 13, 14], "code": [0, 3, 8, 11, 13, 14, 15, 17], "exampl": [0, 1, 2, 3, 11, 15, 16, 17], "applic": [0, 1, 2, 3, 4, 5, 10, 13, 14], "pleas": [0, 3, 7, 13, 14, 15], "don": [0, 11, 16], "t": [0, 2, 3, 9, 11, 16], "just": [0, 3, 11, 12], "write": [0, 3], "headlin": 0, "sai": 0, "all": [0, 1, 2, 3, 8, 9, 11, 12, 13, 14], "becaus": [0, 1], "repli": 0, "like": [0, 3, 14, 16], "similarli": [0, 2], "concis": 0, "help": 0, "me": 0, "other": [0, 1, 2, 3, 5, 6, 7, 11, 13, 15], "clarifi": 0, "doe": [0, 1, 2, 12], "mean": [0, 1, 2], "php": [0, 3, 6, 7, 8, 9, 12, 13, 15, 16], "support": [0, 3, 7, 15, 17], "which": [0, 1, 2, 3, 8, 11, 12, 13], "case": [0, 1, 3, 11, 12, 14], "re": 0, "better": 0, "off": 0, "stackoverflow": 0, "r": [0, 3, 4, 5, 13], "phphelp": 0, "so": [0, 1, 2, 3, 11, 13, 14], "found": [0, 2, 12, 17], "i": [0, 1, 2, 3, 8, 9, 11, 12, 13, 15, 16, 17], "somehow": 0, "misbehav": 0, "That": 0, "": [0, 1, 3, 5, 6, 7, 9, 10, 12, 14, 16], "great": 0, "well": [0, 1, 3], "tho": 0, "In": [0, 1, 11, 12, 14], "open": [0, 3, 14], "fill": [0, 9, 11, 13], "out": [0, 1, 5, 6, 7, 8, 9, 15], "THE": [0, 1], "templat": 0, "cap": 0, "nobodi": 0, "actual": 0, "usual": 0, "lead": 0, "sever": [0, 1, 11, 12, 13, 14], "avoid": [0, 1, 9, 13, 14, 16], "follow": [0, 1, 2, 3, 7, 11, 14, 15], "up": [0, 2, 14, 15], "cost": [0, 1], "both": 0, "u": [0, 3, 9, 13], "preciou": 0, "time": [0, 1, 3, 17], "below": [0, 1], "an": [0, 1, 2, 3, 5, 8, 11, 13, 14, 15, 17], "hard": 0, "A": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15], "clear": [0, 12], "descript": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "what": [0, 3], "step": [0, 2, 15], "reproduc": [0, 1], "behavior": 0, "when": [0, 2, 3, 8, 12, 13], "do": [0, 1, 5, 6, 7, 14], "The": [0, 1, 2, 3, 11, 12, 13, 14, 16, 17], "error": [0, 1, 12, 13, 16, 17], "messag": [0, 2, 3], "sampl": 0, "here": [0, 1, 3], "expect": [0, 1, 13, 14], "happen": 0, "screenshot": 0, "explain": [0, 3], "problem": 0, "environ": 0, "complet": [0, 3], "inform": [0, 1, 17], "version": [0, 3, 9, 12, 15, 16, 17], "o": [0, 3], "e": [0, 1, 7, 11, 12, 13, 14, 16, 17], "g": [0, 1, 3, 4, 5, 7, 11, 12, 13, 14], "7": [0, 1, 2, 3, 9, 12, 13, 14, 15, 16], "4": [0, 1, 2, 3, 6, 7, 9, 11, 13, 14, 15, 17], "12": [0, 2], "ubuntu": 0, "20": [0, 1, 6, 7, 13], "04": [0, 17], "3": [0, 1, 2, 11, 14, 15], "addit": [0, 1, 2, 3, 12, 17], "context": [0, 1], "ani": [0, 1, 12, 16], "want": [0, 14, 16], "someth": 0, "featur": [0, 17], "hei": [0, 16], "cool": 0, "howev": [0, 1, 3, 11, 12, 14], "few": 0, "thing": 0, "keep": [0, 9, 14], "mind": 0, "pr": 0, "why": 0, "should": [0, 1, 3, 8, 12], "merg": 0, "unsur": 0, "befor": [0, 1, 8, 13, 14], "gather": 0, "feedback": 0, "make": [0, 1, 3, 12], "sure": [0, 3, 12], "branch": [0, 14], "date": [0, 1], "even": [0, 1, 11], "upstream": 0, "submit": 0, "try": [0, 11, 16], "adher": 0, "loos": 0, "outlin": 0, "standard": [0, 1, 2], "phpstorm": 0, "suppli": [0, 1, 3, 11, 17], "id": [0, 2, 9], "profil": 0, "work": [0, 1, 3, 11, 13, 17], "progress": 0, "suggest": [0, 1], "veri": 0, "welcom": 0, "api": [0, 14, 17], "auto": [0, 13], "phpdocumentor": [0, 17], "from": [0, 1, 2, 3, 9, 11, 12, 13, 14], "docblock": 0, "sourc": 0, "markdown": 0, "read": [0, 1, 2, 13, 14, 17], "doc": [0, 9, 13], "onlin": [0, 3], "manual": [0, 6, 11, 12], "ar": [0, 1, 2, 3, 11, 13, 14, 15], "locat": [0, 2, 3], "directori": [0, 14], "copyright": 1, "c": [1, 4, 13], "2023": [1, 17], "smilei": 1, "under": [1, 12, 17], "creativ": [1, 17], "common": [1, 3, 12, 13, 17], "attribut": [1, 9, 13, 17], "0": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 17], "intern": [1, 2, 11, 12, 13, 17], "cc": [1, 3, 17], "BY": [1, 17], "summari": [1, 3], "given": [1, 2, 7, 8, 9, 11, 13], "full": [1, 3], "legal": 1, "text": [1, 3, 8, 11, 15, 17], "free": [1, 2], "share": [1, 3, 15], "copi": [1, 3], "redistribut": 1, "materi": 1, "medium": [1, 2], "format": [1, 3, 4, 5, 7, 13, 15, 17], "adapt": 1, "remix": 1, "transform": 1, "build": 1, "upon": 1, "purpos": [1, 13], "commerci": 1, "licensor": 1, "cannot": 1, "revok": 1, "freedom": 1, "long": 1, "term": 1, "must": 1, "give": [1, 2], "appropri": [1, 2], "credit": 1, "provid": [1, 2, 3, 11, 15], "link": [1, 3, 14], "indic": [1, 2, 3], "chang": [1, 2], "were": 1, "made": 1, "mai": [1, 2, 3, 11, 12, 13, 16], "reason": [1, 4, 5, 6, 7, 8, 9, 10], "manner": 1, "wai": [1, 15], "endors": 1, "No": [1, 13], "restrict": 1, "appli": [1, 2, 13], "technolog": 1, "measur": [1, 13], "anyth": [1, 13], "permit": 1, "corpor": 1, "law": 1, "firm": 1, "servic": [1, 3], "advic": 1, "distribut": 1, "public": 1, "lawyer": 1, "client": [1, 15], "relationship": 1, "its": [1, 2], "relat": [1, 11], "avail": [1, 8, 12, 13], "basi": 1, "warranti": 1, "regard": 1, "condit": 1, "disclaim": 1, "liabil": 1, "damag": 1, "result": [1, 12, 16], "fullest": 1, "extent": 1, "set": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 17], "creator": 1, "right": [1, 2], "holder": 1, "origin": 1, "authorship": 1, "subject": [1, 3], "certain": 1, "specifi": [1, 3, 4, 11, 12, 13, 14], "consider": 1, "onli": [1, 3, 11, 13], "exhaust": 1, "form": [1, 2, 3], "part": [1, 2, 16], "our": [1, 11], "intend": [1, 2, 9], "those": [1, 2], "author": 1, "permiss": 1, "otherwis": 1, "irrevoc": 1, "understand": 1, "thei": [1, 2, 3], "choos": [1, 16], "also": [1, 2, 9, 11, 12, 13, 14, 15, 16, 17], "secur": 1, "necessari": [1, 11, 12, 16], "can": [1, 2, 3, 4, 6, 9, 11, 12, 15, 16, 17], "reus": [1, 12], "clearli": 1, "mark": [1, 2], "includ": [1, 3, 14, 16], "except": [1, 12, 16], "limit": 1, "more": [1, 2, 3, 9, 11, 12, 13, 16], "wiki": [1, 3, 13], "creativecommon": 1, "org": [1, 3, 7, 9, 13, 14], "considerations_for_licensor": 1, "By": 1, "one": [1, 2, 3, 6, 9], "grant": 1, "regul": 1, "ha": [1, 3], "still": 1, "special": [1, 3, 11], "request": [1, 17], "ask": 1, "although": 1, "requir": [1, 3, 17], "encourag": 1, "respect": [1, 2, 11, 14], "where": [1, 2, 11, 13], "considerations_for_license": 1, "exercis": 1, "defin": [1, 2, 11, 15], "accept": [1, 11], "agre": 1, "bound": 1, "To": [1, 11, 14], "interpret": [1, 3, 17], "contract": 1, "benefit": 1, "receiv": [1, 11], "1": [1, 2, 3, 8, 9, 13, 14, 15], "definit": 1, "similar": [1, 2, 3, 9, 11, 12, 14], "deriv": 1, "base": [1, 2, 3, 12, 15], "translat": 1, "alter": 1, "arrang": [1, 2], "modifi": 1, "held": [1, 10], "For": [1, 2, 12, 15], "music": 1, "perform": 1, "sound": 1, "record": 1, "alwai": [1, 2], "produc": 1, "synch": 1, "move": [1, 2], "imag": [1, 2, 6, 7, 9, 11, 12, 13, 16], "b": [1, 4, 5, 13], "contribut": [1, 17], "accord": [1, 2, 3, 13], "close": 1, "without": [1, 3, 12, 17], "broadcast": 1, "sui": 1, "generi": 1, "databas": [1, 12, 15], "how": [1, 15, 17], "label": [1, 2, 3], "categor": 1, "2": [1, 2, 3, 9, 10, 11, 13, 14, 15], "d": 1, "effect": [1, 12, 13, 17], "absenc": 1, "proper": [1, 10, 12], "circumv": 1, "fulfil": 1, "oblig": 1, "articl": [1, 15], "11": [1, 2, 3], "wipo": 1, "treati": 1, "adopt": 1, "decemb": 1, "1996": 1, "agreement": 1, "fair": 1, "deal": 1, "f": 1, "artist": 1, "literari": 1, "h": [1, 2, 3, 13, 15], "individu": 1, "entiti": 1, "process": [1, 2, 11, 16], "reproduct": 1, "displai": [1, 8], "dissemin": 1, "commun": 1, "import": [1, 17], "member": 1, "access": [1, 3], "place": [1, 2], "chosen": 1, "them": [1, 11, 12], "j": [1, 15], "than": [1, 2, 13, 15], "direct": [1, 2], "96": 1, "9": [1, 2, 13, 14], "ec": 1, "european": 1, "parliament": 1, "council": 1, "march": 1, "protect": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "amend": 1, "succeed": 1, "essenti": [1, 2], "equival": [1, 3], "anywher": 1, "world": [1, 3], "k": [1, 3, 4, 13], "correspond": 1, "scope": 1, "herebi": 1, "worldwid": 1, "royalti": 1, "non": [1, 11, 13], "sublicens": 1, "exclus": 1, "whole": 1, "doubt": 1, "need": [1, 2, 11, 12], "compli": 1, "6": [1, 2, 3, 9, 10, 14], "media": 1, "technic": 1, "modif": [1, 12], "allow": [1, 2, 14], "whether": [1, 11, 13], "now": [1, 11, 16], "known": 1, "hereaft": 1, "waiv": 1, "assert": 1, "forbid": 1, "simpli": [1, 3, 16], "never": 1, "5": [1, 2, 4, 5, 10, 11, 12, 14], "downstream": 1, "recipi": [1, 3], "offer": [1, 12], "everi": 1, "automat": 1, "impos": 1, "differ": [1, 3, 11, 13], "noth": 1, "constitut": 1, "constru": 1, "impli": 1, "connect": [1, 9, 13], "sponsor": 1, "offici": 1, "statu": 1, "design": [1, 2], "moral": 1, "integr": [1, 17], "nor": [1, 14], "privaci": 1, "person": 1, "patent": 1, "trademark": 1, "collect": 1, "directli": [1, 12, 13], "through": 1, "societi": 1, "voluntari": 1, "waivabl": 1, "statutori": 1, "compulsori": 1, "scheme": [1, 17], "expressli": 1, "reserv": [1, 2], "retain": 1, "identif": [1, 2, 3], "pseudonym": 1, "ii": 1, "notic": 1, "iii": 1, "refer": [1, 2, 3], "iv": 1, "v": [1, 3, 4, 5, 6, 7, 8, 9, 10], "uri": [1, 13, 16, 17], "hyperlink": 1, "practic": 1, "previou": [1, 2], "satisfi": 1, "resourc": [1, 3, 6, 13], "remov": [1, 9], "prevent": 1, "extract": [1, 14], "substanti": 1, "portion": 1, "content": [1, 2, 4, 6, 7, 8, 10, 12, 14, 16, 17], "supplement": 1, "replac": [1, 11, 14], "unless": 1, "separ": [1, 3, 17], "undertaken": 1, "TO": 1, "AS": 1, "AND": [1, 11], "NO": 1, "represent": 1, "OR": [1, 11], "OF": 1, "kind": 1, "concern": 1, "express": 1, "titl": [1, 8], "merchant": 1, "fit": 1, "FOR": 1, "particular": [1, 11], "infring": 1, "latent": 1, "defect": 1, "accuraci": 1, "presenc": 1, "NOT": [1, 11], "discover": 1, "IN": 1, "event": [1, 2, 17], "WILL": 1, "BE": 1, "liabl": 1, "ON": 1, "theori": 1, "neglig": 1, "indirect": 1, "incident": 1, "consequenti": 1, "punit": 1, "exemplari": 1, "loss": 1, "expens": 1, "aris": 1, "IF": 1, "been": [1, 14], "advis": [1, 3], "SUCH": 1, "abov": 1, "shall": [1, 2, 3], "most": [1, 3, 14], "approxim": [1, 2], "absolut": [1, 14], "waiver": 1, "termin": [1, 2, 17], "fail": 1, "reinstat": 1, "violat": 1, "cure": 1, "within": [1, 2, 15], "30": [1, 2, 3, 13], "dai": 1, "discoveri": 1, "affect": [1, 17], "seek": 1, "remedi": 1, "stop": [1, 9], "8": [1, 2, 3, 8, 9, 10, 12, 13, 14, 15], "surviv": 1, "state": [1, 3, 11], "herein": 1, "independ": 1, "reduc": [1, 2], "could": [1, 11], "lawfulli": 1, "provis": 1, "deem": 1, "unenforc": 1, "reform": 1, "minimum": [1, 3, 13], "enforc": 1, "remain": [1, 14], "failur": 1, "consent": 1, "privileg": 1, "immun": 1, "jurisdict": 1, "parti": 1, "notwithstand": 1, "elect": 1, "publish": 1, "instanc": [1, 5, 6, 7, 16, 17], "consid": 1, "dedic": 1, "domain": 1, "cc0": 1, "polici": 1, "logo": [1, 3, 13], "prior": 1, "written": 1, "unauthor": 1, "paragraph": 1, "contact": [1, 17], "quick": 2, "respons": 2, "type": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16], "two": [2, 15], "dimension": [2, 11], "barcod": [2, 3], "invent": 2, "1994": 2, "japanes": [2, 15], "compani": 2, "denso": 2, "wave": 2, "automobil": 2, "system": [2, 3, 7, 14], "wa": [2, 8], "beyond": 2, "industri": 2, "due": 2, "fast": [2, 16], "readabl": 2, "greater": 2, "storag": 2, "compar": 2, "upc": 2, "specif": [2, 3, 11, 14], "popular": [2, 17], "model": [2, 15], "internation": 2, "iso": 2, "iec": 2, "18004": 2, "symbol": [2, 15], "consist": 2, "arrai": [2, 4, 5, 6, 7, 9, 11], "nomin": 2, "squar": [2, 9, 13], "overal": 2, "eas": [2, 3], "posit": [2, 7, 13], "row": [2, 8, 11], "column": [2, 11], "coordin": [2, 17], "x": [2, 3, 4, 5, 6, 9, 11, 13, 14, 15], "y": [2, 4, 5, 6, 9, 11, 13], "count": [2, 11], "left": [2, 13], "top": [2, 13], "downward": 2, "commenc": 2, "therefor": [2, 14], "upper": 2, "corner": [2, 13], "repres": [2, 11], "singl": [2, 4, 5, 6, 7, 9], "pixel": [2, 6, 7, 9, 11, 13], "confus": 2, "raster": [2, 6, 9], "screen": 2, "dark": [2, 4, 5, 6, 7, 8, 9, 11, 13], "binari": [2, 15], "light": [2, 4, 5, 6, 7, 8, 9, 11, 13], "zero": 2, "determin": 2, "side": [2, 12], "length": [2, 3], "word": 2, "rang": 2, "21": [2, 3, 10], "177": 2, "40": [2, 13, 15], "increas": [2, 12, 13, 16], "calcul": 2, "17": [2, 15], "each": [2, 11, 12], "tabl": 2, "qrcode": [2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16], "com": [2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14], "three": 2, "ident": [2, 3], "detect": 2, "lower": 2, "view": 2, "superimpos": 2, "concentr": 2, "construct": 2, "preferenti": 2, "low": 2, "probabl": 2, "being": 2, "encount": 2, "elsewher": 2, "enabl": 2, "rapid": 2, "field": [2, 3], "compris": 2, "unambigu": 2, "orient": 2, "fix": [2, 12, 17], "decod": 2, "softwar": 2, "resynchronis": 2, "map": [2, 3, 11, 13], "moder": 2, "amount": 2, "distort": 2, "central": 2, "number": [2, 12, 13, 17], "depend": [2, 13, 14, 15], "larger": 2, "horizont": [2, 13], "vertic": [2, 13], "wide": 2, "altern": [2, 3], "end": [2, 3], "run": [2, 11, 14], "across": [2, 14], "between": [2, 11], "down": 2, "hand": 2, "densiti": 2, "datum": 2, "rest": 2, "surround": 2, "four": 2, "Its": 2, "valu": [2, 3, 4, 8, 9, 10, 12, 13, 17], "equal": 2, "contain": [2, 3, 12], "charact": [2, 3, 12], "codeword": 2, "block": [2, 3, 8, 10, 16], "bit": [2, 10, 11, 13, 15], "start": [2, 10, 13], "bottom": 2, "proceed": 2, "upward": 2, "reach": 2, "next": 2, "immedi": 2, "continu": 2, "whenev": 2, "current": [2, 8, 9, 11, 12], "edg": 2, "area": [2, 3], "unus": 2, "see": [2, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17], "wikipedia": [2, 3, 13], "thonki": 2, "tutori": 2, "18": [2, 15], "sequenc": [2, 10], "bch": 2, "15": [2, 13, 15], "10": [2, 3], "It": [2, 3, 15, 16], "remaind": 2, "method": [2, 3, 11, 17], "string": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16], "identifi": [2, 3], "numer": [2, 11, 15], "0001": 2, "per": [2, 11], "digit": [2, 3], "alphanumer": [2, 15], "0010": 2, "byte": [2, 12, 15], "0100": 2, "kanji": [2, 12, 15], "1000": 2, "shift": [2, 15], "ji": [2, 15], "13": [2, 15], "hanzi": [2, 12, 15], "1101": 2, "simplifi": [2, 15], "chines": [2, 15], "gb2312": [2, 12, 15], "gb18030": [2, 12, 15], "structur": 2, "append": 2, "0011": 2, "split": 2, "multipl": [2, 7], "16": 2, "0111": 2, "select": 2, "fnc1": 2, "first": [2, 11, 17], "0101": 2, "128": 2, "zxing": [2, 3, 15], "issu": [2, 8, 9, 11, 13, 14, 17], "1373": 2, "second": [2, 3], "1001": 2, "0000": 2, "gb": 2, "18284": 2, "stream": 2, "vari": [2, 13], "variabl": 2, "charcount": 2, "subset": 2, "total": 2, "pariti": 2, "assign": [2, 17], "payload": 2, "lenght": 2, "26": 2, "27": [2, 3], "14": 2, "default": [2, 3, 8, 9, 10, 11, 12, 13, 16], "8859": 2, "latin": 2, "24": 2, "preced": [2, 3, 13], "127": 2, "16383": 2, "16384": 2, "999999": 2, "order": 2, "optim": 2, "usag": [2, 16], "basic": [2, 14, 17], "bitstream": 2, "n": [2, 3, 4, 5, 6, 7, 8, 9, 10], "reed": 2, "solomon": 2, "reader": [2, 3, 15, 16, 17], "detail": [2, 3], "breakdown": 2, "versu": 2, "higher": 2, "less": [2, 13], "list": [2, 3, 12, 14], "capabl": 2, "short": 2, "l": [2, 13, 15], "01": 2, "m": [2, 3, 4, 12, 13, 15], "00": 2, "quartil": 2, "q": [2, 3, 13, 15], "25": [2, 13], "high": [2, 16], "shown": 2, "max": [2, 10, 11], "23648": 2, "7089": 2, "4296": 2, "2953": 2, "1817": 2, "18672": 2, "5596": 2, "3391": 2, "2331": 2, "1435": 2, "13328": 2, "3993": 2, "2420": 2, "1663": 2, "1024": 2, "10208": 2, "3057": 2, "1852": 2, "1273": 2, "784": 2, "store": [2, 12], "xore": 2, "evenli": 2, "balanc": 2, "occurr": 2, "would": [2, 3], "interfer": 2, "done": 2, "lowest": 2, "penalti": 2, "score": 2, "final": [2, 6, 11], "output": [2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "dure": [2, 11], "rule": [2, 8], "get": [2, 16], "find": [2, 11, 14], "repetit": 2, "cell": [2, 3], "same": [2, 13], "color": [2, 4, 6, 7, 9, 10, 11, 13], "00000": 2, "11111": 2, "consecut": 2, "black": 2, "white": [2, 13], "ratio": 2, "far": 2, "50": 2, "000": 2, "mod": 2, "001": 2, "010": 2, "011": 2, "100": [2, 13], "intdiv": 2, "101": 2, "110": 2, "111": 2, "width": [2, 8, 13], "height": [2, 8, 13], "either": [2, 3, 4, 15], "background": [2, 6, 7, 9, 10, 13], "revers": [2, 13], "brief": 3, "qr": [3, 6, 7, 8, 9, 11, 13, 14, 15, 17], "perhap": 3, "encod": [3, 12, 13, 15, 16, 17], "properli": [3, 11], "en": [3, 6, 9, 13], "some": [3, 10, 12, 15, 16], "vendor": [3, 14, 16], "youtub": [3, 4, 5, 6, 7, 8, 9, 10], "app": 3, "www": [3, 4, 5, 6, 7, 8, 9, 10, 13], "watch": [3, 4, 5, 6, 7, 8, 9, 10], "dqw4w9wgxcq": [3, 4, 5, 6, 7, 8, 9, 10], "mozilla": [3, 9, 13], "mdn": 3, "ensur": 3, "paramet": [3, 12, 13], "ad": [3, 12], "queri": 3, "addr": 3, "bcc": 3, "bodi": [3, 8], "address": 3, "hello": 3, "20world": 3, "messagewith": 3, "20i": 3, "20the": 3, "20messag": 3, "20bodi": 3, "carbon": 3, "blind": 3, "adress": 3, "element": [3, 8, 9, 10, 13], "comma": 3, "rfc": 3, "3986": 3, "addr1": 3, "addr2": 3, "6068": 3, "email": 3, "prefix": [3, 13], "devic": [3, 8], "dialer": 3, "invok": [3, 12], "999": 3, "123": 3, "456": 3, "7890": 3, "telephon": 3, "sould": 3, "countri": 3, "space": [3, 10, 13], "hyphen": 3, "sm": [3, 10], "fax": 3, "deprec": [3, 15], "favor": 3, "3966": 3, "call": [3, 6, 11, 12], "nation": 3, "convent": 3, "googl": [3, 15], "libphonenumb": 3, "github": [3, 7, 9, 13, 14, 17], "port": [3, 15], "geograph": 3, "altitud": 3, "latitud": 3, "longitud": 3, "cr": 3, "num": 3, "wg": 3, "84": 3, "decim": 3, "degre": 3, "option": [3, 11, 13, 14, 15, 16, 17], "meter": 3, "uncertainti": 3, "z": 3, "zoom": 3, "level": [3, 13, 15, 17], "local": 3, "search": 3, "47": 3, "620521": 3, "122": [3, 13], "349293": 3, "988056": 3, "86": 3, "925278": 3, "8848": 3, "373333": 3, "142": 3, "591667": 3, "10920": 3, "37": 3, "786971": 3, "399677": 3, "moon": 3, "2011": 3, "35": 3, "5870": 3, "uniform": 3, "mode": [3, 15, 17], "secret": [3, 16], "issuer": [3, 16], "param": 3, "path": [3, 4, 9, 12, 13, 16], "elemet": 3, "mandatori": 3, "strongi": 3, "totp": [3, 16], "hotp": 3, "counter": 3, "account": 3, "kei": [3, 11, 12], "associ": 3, "name": [3, 8, 12], "colon": 3, "cryptograph": 3, "random": 3, "base32": 3, "3548": 3, "pad": 3, "base64": [3, 5, 6, 7, 9, 13, 16], "hexadecim": [3, 11], "algorithm": 3, "hash": [3, 14], "sha1": 3, "sha256": 3, "sha512": 3, "otp": 3, "initi": [3, 5, 8, 11], "period": 3, "valid": [3, 11, 14], "jbswy3dpehpk3pxp": 3, "42": 3, "3atim": 3, "60": 3, "4226": 3, "hmac": 3, "One": 3, "password": 3, "6238": 3, "wi": 3, "fi": 3, "syntax": [3, 11, 14], "look": [3, 11, 16], "wifi": 3, "ssid": 3, "p": 3, "hidden": 3, "wep": 3, "wpa": 3, "wpa2": 3, "eap": 3, "nopass": 3, "omit": 3, "ignor": [3, 5, 6, 7, 11, 13], "true": [3, 4, 5, 6, 7, 8, 9, 11, 12, 13], "enclos": 3, "doubl": [3, 15], "quot": 3, "ascii": 3, "hex": 3, "abcd1234": 3, "escap": [3, 10], "backslash": 3, "wpa3": 3, "note": [3, 13, 14, 17], "anonym": 3, "ttl": 3, "pwd": 3, "ph2": 3, "phase": 3, "mschapv2": 3, "utf": [3, 8, 12, 13], "present": [3, 12], "sae": 3, "der": 3, "asn": 3, "subjectpublickeyinfo": 3, "compress": [3, 13], "pk": 3, "transit": 3, "disabl": 3, "mynetworkwihoutpassword": 3, "myhiddenwpanetwork": 3, "password123": 3, "myhiddenwpa2network": 3, "commonli": 3, "exchang": 3, "too": 3, "complex": 3, "fulli": [3, 8], "instead": [3, 9, 11, 13, 16], "bare": 3, "begin": 3, "fn": [3, 11], "gender": 3, "home": 3, "adr": 3, "line1": 3, "line2": 3, "street": 3, "citi": 3, "zip": [3, 14], "tz": 3, "photo": 3, "jpeg": [3, 6, 7], "categori": 3, "6350": 3, "ontologi": 3, "peopl": 3, "organ": 3, "w3c": 3, "vobject": 3, "via": [3, 5, 7, 8, 9, 11, 14, 15, 17], "formerli": 3, "object": [3, 10, 12], "prodid": 3, "spati": 3, "laracon": 3, "wr": 3, "calnam": 3, "vevent": 3, "uid": 3, "5ef5c3f64cb2c": 3, "dtstamp": 3, "tzid": 3, "utc": 3, "20200626t094630": 3, "feed": 3, "dtstart": 3, "20190306t150000z": 3, "dtend": 3, "20190306t160000z": 3, "20190419t135034z": 3, "5545": 3, "internet": 3, "schedul": 3, "core": [3, 15], "class": [4, 5, 6, 7, 8, 9, 10, 11, 13, 16, 17], "encapsul": [4, 15], "postscript": [4, 15], "ep": [4, 11, 13, 15], "qroption": [4, 5, 6, 7, 8, 9, 10, 11, 13, 16, 17], "outputtyp": [4, 5, 6, 7, 8, 9, 10, 12, 17], "qroutputinterfac": [4, 5, 6, 7, 8, 9, 10, 12, 13, 17], "scale": [4, 5, 6, 7, 8, 9, 10, 17], "drawlightmodul": [4, 5, 6, 7, 8, 9, 10, 17], "fals": [4, 5, 6, 7, 8, 9, 10, 11, 13, 16], "255": [4, 5, 6, 10, 11, 13], "bgcolor": [4, 5, 6, 7, 8, 9, 10, 17], "222": [4, 5], "modulevalu": [4, 5, 6, 7, 8, 10, 11, 17], "qrmatrix": [4, 5, 6, 7, 8, 9, 10, 11, 13, 17], "m_finder_dark": [4, 5, 6, 7, 8, 9, 10, 11], "63": [4, 5, 6], "m_finder_dot": [4, 5, 6, 7, 8, 9, 10, 11], "finder": [4, 5, 6, 7, 8, 17], "dot": [4, 5, 6, 7, 8], "m_finder": [4, 5, 6, 7, 8, 10, 11], "233": [4, 6], "m_alignment_dark": [4, 5, 6, 7, 8, 9, 10, 11], "m_align": [4, 5, 6, 7, 8, 10, 11], "m_data_dark": [4, 5, 6, 11], "m_data": [4, 5, 6, 11], "render": [4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17], "save": [4, 17], "file": [4, 13, 14, 16, 17], "data": [4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17], "http": [4, 5, 6, 7, 8, 9, 10, 17], "__dir__": [4, 16], "push": 4, "download": [4, 7, 14], "browser": [4, 8], "header": [4, 5, 6, 7, 8, 9, 10, 13, 16], "disposit": 4, "filenam": 4, "echo": [4, 5, 7, 8, 10, 16], "exit": 4, "return": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "formatcolor": 4, "int": [4, 5, 6, 7, 8, 9, 10, 11], "m_type": [4, 5, 6, 8, 9, 10, 11, 13], "segment": [4, 9, 12, 17], "properti": [4, 5, 6, 7, 8, 9, 10, 12], "connectpath": [4, 5, 6, 7, 8, 9, 10, 17], "bool": [4, 5, 6, 7, 8, 9, 10, 11], "excludefromconnect": [4, 5, 6, 7, 8, 9, 10, 17], "circleradiu": [4, 5, 6, 7, 8, 9, 10, 17], "implement": [4, 10, 11, 13, 14, 15], "drawcircularmodul": [4, 5, 6, 7, 8, 9, 10, 17], "outputbase64": [4, 5, 6, 7, 8, 9, 10, 16, 17], "imagetranspar": [4, 5, 6, 7, 8, 9, 10, 17], "keepassquar": [4, 5, 6, 7, 8, 9, 10, 17], "returnresourc": [4, 5, 6, 7, 8, 9, 10, 17], "portabl": 5, "document": [5, 8, 17], "pdf": [5, 15], "fpdf": [5, 11, 13, 15], "fpdfmeasureunit": [5, 17], "mm": [5, 13], "pt": [5, 13], "cm": [5, 13, 15], "var": [5, 6, 7], "stuff": [5, 6, 7, 15], "dump": [5, 6, 7, 13], "initfpdf": 5, "void": [5, 6, 7, 11, 12], "\u00ecnt": 5, "gdimag": [6, 11, 13, 14, 15], "graphic": [6, 9], "gif": 6, "jpg": 6, "png": [6, 7, 12, 16], "gdimage_bmp": [6, 13], "gdimage_gif": [6, 13], "gdimage_jpg": [6, 13], "gdimage_png": [6, 12, 13], "gdimage_webp": [6, 13], "qualiti": [6, 7, 17], "90": [6, 7], "size": [6, 9, 13, 16], "200": 6, "150": [6, 7], "transpar": [6, 7, 9, 13], "net": [6, 13, 16], "function": [6, 10, 11, 12, 17], "imagecolortranspar": [6, 13], "transparencycolor": [6, 7, 17], "webp": [6, 7], "printf": [6, 7, 9, 12, 16], "img": [6, 7, 9, 12, 16], "alt": [6, 7, 9, 12, 16], "src": [6, 7, 9, 12, 16], "imagesx": 6, "imagejpeg": [6, 13], "imagedestroi": 6, "drawimag": [6, 7], "draw": [6, 7, 9, 11, 13], "dumpimag": 6, "desir": [6, 14], "gd": [6, 11, 13, 14, 15], "setbgcolor": [6, 7], "settransparencycolor": [6, 7], "mix": [6, 7, 15, 17], "float": [6, 7, 9, 15], "imagemagick": [7, 9, 11, 13, 15, 17], "instal": [7, 15, 17], "guid": [7, 14, 16], "oper": [7, 14], "script": [7, 13, 14], "ext": [7, 14, 15], "imagick": [7, 13, 14, 15], "window": [7, 14], "imagickdemo": 7, "imagickformat": [7, 17], "png32": 7, "ccccaa": 7, "a71111": [7, 8], "ffbfbf": [7, 8], "a70364": [7, 8], "ffc9c9": [7, 8], "m_version_dark": [7, 10, 11], "650098": 7, "m_version": [7, 10, 11], "e0b8ff": 7, "scaleimag": 7, "setimageformat": [7, 13], "getimageblob": 7, "imagickdraw": 7, "markupdark": [7, 8, 9, 17], "markuplight": [7, 8, 9, 17], "html": [8, 9, 11, 13, 15], "cheap": 8, "markup": [8, 11, 13, 15], "substitut": [8, 11, 13], "svg": [8, 9, 11, 12, 13, 15, 16], "ca": 8, "2012": 8, "As": 8, "plan": 8, "web": [8, 9, 13], "markup_html": [8, 13], "cssclass": [8, 9, 17], "unassign": [8, 10], "555": 8, "ccc": 8, "align": [8, 13, 17], "doctyp": 8, "lang": 8, "none": 8, "meta": 8, "charset": 8, "viewport": 8, "style": [8, 9], "div": 8, "margin": [8, 13], "1em": 8, "10px": 8, "span": 8, "inlin": 8, "poutput": 8, "createmarkup": 8, "savetofil": 8, "pars": [8, 9], "input": [8, 11, 12, 16], "getcssclass": [8, 9], "css": [8, 9, 13], "eol": [8, 9, 10, 14, 17], "scalabl": 9, "vector": 9, "markup_svg": [9, 13], "won": [9, 11], "empti": [9, 13], "opac": [9, 13], "circl": [9, 13], "isntead": 9, "glitch": [9, 13], "chillerlan": [9, 12, 13, 14, 16, 17], "57": [9, 13], "gradient": [9, 13], "def": [9, 13], "develop": [9, 13], "lineargradi": 9, "svgdef": [9, 17], "rainbow": 9, "x1": 9, "y2": 9, "e2453c": 9, "offset": 9, "e07e39": 9, "e5d667": 9, "51b95b": 9, "1e72b7": 9, "6f5ba7": 9, "cdata": 9, "url": [9, 17], "eee": 9, "xml": [9, 13, 16], "pd94bwwgdmvyc2": 9, "svgaddxmlhead": [9, 17], "svgopac": [9, 17], "svgpreserveaspectratio": [9, 17], "svgviewboxs": 9, "null": [9, 10, 11, 12, 13], "achiev": 9, "199": 9, "comment": 9, "cli": 10, "consol": [10, 13], "ansi": 10, "littl": 10, "helper": 10, "ansi8": 10, "str": 10, "min": [10, 11], "48": 10, "38": 10, "sprintf": 10, "x1b": 10, "0m": 10, "string_text": [10, 13], "line": [10, 13], "textlinestart": [10, 17], "str_repeat": 10, "textdark": [10, 17], "253": 10, "textlight": [10, 17], "124": 10, "string_json": [10, 13], "integ": [10, 11, 13], "matrix": [10, 11, 12, 13, 16, 17], "jsonasboolean": [10, 17], "hold": 11, "mask": [11, 13, 16, 17], "m_": 11, "constant": 11, "pattern": [11, 13, 16, 17], "art": 11, "overwrit": 11, "user": [11, 16, 17], "m_null": 11, "m_darkmodule_light": 11, "m_separ": 11, "m_time": 11, "m_format": 11, "m_quietzon": 11, "m_logo": 11, "m_finder_dot_light": 11, "m_test": 11, "m_darkmodul": 11, "m_separator_dark": 11, "m_timing_dark": 11, "m_format_dark": 11, "m_quietzone_dark": 11, "m_logo_dark": 11, "m_test_dark": 11, "Not": 11, "miss": 11, "inheritor": 11, "modulevalueisvalid": 11, "check": [11, 12, 15], "act": 11, "rgba": [11, 13], "qrmarkupsvg": [11, 13, 17], "_get": 11, "qr_dark": 11, "treatment": 11, "sanitize_user_input": 11, "test": [11, 13, 14, 16], "modulevalueprovid": 11, "ffffff": 11, "000000": 11, "qroutputabstract": [11, 13], "setmodulevalu": [11, 13], "abstract": 11, "getmodulevalu": 11, "getdefaultmodulevalu": 11, "foreach": 11, "default_module_valu": 11, "defaultvalu": [11, 12], "we": [11, 14, 16], "ll": [11, 14], "sinc": [11, 14], "imagecoloralloc": 11, "rgb": [11, 13], "rrr": 11, "ggg": 11, "bbb": 11, "aaa": 11, "nowher": 11, "is_arrai": 11, "iter": [11, 17], "is_int": 11, "strict": 11, "outlier": 11, "clamp": [11, 13], "yai": 11, "prepar": 11, "array_valu": 11, "array_map": 11, "val": 11, "And": 11, "isdark": 11, "everyth": 11, "readi": 11, "is_dark": 11, "bitwis": 11, "toggl": [11, 13], "opposit": 11, "xor": 11, "much": 11, "conveni": 11, "modulecount": [11, 13], "shortcut": 11, "checktyp": 11, "checktypein": 11, "behav": 12, "stdclass": 12, "exist": 12, "foo": 12, "bar": 12, "retriev": 12, "var_dump": 12, "thrown": 12, "constructor": 12, "take": [12, 13], "pair": 12, "setter": 12, "myoption": 12, "ecclevel": [12, 17], "fromiter": 12, "tojson": 12, "json_throw_on_error": 12, "jsonserializ": 12, "interfac": 12, "json_encod": 12, "__tostr": 12, "fromjson": 12, "overwriten": 12, "modul": [12, 13, 15, 16], "mycustomopt": 12, "myparam": 12, "settingscontainerinterfac": 12, "flexibl": [12, 15], "approach": 12, "trait": 12, "mycustomoptionstrait": 12, "magic": 12, "set_": 12, "set_myparam": 12, "trim": 12, "getter": 12, "get_": 12, "get_myparam": 12, "strtoupper": 12, "settingscontainerabstract": 12, "qroptionstrait": 12, "whatev": [12, 14], "fly": 12, "asid": 12, "after": [12, 14], "invoc": 12, "setopt": 12, "again": 12, "backreferenc": 12, "overrid": [12, 13], "cachefil": [12, 17], "getqrmatrix": 12, "readerresult": 12, "initfunctionalpattern": 12, "rendermatrix": [12, 13], "ini": 12, "internal_encod": 12, "default_charset": 12, "mbstring": [12, 14, 15], "mb_internal_encod": 12, "clearseg": 12, "addnumericseg": 12, "numericdata": 12, "addalphanumseg": 12, "alphanumdata": 12, "addkanjiseg": 12, "kanjidata": 12, "addhanziseg": 12, "hanzidata": 12, "addbyteseg": 12, "binarydata": 12, "addeciseg": 12, "ecicharset": 12, "encodedecidata": 12, "qrdatamodeinterfac": 12, "validatestr": 12, "implemend": 12, "alphanum": 12, "come": 12, "handi": 12, "beforehand": 12, "throw": [12, 16], "invalid": 12, "might": 12, "contrast": [12, 13], "readeruseimagickifavail": [12, 17], "readerincreasecontrast": [12, 17], "readergrayscal": [12, 17], "readfromfil": [12, 16], "decoderresult": [12, 16], "maximum": [13, 17], "correct": [13, 17], "160": 13, "mostli": 13, "unit": 13, "pattern_auto": 13, "quiet": [13, 17], "zone": [13, 17], "spec": 13, "howto": 13, "built": [13, 14, 15, 16], "custom": 13, "qrep": [13, 17], "qrfpdf": [13, 17], "qrgdimag": [13, 17], "qrimagick": [13, 14, 15, 17], "qrmarkuphtml": [13, 17], "qrstring": [13, 17], "fqcn": 13, "cach": 13, "raw": [13, 16], "tobase64datauri": 13, "newlin": 13, "php_eol": 13, "blank": 13, "page": 13, "invert": 13, "reflect": [13, 17], "upscal": 13, "drawn": 13, "imagefilledellips": 13, "back": 13, "23": 13, "radiu": 13, "45": 13, "exclud": 13, "weird": 13, "etc": [13, 15], "abcdef": 13, "cssname": 13, "creation": [13, 15], "addmatrixmodif": 13, "setlogospac": 13, "assum": 13, "121": 13, "color_str": 13, "transparentpaintimag": 13, "imagebmp": 13, "imagepng": 13, "imagewebp": 13, "setimagecompressionqu": 13, "emb": 13, "sophist": 13, "tag": [13, 14], "preserveaspectratio": 13, "block_el": 13, "ansi_escape_cod": 13, "json": [13, 15, 17], "boolean": 13, "__construct": 13, "grayscal": 13, "mileag": 13, "packag": [14, 15], "complain": 14, "monopol": 14, "ve": 14, "dev": 14, "main": [14, 16, 17], "constraint": 14, "releas": 14, "commit": 14, "unforseen": 14, "cb69751c3bc090a7fdd2f2601bbe10f28d225f10": 14, "older": 14, "suit": [14, 15], "platform": 14, "v2": 14, "unchang": 14, "throughout": 14, "v5": 14, "verifi": 14, "deploi": 14, "f15b0afe9d4128bf734c3bf1bcffae72bf7b3e53": 14, "project": [14, 15], "folder": [14, 16], "root": 14, "autoload": [14, 16], "profit": 14, "recommend": 14, "With": 14, "said": 14, "leav": 14, "info": 14, "choic": 14, "repo": 14, "packagist": 14, "good": [14, 16], "luck": 14, "v3": 14, "ye": 14, "fileinfo": [14, 15], "v4": [14, 15], "php8": 14, "v1": 14, "let": 14, "die": 14, "psa": 14, "longer": 14, "kazuhiko": 15, "aras": 15, "namespac": 15, "clean": 15, "improv": 15, "ecc": [15, 17], "combin": 15, "gbt18284": 15, "2000": 15, "easili": 15, "extens": [15, 17], "plain": [15, 17], "setasign": 15, "drupal": 15, "factor": 15, "authent": [15, 16, 17], "tfa": 15, "login": 15, "ga_login": 15, "symfoni": 15, "phpqrcode": 15, "bundl": 15, "wordpress": 15, "wp": 15, "auth": 15, "simpl": 15, "2fa": 15, "button": 15, "woltlab": 15, "verif": 15, "appwrit": 15, "cachet": 15, "g\u00e9ant": 15, "cat": 15, "openitcockpit": 15, "twill": 15, "elef": 15, "twilio": 15, "hi": 15, "my": 15, "cooler": 15, "javascript": 15, "httpinterfac": 15, "psr": 15, "implemet": 15, "oauth": 15, "along": 15, "bunch": 15, "querybuild": 15, "mysql": 15, "postgr": 15, "sqlite": 15, "mssql": 15, "firebird": 15, "tootbot": 15, "mastodon": 15, "bot": 15, "require_onc": 16, "mobil": [16, 17], "otpauth": [16, 17], "b3jx4vcvjdvnxnz5": 16, "advanc": [16, 17], "depth": 16, "pretti": 16, "straight": 16, "forward": 16, "catch": 16, "throwabl": 16, "handl": [16, 17], "cast": 16, "idea": 16, "wrap": 16, "occur": 16, "especi": 16, "subroutin": 16, "caus": 16, "cpu": 16, "load": [16, 17], "oh": 16, "forget": 16, "sanit": 16, "updat": 17, "oct": 17, "io": 17, "licens": 17, "overview": 17, "framework": 17, "shameless": 17, "advertis": 17, "compos": 17, "quickstart": 17, "configur": 17, "extend": 17, "versionmin": 17, "versionmax": 17, "maskpattern": 17, "addquietzon": 17, "quietzones": 17, "outputinterfac": 17, "invertmatrix": 17, "addlogospac": 17, "logospacewidth": 17, "logospaceheight": 17, "logospacestartx": 17, "logospacestarti": 17, "own": 17, "question": 17, "bug": 17, "report": 17, "pull": 17, "terminologi": 17, "region": 17, "darkmodul": 17, "channel": 17, "eci": 17, "capac": 17, "evalu": 17, "mail": 17, "mailto": 17, "phone": 17, "tel": 17, "geo": 17, "wireless": 17, "network": 17, "vcard": 17, "calendar": 17, "vcalendar": 17, "icalendar": 17}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"how": 0, "contribut": 0, "question": 0, "issu": 0, "bug": 0, "report": 0, "pull": 0, "request": 0, "fix": 0, "document": 0, "licens": 1, "terminologi": 2, "qr": [2, 12, 16], "code": [2, 12, 16], "matrix": 2, "modul": [2, 4, 5, 6, 7, 8, 9, 10, 11, 17], "version": [2, 13, 14], "function": 2, "pattern": 2, "finder": 2, "align": 2, "time": 2, "separ": 2, "quiet": 2, "zone": 2, "encod": 2, "region": 2, "data": 2, "inform": [2, 3], "format": 2, "darkmodul": 2, "mode": [2, 12], "segment": 2, "extend": [2, 12], "channel": 2, "interpret": 2, "eci": 2, "mix": [2, 12], "ecc": 2, "error": 2, "correct": 2, "level": 2, "maximum": 2, "capac": 2, "mask": 2, "evalu": 2, "reflect": 2, "popular": 3, "content": 3, "uri": 3, "scheme": 3, "url": 3, "http": 3, "e": 3, "mail": 3, "mailto": 3, "phone": 3, "number": 3, "tel": 3, "geo": 3, "coordin": 3, "mobil": 3, "authent": 3, "otpauth": 3, "wireless": 3, "network": 3, "configur": [3, 12, 13, 16], "contact": 3, "vcard": 3, "calendar": 3, "event": 3, "vcalendar": 3, "icalendar": 3, "see": 3, "also": 3, "qrep": 4, "exampl": [4, 5, 6, 7, 8, 9], "addit": [4, 5, 6, 7, 8, 9, 10], "method": [4, 5, 6, 7, 8, 9, 10, 12], "option": [4, 5, 6, 7, 8, 9, 10, 12], "affect": [4, 5, 6, 7, 8, 9, 10], "thi": [4, 5, 6, 7, 8, 9, 10, 14], "have": [4, 5, 6, 7, 8, 9, 10], "effect": [4, 5, 6, 7, 8, 9, 10], "qrfpdf": 5, "qrgdimag": 6, "qrimagick": 7, "qrmarkuphtml": 8, "qrmarkupsvg": 9, "qrstring": 10, "plain": 10, "text": 10, "json": [10, 12, 14], "valu": 11, "basic": 11, "assign": 11, "handl": 11, "your": [11, 16], "own": 11, "qroutputinterfac": 11, "set": [11, 13], "us": [11, 14], "advanc": 12, "usag": [12, 17], "via": 12, "qroption": 12, "suppli": 12, "an": 12, "iter": 12, "load": 12, "save": 12, "class": 12, "qrcode": [12, 17], "file": 12, "render": 12, "qrmatrix": 12, "instanc": 12, "reader": 12, "versionmin": 13, "versionmax": 13, "ecclevel": 13, "maskpattern": 13, "addquietzon": 13, "quietzones": 13, "outputtyp": 13, "outputinterfac": 13, "returnresourc": 13, "cachefil": 13, "outputbase64": 13, "eol": 13, "bgcolor": 13, "invertmatrix": 13, "drawlightmodul": 13, "drawcircularmodul": 13, "circleradiu": 13, "keepassquar": 13, "connectpath": 13, "excludefromconnect": 13, "modulevalu": 13, "addlogospac": 13, "logospacewidth": 13, "logospaceheight": 13, "logospacestartx": 13, "logospacestarti": 13, "scale": 13, "imagetranspar": 13, "transparencycolor": 13, "qualiti": 13, "imagickformat": 13, "cssclass": 13, "markupdark": 13, "markuplight": 13, "svgaddxmlhead": 13, "svgopac": 13, "svgdef": 13, "svgpreserveaspectratio": 13, "textdark": 13, "textlight": 13, "textlinestart": 13, "jsonasboolean": 13, "fpdfmeasureunit": 13, "readeruseimagickifavail": 13, "readergrayscal": 13, "readerincreasecontrast": 13, "instal": 14, "compos": 14, "switch": 14, "termin": 14, "manual": [14, 17], "can": 14, "i": 14, "librari": [14, 16], "without": 14, "support": 14, "php": [14, 17], "extens": 14, "requir": [14, 15], "imagemagick": 14, "overview": 15, "featur": 15, "framework": 15, "integr": 15, "shameless": 15, "advertis": 15, "quickstart": 16, "import": 16, "creat": 16, "first": 16, "read": 16, "note": 16, "custom": 17, "output": 17, "built": 17, "In": 17, "appendix": 17}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"How to contribute": [[0, "how-to-contribute"]], "Questions and issues": [[0, "questions-and-issues"]], "Bug reports": [[0, "bug-reports"]], "Pull requests and bug fixes": [[0, "pull-requests-and-bug-fixes"]], "Documentation": [[0, "documentation"]], "License": [[1, "license"]], "Terminology": [[2, "terminology"]], "QR Code": [[2, "qr-code"]], "Matrix": [[2, "matrix"]], "Module": [[2, "module"]], "Version": [[2, "version"]], "Function Patterns": [[2, "function-patterns"]], "Finder Pattern": [[2, "finder-pattern"]], "Alignment Pattern": [[2, "alignment-pattern"]], "Timing Pattern": [[2, "timing-pattern"]], "Separators": [[2, "separators"]], "Quiet Zone": [[2, "quiet-zone"]], "Encoding Region": [[2, "encoding-region"]], "Data": [[2, "data"]], "Version Information": [[2, "version-information"]], "Format Information": [[2, "format-information"]], "Darkmodule": [[2, "darkmodule"]], "Mode": [[2, "mode"]], "Segment": [[2, "segment"]], "Extended Channel Interpretation (ECI)": [[2, "extended-channel-interpretation-eci"]], "Mixed Mode": [[2, "mixed-mode"]], "ECC (Error Correction Coding)": [[2, "ecc-error-correction-coding"]], "ECC Level": [[2, "ecc-level"]], "Maximum data capacity": [[2, "maximum-data-capacity"]], "Data masking": [[2, "data-masking"]], "Evaluation": [[2, "evaluation"]], "Mask pattern": [[2, "mask-pattern"]], "Reflectance": [[2, "reflectance"]], "Popular content and URI schemes": [[3, "popular-content-and-uri-schemes"]], "URL https": [[3, "url-https"]], "E-Mail mailto": [[3, "e-mail-mailto"]], "Phone numbers tel": [[3, "phone-numbers-tel"]], "Geo Coordinates geo": [[3, "geo-coordinates-geo"]], "Mobile Authenticators otpauth": [[3, "mobile-authenticators-otpauth"]], "Wireless Network configuration": [[3, "wireless-network-configuration"]], "Contact information: vCard": [[3, "contact-information-vcard"]], "Calendar Events: vCalendar and iCalendar": [[3, "calendar-events-vcalendar-and-icalendar"]], "See also": [[3, "see-also"]], "QREps": [[4, "qreps"]], "Example": [[4, "example"], [5, "example"], [6, "example"], [7, "example"], [8, "example"], [9, "example"]], "Additional methods": [[4, "additional-methods"], [5, "additional-methods"], [6, "additional-methods"], [7, "additional-methods"], [8, "additional-methods"], [9, "additional-methods"], [10, "additional-methods"]], "Options that affect this module": [[4, "options-that-affect-this-module"], [5, "options-that-affect-this-module"], [6, "options-that-affect-this-module"], [7, "options-that-affect-this-module"], [8, "options-that-affect-this-module"], [9, "options-that-affect-this-module"], [10, "options-that-affect-this-module"]], "Options that have no effect": [[4, "options-that-have-no-effect"], [5, "options-that-have-no-effect"], [6, "options-that-have-no-effect"], [7, "options-that-have-no-effect"], [8, "options-that-have-no-effect"], [9, "options-that-have-no-effect"], [10, "options-that-have-no-effect"]], "QRFpdf": [[5, "qrfpdf"]], "QRGdImage": [[6, "qrgdimage"]], "QRImagick": [[7, "qrimagick"]], "QRMarkupHTML": [[8, "qrmarkuphtml"]], "QRMarkupSVG": [[9, "qrmarkupsvg"]], "QRString": [[10, "qrstring"]], "Plain text": [[10, "plain-text"]], "JSON": [[10, "json"]], "Module values": [[11, "module-values"]], "Basics": [[11, "basics"]], "Assigning values": [[11, "assigning-values"]], "Handling in your own QROutputInterface": [[11, "handling-in-your-own-qroutputinterface"]], "Setting module values": [[11, "setting-module-values"]], "Using the module values": [[11, "using-the-module-values"]], "Advanced usage": [[12, "advanced-usage"]], "Configuration via QROptions": [[12, "configuration-via-qroptions"]], "Supply an iterable of options": [[12, "supply-an-iterable-of-options"]], "Load and save JSON": [[12, "load-and-save-json"]], "Extending the QROptions class": [[12, "extending-the-qroptions-class"]], "QRCode methods": [[12, "qrcode-methods"]], "Save to file": [[12, "save-to-file"]], "Render a QRMatrix instance": [[12, "render-a-qrmatrix-instance"]], "Mixed mode": [[12, "mixed-mode"]], "QR Code reader": [[12, "qr-code-reader"]], "Configuration settings": [[13, "configuration-settings"]], "version": [[13, "version"]], "versionMin": [[13, "versionmin"]], "versionMax": [[13, "versionmax"]], "eccLevel": [[13, "ecclevel"]], "maskPattern": [[13, "maskpattern"]], "addQuietzone": [[13, "addquietzone"]], "quietzoneSize": [[13, "quietzonesize"]], "outputType": [[13, "outputtype"]], "outputInterface": [[13, "outputinterface"]], "returnResource": [[13, "returnresource"]], "cachefile": [[13, "cachefile"]], "outputBase64": [[13, "outputbase64"]], "eol": [[13, "eol"]], "bgColor": [[13, "bgcolor"]], "invertMatrix": [[13, "invertmatrix"]], "drawLightModules": [[13, "drawlightmodules"]], "drawCircularModules": [[13, "drawcircularmodules"]], "circleRadius": [[13, "circleradius"]], "keepAsSquare": [[13, "keepassquare"]], "connectPaths": [[13, "connectpaths"]], "excludeFromConnect": [[13, "excludefromconnect"]], "moduleValues": [[13, "modulevalues"]], "addLogoSpace": [[13, "addlogospace"]], "logoSpaceWidth": [[13, "logospacewidth"]], "logoSpaceHeight": [[13, "logospaceheight"]], "logoSpaceStartX": [[13, "logospacestartx"]], "logoSpaceStartY": [[13, "logospacestarty"]], "scale": [[13, "scale"]], "imageTransparent": [[13, "imagetransparent"]], "transparencyColor": [[13, "transparencycolor"]], "quality": [[13, "quality"]], "imagickFormat": [[13, "imagickformat"]], "cssClass": [[13, "cssclass"]], "markupDark": [[13, "markupdark"]], "markupLight": [[13, "markuplight"]], "svgAddXmlHeader": [[13, "svgaddxmlheader"]], "svgOpacity": [[13, "svgopacity"]], "svgDefs": [[13, "svgdefs"]], "svgPreserveAspectRatio": [[13, "svgpreserveaspectratio"]], "textDark": [[13, "textdark"]], "textLight": [[13, "textlight"]], "textLineStart": [[13, "textlinestart"]], "jsonAsBooleans": [[13, "jsonasbooleans"]], "fpdfMeasureUnit": [[13, "fpdfmeasureunit"]], "readerUseImagickIfAvailable": [[13, "readeruseimagickifavailable"]], "readerGrayscale": [[13, "readergrayscale"]], "readerIncreaseContrast": [[13, "readerincreasecontrast"]], "Installation": [[14, "installation"]], "Installation with Composer": [[14, "installation-with-composer"]], "composer.json": [[14, "composer-json"]], "Version switch": [[14, "version-switch"]], "Terminal": [[14, "terminal"]], "Manual installation": [[14, "manual-installation"]], "Can i use this library without using composer?": [[14, "can-i-use-this-library-without-using-composer"]], "Supported PHP versions & extension requirements": [[14, "supported-php-versions-extension-requirements"]], "ImageMagick": [[14, "imagemagick"]], "Overview": [[15, "overview"]], "Features": [[15, "features"]], "Requirements": [[15, "requirements"]], "Framework Integration": [[15, "framework-integration"]], "Shameless advertising": [[15, "shameless-advertising"]], "Quickstart": [[16, "quickstart"]], "Import the library": [[16, "import-the-library"]], "Create your first QR Code": [[16, "create-your-first-qr-code"]], "Configuration": [[16, "configuration"]], "Reading QR Codes": [[16, "reading-qr-codes"]], "Notes": [[16, "notes"]], "PHP-QRCode Manual": [[17, "php-qrcode-manual"]], "Usage": [[17, null]], "Customizing output": [[17, null]], "Built-In Output Modules": [[17, null]], "Appendix": [[17, null]]}, "indexentries": {}})
\ No newline at end of file