Просмотр исходного кода

Deploying to readthedocs from @ chillerlan/php-qrcode@ddd9ef0857b5e22d5cad4f1b9227b95c2cfbc878 🚀

codemasher 2 лет назад
Родитель
Сommit
e77c22b437

+ 309 - 0
API-DecoderResult.html

@@ -0,0 +1,309 @@
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" >
+<head>
+  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
+
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>DecoderResult &mdash; PHP-QRCode main
+ Manual</title>
+      <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="_static/js/html5shiv.min.js"></script>
+  <![endif]-->
+  
+        <script src="_static/jquery.js"></script>
+        <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
+        <script src="_static/doctools.js"></script>
+        <script src="_static/sphinx_highlight.js"></script>
+    <script src="_static/js/theme.js"></script>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="Terminology" href="Appendix-Glossary.html" />
+    <link rel="prev" title="QRMatrix" href="API-QRMatrix.html" /> 
+</head>
+
+<body class="wy-body-for-nav"> 
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+
+          
+          
+          <a href="index.html" class="icon icon-home">
+            PHP-QRCode
+          </a>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Usage</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Overview.html">Overview</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#features">Features</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#requirements">Requirements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#shameless-advertising">Shameless advertising</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Installation.html">Installation</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#installation-with-composer">Installation with Composer</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#composer-json">composer.json</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="Usage-Installation.html#version-switch">Version switch</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#terminal">Terminal</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#manual-installation">Manual installation</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#can-i-use-this-library-without-using-composer">Can i use this library without using composer?</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#supported-php-versions-extension-requirements">Supported PHP versions &amp; extension requirements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#imagemagick">ImageMagick</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Quickstart.html">Quickstart</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#import-the-library">Import the library</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#create-your-first-qr-code">Create your first QR Code</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Quickstart.html#configuration">Configuration</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#reading-qr-codes">Reading QR Codes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#notes">Notes</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Advanced-usage.html">Advanced usage</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Advanced-usage.html#configuration-via-qroptions">Configuration via <code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#supply-an-iterable-of-options">Supply an <code class="docutils literal notranslate"><span class="pre">iterable</span></code> of options</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#load-and-save-json">Load and save JSON</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#extending-the-qroptions-class">Extending the <code class="docutils literal notranslate"><span class="pre">QROptions</span></code> class</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Advanced-usage.html#qrcode-methods"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code> methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#save-to-file">Save to file</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#render-a-qrmatrix-instance">Render a <code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code> instance</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#mixed-mode">Mixed mode</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#qr-code-reader">QR Code reader</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="API-QRCode.html"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROptions.html"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROutputInterface.html"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QRMatrix.html"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRMatrix.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-License.html">License</a></li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="index.html">PHP-QRCode</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
+      <li class="breadcrumb-item active"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></li>
+      <li class="wy-breadcrumbs-aside">
+              <a href="https://github.com/chillerlan/php-qrcode/blob/main/docs/API-DecoderResult.md" class="fa fa-github"> Edit on GitHub</a>
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+             
+  <section id="decoderresult">
+<h1><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code><a class="headerlink" href="#decoderresult" title="Permalink to this heading"></a></h1>
+<p>The full phpDocumentor API documentation can be found at <a class="reference external" href="https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-Decoder-DecoderResult.html">chillerlan.github.io/php-qrcode</a>.</p>
+<section id="methods">
+<h2>Methods<a class="headerlink" href="#methods" title="Permalink to this heading"></a></h2>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>method</p></th>
+<th class="head"><p>return</p></th>
+<th class="head"><p>description</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">__construct(iterable</span> <span class="pre">$properties</span> <span class="pre">=</span> <span class="pre">null)</span></code></p></td>
+<td><p>-</p></td>
+<td><p>used internally by <a class="reference external" href="https://github.com/chillerlan/php-qrcode/blob/main/src/Decoder/Decoder.php"><code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">__toString()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p>returns the data contained in the QR symbol</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">hasStructuredAppend()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">getQRMatrix()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></p></td>
+<td><p></p></td>
+</tr>
+</tbody>
+</table>
+</section>
+<section id="magic-properties-read-only">
+<h2>Magic Properties (read-only)<a class="headerlink" href="#magic-properties-read-only" title="Permalink to this heading"></a></h2>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>property</p></th>
+<th class="head"><p>type</p></th>
+<th class="head"><p>description</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$rawBytes</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">BitBuffer</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$version</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">Version</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$eccLevel</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">EccLevel</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$maskPattern</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">MaskPattern</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$data</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p>defaults to <code class="docutils literal notranslate"><span class="pre">''</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$structuredAppendParity</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p>defaults to <code class="docutils literal notranslate"><span class="pre">-1</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$structuredAppendSequence</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p>defaults to <code class="docutils literal notranslate"><span class="pre">-1</span></code></p></td>
+</tr>
+</tbody>
+</table>
+</section>
+</section>
+
+
+           </div>
+          </div>
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="API-QRMatrix.html" class="btn btn-neutral float-left" title="QRMatrix" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="Appendix-Glossary.html" class="btn btn-neutral float-right" title="Terminology" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+    </div>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2023, smiley.</p>
+  </div>
+
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>

+ 450 - 0
API-QRCode.html

@@ -0,0 +1,450 @@
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" >
+<head>
+  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
+
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>QRCode &mdash; PHP-QRCode main
+ Manual</title>
+      <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="_static/js/html5shiv.min.js"></script>
+  <![endif]-->
+  
+        <script src="_static/jquery.js"></script>
+        <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
+        <script src="_static/doctools.js"></script>
+        <script src="_static/sphinx_highlight.js"></script>
+    <script src="_static/js/theme.js"></script>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="QROptions" href="API-QROptions.html" />
+    <link rel="prev" title="Advanced usage" href="Usage-Advanced-usage.html" /> 
+</head>
+
+<body class="wy-body-for-nav"> 
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+
+          
+          
+          <a href="index.html" class="icon icon-home">
+            PHP-QRCode
+          </a>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Usage</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Overview.html">Overview</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#features">Features</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#requirements">Requirements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#shameless-advertising">Shameless advertising</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Installation.html">Installation</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#installation-with-composer">Installation with Composer</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#composer-json">composer.json</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="Usage-Installation.html#version-switch">Version switch</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#terminal">Terminal</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#manual-installation">Manual installation</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#can-i-use-this-library-without-using-composer">Can i use this library without using composer?</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#supported-php-versions-extension-requirements">Supported PHP versions &amp; extension requirements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#imagemagick">ImageMagick</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Quickstart.html">Quickstart</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#import-the-library">Import the library</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#create-your-first-qr-code">Create your first QR Code</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Quickstart.html#configuration">Configuration</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#reading-qr-codes">Reading QR Codes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#notes">Notes</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Advanced-usage.html">Advanced usage</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Advanced-usage.html#configuration-via-qroptions">Configuration via <code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#supply-an-iterable-of-options">Supply an <code class="docutils literal notranslate"><span class="pre">iterable</span></code> of options</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#load-and-save-json">Load and save JSON</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#extending-the-qroptions-class">Extending the <code class="docutils literal notranslate"><span class="pre">QROptions</span></code> class</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Advanced-usage.html#qrcode-methods"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code> methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#save-to-file">Save to file</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#render-a-qrmatrix-instance">Render a <code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code> instance</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#mixed-mode">Mixed mode</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#qr-code-reader">QR Code reader</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul class="current">
+<li class="toctree-l1 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROptions.html"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROutputInterface.html"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QRMatrix.html"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRMatrix.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-DecoderResult.html"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-License.html">License</a></li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="index.html">PHP-QRCode</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
+      <li class="breadcrumb-item active"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></li>
+      <li class="wy-breadcrumbs-aside">
+              <a href="https://github.com/chillerlan/php-qrcode/blob/main/docs/API-QRCode.md" class="fa fa-github"> Edit on GitHub</a>
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+             
+  <section id="qrcode">
+<h1><code class="docutils literal notranslate"><span class="pre">QRCode</span></code><a class="headerlink" href="#qrcode" title="Permalink to this heading"></a></h1>
+<p>The full phpDocumentor API documentation can be found at <a class="reference external" href="https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-QRCode.html">chillerlan.github.io/php-qrcode</a>.</p>
+<section id="methods">
+<h2>Methods<a class="headerlink" href="#methods" title="Permalink to this heading"></a></h2>
+<!-- using non-breaking spaces chr(255) in the longest method signature to force the silly table to stretch -->
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>method</p></th>
+<th class="head"><p>return</p></th>
+<th class="head"><p>description</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">__construct(SettingsContainerInterface $options = null)</span></code></p></td>
+<td><p>-</p></td>
+<td><p>see <a class="reference internal" href="API-QROptions.html"><span class="std std-doc"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></span></a> and <a class="reference external" href="https://github.com/chillerlan/php-settings-container/blob/main/src/SettingsContainerInterface.php"><code class="docutils literal notranslate"><span class="pre">SettingsContainerInterface</span></code></a></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">setOptions(SettingsContainerInterface</span> <span class="pre">$options)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Sets an options instance, internally called via the constructor</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">render(string</span> <span class="pre">$data,</span> <span class="pre">string</span> <span class="pre">$file</span> <span class="pre">=</span> <span class="pre">null)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">mixed</span></code></p></td>
+<td><p>renders a QR Code for the given <code class="docutils literal notranslate"><span class="pre">$data</span></code> and <code class="docutils literal notranslate"><span class="pre">QROptions</span></code>, saves <code class="docutils literal notranslate"><span class="pre">$file</span></code> optionally, output depends on the chosen mode, see <code class="docutils literal notranslate"><span class="pre">QROutputInterface::dump()</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">renderMatrix(QRMatrix</span> <span class="pre">$matrix,</span> <span class="pre">string</span> <span class="pre">$file</span> <span class="pre">=</span> <span class="pre">null)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">mixed</span></code></p></td>
+<td><p>renders a QR Code for the given <code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code> and <code class="docutils literal notranslate"><span class="pre">QROptions</span></code>, saves <code class="docutils literal notranslate"><span class="pre">$file</span></code> optionally, output depends on the chosen mode, see <code class="docutils literal notranslate"><span class="pre">QROutputInterface::dump()</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">getQRMatrix()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></p></td>
+<td><p>returns a <code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code> object for the given <code class="docutils literal notranslate"><span class="pre">$data</span></code> and current <code class="docutils literal notranslate"><span class="pre">QROptions</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">addSegment(QRDataModeInterface</span> <span class="pre">$segment)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Adds a <code class="docutils literal notranslate"><span class="pre">QRDataModeInterface</span></code> segment</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">clearSegments()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Clears the data segments array</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">addNumericSegment(string</span> <span class="pre">$data)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Adds a numeric data segment</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">addAlphaNumSegment(string</span> <span class="pre">$data)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Adds an alphanumeric data segment</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">addKanjiSegment(string</span> <span class="pre">$data)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Adds a Kanji data segment (Japanese 13-bit double-byte characters, Shift-JIS)</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">addHanziSegment(string</span> <span class="pre">$data)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Adds a Hanzi data segment (simplified Chinese 13-bit double-byte characters, GB2312/GB18030)</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">addByteSegment(string</span> <span class="pre">$data)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Adds an 8-bit byte data segment</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">addEciDesignator(int</span> <span class="pre">$encoding)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Adds a standalone ECI designator</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">addEciSegment(int</span> <span class="pre">$encoding,</span> <span class="pre">string</span> <span class="pre">$data)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Adds an ECI data segment (including designator)</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">readFromFile(string</span> <span class="pre">$path)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></p></td>
+<td><p>Reads a QR Code from a given file</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">readFromBlob(string</span> <span class="pre">$blob)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></p></td>
+<td><p>Reads a QR Code from the given data blob</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">readFromSource(LuminanceSourceInterface</span> <span class="pre">$source)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></p></td>
+<td><p>Reads a QR Code from the given luminance source</p></td>
+</tr>
+</tbody>
+</table>
+<section id="deprecated-methods">
+<h3>Deprecated methods<a class="headerlink" href="#deprecated-methods" title="Permalink to this heading"></a></h3>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>method</p></th>
+<th class="head"><p>since</p></th>
+<th class="head"><p>replacement</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">getMatrix()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QRCode::getQRMatrix()</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">isNumber(string</span> <span class="pre">$string)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">Number::validateString(string</span> <span class="pre">$string)</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">isAlphaNum(string</span> <span class="pre">$string)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">AlphaNum::validateString(string</span> <span class="pre">$string)</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">isKanji(string</span> <span class="pre">$string)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">Kanji::validateString(string</span> <span class="pre">$string)</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">isByte(string</span> <span class="pre">$string)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">Byte::validateString(string</span> <span class="pre">$string)</span></code></p></td>
+</tr>
+</tbody>
+</table>
+</section>
+</section>
+<section id="constants">
+<h2>Constants<a class="headerlink" href="#constants" title="Permalink to this heading"></a></h2>
+<section id="deprecated-constants">
+<h3>Deprecated constants<a class="headerlink" href="#deprecated-constants" title="Permalink to this heading"></a></h3>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>name</p></th>
+<th class="head"><p>since</p></th>
+<th class="head"><p>replacement</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">VERSION_AUTO</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">Version::AUTO</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">MASK_PATTERN_AUTO</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">MaskPattern::AUTO</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">OUTPUT_MARKUP_SVG</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QROutputInterface::MARKUP_SVG</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">OUTPUT_MARKUP_HTML</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QROutputInterface::MARKUP_HTML</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">OUTPUT_IMAGE_PNG</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QROutputInterface::GDIMAGE_PNG</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">OUTPUT_IMAGE_JPG</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QROutputInterface::GDIMAGE_JPG</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">OUTPUT_IMAGE_GIF</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QROutputInterface::GDIMAGE_GIF</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">OUTPUT_STRING_JSON</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QROutputInterface::STRING_JSON</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">OUTPUT_STRING_TEXT</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QROutputInterface::STRING_TEXT</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">OUTPUT_IMAGICK</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QROutputInterface::IMAGICK</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">OUTPUT_FPDF</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QROutputInterface::FPDF</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">OUTPUT_CUSTOM</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QROutputInterface::CUSTOM</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ECC_L</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">EccLevel::L</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ECC_M</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">EccLevel::M</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ECC_Q</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">EccLevel::Q</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ECC_H</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">EccLevel::H</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DATA_NUMBER</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">Mode::NUMBER</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DATA_ALPHANUM</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">Mode::ALPHANUM</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DATA_BYTE</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">Mode::BYTE</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DATA_KANJI</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">Mode::KANJI</span></code></p></td>
+</tr>
+</tbody>
+</table>
+</section>
+</section>
+</section>
+
+
+           </div>
+          </div>
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="Usage-Advanced-usage.html" class="btn btn-neutral float-left" title="Advanced usage" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="API-QROptions.html" class="btn btn-neutral float-right" title="QROptions" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+    </div>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2023, smiley.</p>
+  </div>
+
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>

+ 475 - 0
API-QRMatrix.html

@@ -0,0 +1,475 @@
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" >
+<head>
+  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
+
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>QRMatrix &mdash; PHP-QRCode main
+ Manual</title>
+      <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="_static/js/html5shiv.min.js"></script>
+  <![endif]-->
+  
+        <script src="_static/jquery.js"></script>
+        <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
+        <script src="_static/doctools.js"></script>
+        <script src="_static/sphinx_highlight.js"></script>
+    <script src="_static/js/theme.js"></script>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="DecoderResult" href="API-DecoderResult.html" />
+    <link rel="prev" title="QROutputInterface" href="API-QROutputInterface.html" /> 
+</head>
+
+<body class="wy-body-for-nav"> 
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+
+          
+          
+          <a href="index.html" class="icon icon-home">
+            PHP-QRCode
+          </a>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Usage</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Overview.html">Overview</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#features">Features</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#requirements">Requirements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#shameless-advertising">Shameless advertising</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Installation.html">Installation</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#installation-with-composer">Installation with Composer</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#composer-json">composer.json</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="Usage-Installation.html#version-switch">Version switch</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#terminal">Terminal</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#manual-installation">Manual installation</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#can-i-use-this-library-without-using-composer">Can i use this library without using composer?</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#supported-php-versions-extension-requirements">Supported PHP versions &amp; extension requirements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#imagemagick">ImageMagick</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Quickstart.html">Quickstart</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#import-the-library">Import the library</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#create-your-first-qr-code">Create your first QR Code</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Quickstart.html#configuration">Configuration</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#reading-qr-codes">Reading QR Codes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#notes">Notes</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Advanced-usage.html">Advanced usage</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Advanced-usage.html#configuration-via-qroptions">Configuration via <code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#supply-an-iterable-of-options">Supply an <code class="docutils literal notranslate"><span class="pre">iterable</span></code> of options</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#load-and-save-json">Load and save JSON</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#extending-the-qroptions-class">Extending the <code class="docutils literal notranslate"><span class="pre">QROptions</span></code> class</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Advanced-usage.html#qrcode-methods"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code> methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#save-to-file">Save to file</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#render-a-qrmatrix-instance">Render a <code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code> instance</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#mixed-mode">Mixed mode</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#qr-code-reader">QR Code reader</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="API-QRCode.html"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROptions.html"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROutputInterface.html"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-DecoderResult.html"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-License.html">License</a></li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="index.html">PHP-QRCode</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
+      <li class="breadcrumb-item active"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></li>
+      <li class="wy-breadcrumbs-aside">
+              <a href="https://github.com/chillerlan/php-qrcode/blob/main/docs/API-QRMatrix.md" class="fa fa-github"> Edit on GitHub</a>
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+             
+  <section id="qrmatrix">
+<h1><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code><a class="headerlink" href="#qrmatrix" title="Permalink to this heading"></a></h1>
+<p>The full phpDocumentor API documentation can be found at <a class="reference external" href="https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-Data-QRMatrix.html">chillerlan.github.io/php-qrcode</a>.</p>
+<section id="methods">
+<h2>Methods<a class="headerlink" href="#methods" title="Permalink to this heading"></a></h2>
+<!-- using non-breaking spaces chr(255) in the longest method signature to force the silly table to stretch -->
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>method</p></th>
+<th class="head"><p>return</p></th>
+<th class="head"><p>description</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">__construct(Version</span> <span class="pre">$version,</span> <span class="pre">EccLevel</span> <span class="pre">$eccLevel)</span></code></p></td>
+<td><p>-</p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">initFunctionalPatterns()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>shortcut to initialize the functional patterns</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">getMatrix()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">array</span></code></p></td>
+<td><p>the internal matrix representation as a 2 dimensional array</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">getVersion()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">Version|null</span></code></p></td>
+<td><p>the current QR Code version instance</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">getEccLevel()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">EccLevel|null</span></code></p></td>
+<td><p>the current ECC level instance</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">getMaskPattern()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">MaskPattern|null</span></code></p></td>
+<td><p>the used mask pattern instance</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">getSize()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p>the absoulute size of the matrix, including quiet zone (if set). <code class="docutils literal notranslate"><span class="pre">$version</span> <span class="pre">*</span> <span class="pre">4</span> <span class="pre">+</span> <span class="pre">17</span> <span class="pre">+</span> <span class="pre">2</span> <span class="pre">*</span> <span class="pre">$quietzone</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">get(int</span> <span class="pre">$x,</span> <span class="pre">int</span> <span class="pre">$y)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p>returns the value of the module</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">set(int</span> <span class="pre">$x,</span> <span class="pre">int</span> <span class="pre">$y,</span> <span class="pre">bool</span> <span class="pre">$value,</span> <span class="pre">int</span> <span class="pre">$M_TYPE)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>sets the <code class="docutils literal notranslate"><span class="pre">$M_TYPE</span></code> value for the module</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">setArea(int $startX, int $startY, int $width, int $height, bool $value, int $M_TYPE)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Fills an area of $width * $height, from the given starting point $startX, $startY (top left) with $value for $M_TYPE</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">checkType(int</span> <span class="pre">$x,</span> <span class="pre">int</span> <span class="pre">$y,</span> <span class="pre">int</span> <span class="pre">$M_TYPE)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p>Checks whether a module is of the given $M_TYPE</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">checkTypeIn(int</span> <span class="pre">$x,</span> <span class="pre">int</span> <span class="pre">$y,</span> <span class="pre">array</span> <span class="pre">$M_TYPES)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p>Checks whether the module at ($x, $y) is in the given array of $M_TYPES, returns true if a match is found, otherwise false</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">check(int</span> <span class="pre">$x,</span> <span class="pre">int</span> <span class="pre">$y)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p>checks whether a module is true (dark) or false (light)</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">checkNeighbours(int</span> <span class="pre">$x,</span> <span class="pre">int</span> <span class="pre">$y,</span> <span class="pre">int</span> <span class="pre">$M_TYPE</span> <span class="pre">=</span> <span class="pre">null)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p>Checks the status neighbouring modules of the given module at ($x, $y) and returns a bitmask with the results.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">setDarkModule()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">setFinderPattern()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">setSeparators()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">setAlignmentPattern()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">setTimingPattern()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">setVersionNumber()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">setFormatInfo(MaskPattern</span> <span class="pre">$maskPattern</span> <span class="pre">=</span> <span class="pre">null)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">setQuietZone(int</span> <span class="pre">$quietZoneSize)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Draws the “quiet zone” of $quietZoneSize around the matrix</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">rotate90()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Rotates the matrix by 90 degrees clock wise</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">setLogoSpace(int</span> <span class="pre">$width,</span> <span class="pre">int</span> <span class="pre">$height</span> <span class="pre">=</span> <span class="pre">null,</span> <span class="pre">int</span> <span class="pre">$startX</span> <span class="pre">=</span> <span class="pre">null,</span> <span class="pre">int</span> <span class="pre">$startY</span> <span class="pre">=</span> <span class="pre">null)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Clears a space of $width * $height in order to add a logo or text.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">writeCodewords(BitBuffer</span> <span class="pre">$bitBuffer)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Maps the interleaved binary data on the matrix</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">mask(MaskPattern</span> <span class="pre">$maskPattern)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">self</span></code></p></td>
+<td><p>Applies/reverses the mask pattern</p></td>
+</tr>
+</tbody>
+</table>
+<section id="deprecated-methods">
+<h3>Deprecated methods<a class="headerlink" href="#deprecated-methods" title="Permalink to this heading"></a></h3>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>method</p></th>
+<th class="head"><p>since</p></th>
+<th class="head"><p>replacement</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">matrix()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QRMatrix::getMatrix()</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">eccLevel()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QRMatrix::getEccLevel()</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">version()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QRMatrix::getVersion()</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">maskPattern()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QRMatrix::getMaskPattern()</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">size()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5.0.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QRMatrix::getSize()</span></code></p></td>
+</tr>
+</tbody>
+</table>
+</section>
+</section>
+<section id="constants">
+<h2>Constants<a class="headerlink" href="#constants" title="Permalink to this heading"></a></h2>
+<p>The <code class="docutils literal notranslate"><span class="pre">_DARK</span></code> prefixed constans exist purely for convenience - their value is the same as <code class="docutils literal notranslate"><span class="pre">QRMatrix::M_XXX\|QRMatrix::IS_DARK</span></code>, see <a class="reference internal" href="API-QROutputInterface.html"><span class="std std-doc"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></span></a>.</p>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>name</p></th>
+<th class="head"><p>description</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">IS_DARK</span></code></p></td>
+<td><p>sets the “dark” flag for the given value: <code class="docutils literal notranslate"><span class="pre">QRMatrix::M_DATA</span> <span class="pre">|</span> <span class="pre">QRMatrix::IS_DARK</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">M_NULL</span></code></p></td>
+<td><p>module not set</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">M_DARKMODULE</span></code></p></td>
+<td><p>once per matrix at <code class="docutils literal notranslate"><span class="pre">$xy</span> <span class="pre">=</span> <span class="pre">[8,</span> <span class="pre">4</span> <span class="pre">*</span> <span class="pre">$version</span> <span class="pre">+</span> <span class="pre">9]</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">M_DATA</span></code></p></td>
+<td><p>the actual encoded data</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">M_DATA_DARK</span></code></p></td>
+<td><p>convenience</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">M_FINDER</span></code></p></td>
+<td><p>the 7x7 finder patterns</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">M_FINDER_DARK</span></code></p></td>
+<td><p>convenience</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">M_FINDER_DOT</span></code></p></td>
+<td><p>the inner 3x3 block of the finder pattern</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">M_SEPARATOR</span></code></p></td>
+<td><p>separator lines along the finder patterns</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">M_SEPARATOR_DARK</span></code></p></td>
+<td><p>convenience</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">M_ALIGNMENT</span></code></p></td>
+<td><p>the 5x5 alignment patterns</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">M_ALIGNMENT_DARK</span></code></p></td>
+<td><p>convenience</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">M_TIMING</span></code></p></td>
+<td><p>the timing pattern lines</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">M_TIMING_DARK</span></code></p></td>
+<td><p>convenience</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">M_FORMAT</span></code></p></td>
+<td><p>format information pattern</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">M_FORMAT_DARK</span></code></p></td>
+<td><p>convenience</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">M_VERSION</span></code></p></td>
+<td><p>version information pattern</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">M_VERSION_DARK</span></code></p></td>
+<td><p>convenience</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">M_QUIETZONE</span></code></p></td>
+<td><p>margin around the QR Code</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">M_QUIETZONE_DARK</span></code></p></td>
+<td><p>convenience</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">M_LOGO</span></code></p></td>
+<td><p>space for a logo image (not used yet)</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">M_LOGO_DARK</span></code></p></td>
+<td><p>convenience</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">M_TEST</span></code></p></td>
+<td><p>test value</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">M_TEST_DARK</span></code></p></td>
+<td><p>convenience</p></td>
+</tr>
+</tbody>
+</table>
+</section>
+</section>
+
+
+           </div>
+          </div>
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="API-QROutputInterface.html" class="btn btn-neutral float-left" title="QROutputInterface" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="API-DecoderResult.html" class="btn btn-neutral float-right" title="DecoderResult" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+    </div>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2023, smiley.</p>
+  </div>
+
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>

+ 606 - 0
API-QROptions.html

@@ -0,0 +1,606 @@
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" >
+<head>
+  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
+
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>QROptions &mdash; PHP-QRCode main
+ Manual</title>
+      <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="_static/js/html5shiv.min.js"></script>
+  <![endif]-->
+  
+        <script src="_static/jquery.js"></script>
+        <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
+        <script src="_static/doctools.js"></script>
+        <script src="_static/sphinx_highlight.js"></script>
+    <script src="_static/js/theme.js"></script>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="QROutputInterface" href="API-QROutputInterface.html" />
+    <link rel="prev" title="QRCode" href="API-QRCode.html" /> 
+</head>
+
+<body class="wy-body-for-nav"> 
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+
+          
+          
+          <a href="index.html" class="icon icon-home">
+            PHP-QRCode
+          </a>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Usage</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Overview.html">Overview</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#features">Features</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#requirements">Requirements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#shameless-advertising">Shameless advertising</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Installation.html">Installation</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#installation-with-composer">Installation with Composer</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#composer-json">composer.json</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="Usage-Installation.html#version-switch">Version switch</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#terminal">Terminal</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#manual-installation">Manual installation</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#can-i-use-this-library-without-using-composer">Can i use this library without using composer?</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#supported-php-versions-extension-requirements">Supported PHP versions &amp; extension requirements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#imagemagick">ImageMagick</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Quickstart.html">Quickstart</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#import-the-library">Import the library</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#create-your-first-qr-code">Create your first QR Code</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Quickstart.html#configuration">Configuration</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#reading-qr-codes">Reading QR Codes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#notes">Notes</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Advanced-usage.html">Advanced usage</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Advanced-usage.html#configuration-via-qroptions">Configuration via <code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#supply-an-iterable-of-options">Supply an <code class="docutils literal notranslate"><span class="pre">iterable</span></code> of options</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#load-and-save-json">Load and save JSON</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#extending-the-qroptions-class">Extending the <code class="docutils literal notranslate"><span class="pre">QROptions</span></code> class</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Advanced-usage.html#qrcode-methods"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code> methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#save-to-file">Save to file</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#render-a-qrmatrix-instance">Render a <code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code> instance</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#mixed-mode">Mixed mode</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#qr-code-reader">QR Code reader</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="API-QRCode.html"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROutputInterface.html"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QRMatrix.html"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRMatrix.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-DecoderResult.html"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-License.html">License</a></li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="index.html">PHP-QRCode</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
+      <li class="breadcrumb-item active"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></li>
+      <li class="wy-breadcrumbs-aside">
+              <a href="https://github.com/chillerlan/php-qrcode/blob/main/docs/API-QROptions.md" class="fa fa-github"> Edit on GitHub</a>
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+             
+  <section id="qroptions">
+<h1><code class="docutils literal notranslate"><span class="pre">QROptions</span></code><a class="headerlink" href="#qroptions" title="Permalink to this heading"></a></h1>
+<p>(via <code class="docutils literal notranslate"><span class="pre">QROptionsTrait</span></code>)</p>
+<p>The full phpDocumentor API documentation can be found at <a class="reference external" href="https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-QROptions.html">chillerlan.github.io/php-qrcode</a>.</p>
+<section id="methods">
+<h2>Methods<a class="headerlink" href="#methods" title="Permalink to this heading"></a></h2>
+<p>Inherited from <a class="reference external" href="https://github.com/chillerlan/php-settings-container/blob/main/src/SettingsContainerAbstract.php"><code class="docutils literal notranslate"><span class="pre">SettingsContainerAbstract</span></code></a></p>
+<!-- using non-breaking spaces chr(255) in the longest method signature to force the silly table to stretch -->
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>method</p></th>
+<th class="head"><p>return</p></th>
+<th class="head"><p>info</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">__construct(iterable $properties = null)</span></code></p></td>
+<td><p>-</p></td>
+<td><p>calls <code class="docutils literal notranslate"><span class="pre">construct()</span></code> internally after the properties have been set</p></td>
+</tr>
+<tr class="row-odd"><td><p>(protected) <code class="docutils literal notranslate"><span class="pre">construct()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">void</span></code></p></td>
+<td><p>calls a method with trait name as replacement constructor for each used trait (similar to PHP4 constructors)</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">__get(string</span> <span class="pre">$property)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">mixed</span></code></p></td>
+<td><p>calls <code class="docutils literal notranslate"><span class="pre">$this-&gt;{'get_'.$property}()</span></code> if such a method exists</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">__set(string</span> <span class="pre">$property,</span> <span class="pre">$value)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">void</span></code></p></td>
+<td><p>calls <code class="docutils literal notranslate"><span class="pre">$this-&gt;{'set_'.$property}($value)</span></code> if such a method exists</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">__isset(string</span> <span class="pre">$property)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">__unset(string</span> <span class="pre">$property)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">void</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">__toString()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p>a JSON string</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">toArray()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">array</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">fromIterable(iterable</span> <span class="pre">$properties)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">SettingsContainerInterface</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">toJSON(int</span> <span class="pre">$jsonOptions</span> <span class="pre">=</span> <span class="pre">null)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p>accepts <a class="reference external" href="http://php.net/manual/json.constants.php">JSON options constants</a></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">fromJSON(string</span> <span class="pre">$json)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">SettingsContainerInterface</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">jsonSerialize()</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">mixed</span></code></p></td>
+<td><p>implements the <a class="reference external" href="https://www.php.net/manual/en/jsonserializable.jsonserialize.php"><code class="docutils literal notranslate"><span class="pre">JsonSerializable</span></code></a> interface</p></td>
+</tr>
+</tbody>
+</table>
+</section>
+<section id="properties">
+<h2>Properties<a class="headerlink" href="#properties" title="Permalink to this heading"></a></h2>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>property</p></th>
+<th class="head"><p>type</p></th>
+<th class="head"><p>default</p></th>
+<th class="head"><p>allowed</p></th>
+<th class="head"><p>description</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$version</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">Version::AUTO</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">1...40</span></code>, <code class="docutils literal notranslate"><span class="pre">Version::AUTO</span></code></p></td>
+<td><p><a class="reference external" href="http://www.qrcode.com/en/about/version.html">QR Code version number</a></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$versionMin</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">1...40</span></code></p></td>
+<td><p>Minimum QR version (if <code class="docutils literal notranslate"><span class="pre">$version</span> <span class="pre">=</span> <span class="pre">QRCode::VERSION_AUTO</span></code>)</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$versionMax</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">40</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">1...40</span></code></p></td>
+<td><p>Maximum QR version (if <code class="docutils literal notranslate"><span class="pre">$version</span> <span class="pre">=</span> <span class="pre">QRCode::VERSION_AUTO</span></code>)</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$eccLevel</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">EccLevel::L</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">EccLevel::X</span></code></p></td>
+<td><p>Error correct level, where X = L (7%), M (15%), Q (25%), H (30%)</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$maskPattern</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">MaskPattern::AUTO</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">0...7</span></code>, <code class="docutils literal notranslate"><span class="pre">MaskPattern::AUTO</span></code></p></td>
+<td><p>Mask Pattern to use</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$addQuietzone</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Add a “quiet zone” (margin) according to the QR code spec</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$quietzoneSize</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">4</span></code></p></td>
+<td><p>clamped to <code class="docutils literal notranslate"><span class="pre">0...($matrixSize</span> <span class="pre">/</span> <span class="pre">2)</span></code></p></td>
+<td><p>Size of the quiet zone</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$outputType</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QROutputInterface::MARKUP_SVG</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">QROutputInterface::XXX</span></code></p></td>
+<td><p>The built-in output type, XXX can be one of: <code class="docutils literal notranslate"><span class="pre">MARKUP_HTML</span></code>, <code class="docutils literal notranslate"><span class="pre">MARKUP_SVG</span></code>, <code class="docutils literal notranslate"><span class="pre">GDIMAGE_PNG</span></code>, <code class="docutils literal notranslate"><span class="pre">GDIMAGE_JPG</span></code>, <code class="docutils literal notranslate"><span class="pre">GDIMAGE_GIF</span></code>, <code class="docutils literal notranslate"><span class="pre">STRING_TEXT</span></code>, <code class="docutils literal notranslate"><span class="pre">STRING_JSON</span></code>, <code class="docutils literal notranslate"><span class="pre">IMAGICK</span></code>, <code class="docutils literal notranslate"><span class="pre">EPS</span></code>, <code class="docutils literal notranslate"><span class="pre">FPDF</span></code>, <code class="docutils literal notranslate"><span class="pre">CUSTOM</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$outputInterface</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string|null</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></td>
+<td><p>*</p></td>
+<td><p>The FQCN of the custom <code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code> if <code class="docutils literal notranslate"><span class="pre">QROptions::$outputType</span></code> is set to <code class="docutils literal notranslate"><span class="pre">QROutputInterface::CUSTOM</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$returnResource</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Return the image resource instead of a render if applicable.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$cachefile</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string|null</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Optional cache file path</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$imageBase64</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Toggle base64 or raw image data (if applicable)</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$eol</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">PHP_EOL</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Newline string (HTML, SVG, TEXT)</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$bgColor</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">mixed</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></td>
+<td><p>a valid FPDF, GD or Imagick color value</p></td>
+<td><p>Sets the image background color (if applicable). QRImagick: defaults to “white”, QRGdImage: defaults to [255, 255, 255], QRFpdf: defaults to blank internally (white page)</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$drawLightModules</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Whether to draw the light (false) modules</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$drawCircularModules</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Specify whether to draw the modules as filled circles</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$circleRadius</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">float</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">0.45</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">0.1...0.75</span></code></p></td>
+<td><p>Specifies the radius of the modules when $svgDrawCircularModules is set to true</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$keepAsSquare</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">array</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">[]</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int[]</span></code></p></td>
+<td><p>Specifies which module types to exclude when $svgDrawCircularModules is set to true</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$connectPaths</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Whether to connect the paths for the several module types to avoid weird glitches when using gradients etc.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$excludeFromConnect</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">array</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">[]</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int[]</span></code></p></td>
+<td><p>Specify which paths/patterns to exclude from connecting if $svgConnectPaths is set to true</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$moduleValues</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">array|null</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Module values map, see [[Custom module values]]</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$addLogoSpace</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Toggles logo space creation</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$logoSpaceWidth</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int|null</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Width of the logo space</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$logoSpaceHeight</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int|null</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Height of the logo space</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$logoSpaceStartX</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int|null</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Optional horizontal start position of the logo space (top left corner)</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$logoSpaceStartY</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int|null</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Optional vertical start position of the logo space (top left corner)</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$scale</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">5</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Pixel size of a QR code module</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$imageTransparent</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Toggle transparency (no jpeg support), QRGdImage and QRImagick only. The given <code class="docutils literal notranslate"><span class="pre">QROptions::$transparencyColor</span></code> is set as transparent</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$transparencyColor</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">mixed</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></td>
+<td><p>a valid GD or Imagick color value</p></td>
+<td><p>Sets a transparency color for when <code class="docutils literal notranslate"><span class="pre">QROptions::$imageTransparent</span></code> is set to true. Defaults to <code class="docutils literal notranslate"><span class="pre">QROptions::$bgColor</span></code>.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$pngCompression</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">-1</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">-1...9</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">imagepng()</span></code> compression level, -1 = auto</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$jpegQuality</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">85</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">0...100</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">imagejpeg()</span></code> quality</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$imagickFormat</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">'png'</span></code></p></td>
+<td><p>*</p></td>
+<td><p>ImageMagick output type, see <code class="docutils literal notranslate"><span class="pre">Imagick::setType()</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$cssClass</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">'qrcode'</span></code></p></td>
+<td><p>*</p></td>
+<td><p>A common css class</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$markupDark</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">'#000'</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Markup substitute for dark (CSS value)</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$markupLight</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">'#fff'</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Markup substitute for light (CSS value)</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$svgAddXmlHeader</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Whether to add an XML header line or not, e.g. to embed the SVG directly in HTML</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$svgOpacity</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">float</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">1.0</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">0...1</span></code></p></td>
+<td><p>SVG opacity</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$svgDefs</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">''</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Anything in the <a class="reference external" href="https://developer.mozilla.org/docs/Web/SVG/Element/defs"><code class="docutils literal notranslate"><span class="pre">&lt;defs&gt;</span></code></a> tag</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$svgViewBoxSize</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">int|null</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></td>
+<td><p>*</p></td>
+<td><p>SVG viewBox size. A single integer number which defines width/height of the <a class="reference external" href="https://css-tricks.com/scale-svg/#article-header-id-3">viewBox attribute</a> <code class="docutils literal notranslate"><span class="pre">viewBox=&quot;0</span> <span class="pre">0</span> <span class="pre">x</span> <span class="pre">x&quot;</span></code>.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$svgPreserveAspectRatio</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">'xMidYMid'</span></code></p></td>
+<td><p>*</p></td>
+<td><p>See <a class="reference external" href="https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/preserveAspectRatio">preserveAspectRatio on MDN</a></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$svgWidth</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string|null</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Optional “width” attribute with the specified value (note that the value is not checked!)</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$svgHeight</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string|null</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Optional “height” attribute with the specified value (note that the value is not checked!)</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$textDark</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">'🔴'</span></code></p></td>
+<td><p>*</p></td>
+<td><p>String substitute for dark</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$textLight</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">'⭕'</span></code></p></td>
+<td><p>*</p></td>
+<td><p>String substitute for light</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$fpdfMeasureUnit</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">'pt'</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Measurement unit for FPDF output: pt, mm, cm, in</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$readerUseImagickIfAvailable</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Use Imagick (if available) when reading QR Codes</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$readerGrayscale</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Grayscale the image before reading</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$readerIncreaseContrast</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
+<td><p>*</p></td>
+<td><p>Increase the contrast before reading</p></td>
+</tr>
+</tbody>
+</table>
+</section>
+</section>
+
+
+           </div>
+          </div>
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="API-QRCode.html" class="btn btn-neutral float-left" title="QRCode" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="API-QROutputInterface.html" class="btn btn-neutral float-right" title="QROutputInterface" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+    </div>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2023, smiley.</p>
+  </div>
+
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>

+ 314 - 0
API-QROutputInterface.html

@@ -0,0 +1,314 @@
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" >
+<head>
+  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
+
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>QROutputInterface &mdash; PHP-QRCode main
+ Manual</title>
+      <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="_static/js/html5shiv.min.js"></script>
+  <![endif]-->
+  
+        <script src="_static/jquery.js"></script>
+        <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
+        <script src="_static/doctools.js"></script>
+        <script src="_static/sphinx_highlight.js"></script>
+    <script src="_static/js/theme.js"></script>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="QRMatrix" href="API-QRMatrix.html" />
+    <link rel="prev" title="QROptions" href="API-QROptions.html" /> 
+</head>
+
+<body class="wy-body-for-nav"> 
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+
+          
+          
+          <a href="index.html" class="icon icon-home">
+            PHP-QRCode
+          </a>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Usage</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Overview.html">Overview</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#features">Features</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#requirements">Requirements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#shameless-advertising">Shameless advertising</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Installation.html">Installation</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#installation-with-composer">Installation with Composer</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#composer-json">composer.json</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="Usage-Installation.html#version-switch">Version switch</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#terminal">Terminal</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#manual-installation">Manual installation</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Installation.html#can-i-use-this-library-without-using-composer">Can i use this library without using composer?</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#supported-php-versions-extension-requirements">Supported PHP versions &amp; extension requirements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Installation.html#imagemagick">ImageMagick</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Quickstart.html">Quickstart</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#import-the-library">Import the library</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#create-your-first-qr-code">Create your first QR Code</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Quickstart.html#configuration">Configuration</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#reading-qr-codes">Reading QR Codes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Quickstart.html#notes">Notes</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage-Advanced-usage.html">Advanced usage</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Advanced-usage.html#configuration-via-qroptions">Configuration via <code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#supply-an-iterable-of-options">Supply an <code class="docutils literal notranslate"><span class="pre">iterable</span></code> of options</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#load-and-save-json">Load and save JSON</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#extending-the-qroptions-class">Extending the <code class="docutils literal notranslate"><span class="pre">QROptions</span></code> class</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Advanced-usage.html#qrcode-methods"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code> methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#save-to-file">Save to file</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#render-a-qrmatrix-instance">Render a <code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code> instance</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#mixed-mode">Mixed mode</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Usage-Advanced-usage.html#qr-code-reader">QR Code reader</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="API-QRCode.html"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROptions.html"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QRMatrix.html"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRMatrix.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-DecoderResult.html"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-License.html">License</a></li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="index.html">PHP-QRCode</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
+      <li class="breadcrumb-item active"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></li>
+      <li class="wy-breadcrumbs-aside">
+              <a href="https://github.com/chillerlan/php-qrcode/blob/main/docs/API-QROutputInterface.md" class="fa fa-github"> Edit on GitHub</a>
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+             
+  <section id="qroutputinterface">
+<h1><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code><a class="headerlink" href="#qroutputinterface" title="Permalink to this heading"></a></h1>
+<p>The full phpDocumentor API documentation can be found at <a class="reference external" href="https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-Output-QROutputInterface.html">chillerlan.github.io/php-qrcode</a>.</p>
+<section id="methods">
+<h2>Methods<a class="headerlink" href="#methods" title="Permalink to this heading"></a></h2>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>method</p></th>
+<th class="head"><p>return</p></th>
+<th class="head"><p>description</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p>(static) <code class="docutils literal notranslate"><span class="pre">moduleValueIsValid($value)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
+<td><p>Determines whether the given value is valid</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">dump(string</span> <span class="pre">$file</span> <span class="pre">=</span> <span class="pre">null)</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span class="pre">mixed</span></code></p></td>
+<td><p>Generates the output, optionally dumps it to a file, and returns it</p></td>
+</tr>
+</tbody>
+</table>
+</section>
+<section id="constants">
+<h2>Constants<a class="headerlink" href="#constants" title="Permalink to this heading"></a></h2>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>name</p></th>
+<th class="head"><p>description</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">MARKUP_HTML</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">MARKUP_SVG</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">GDIMAGE_PNG</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">GDIMAGE_JPG</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">GDIMAGE_GIF</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">STRING_JSON</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">STRING_TEXT</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">IMAGICK</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">FPDF</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">EPS</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">CUSTOM</span></code></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">MODES</span></code></p></td>
+<td><p>Map of built-in output modes =&gt; class FQN</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEFAULT_MODULE_VALUES</span></code></p></td>
+<td><p>Map of module type =&gt; default value</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">LAYERNAMES</span></code></p></td>
+<td><p>Map of module type =&gt; readable name (for CSS etc.)</p></td>
+</tr>
+</tbody>
+</table>
+</section>
+</section>
+
+
+           </div>
+          </div>
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="API-QROptions.html" class="btn btn-neutral float-left" title="QROptions" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="API-QRMatrix.html" class="btn btn-neutral float-right" title="QRMatrix" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+    </div>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2023, smiley.</p>
+  </div>
+
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>

Разница между файлами не показана из-за своего большого размера
+ 270 - 0
Appendix-Glossary.html


+ 81 - 2
Appendix-License.html

@@ -20,7 +20,7 @@
     <script src="_static/js/theme.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
-    <link rel="prev" title="Advanced usage" href="Usage-Advanced-usage.html" /> 
+    <link rel="prev" title="Terminology" href="Appendix-Glossary.html" /> 
 </head>
 
 <body class="wy-body-for-nav"> 
@@ -48,6 +48,7 @@
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#features">Features</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#requirements">Requirements</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#shameless-advertising">Shameless advertising</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="Usage-Installation.html">Installation</a><ul>
@@ -94,8 +95,86 @@
 </ul>
 </li>
 </ul>
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="API-QRCode.html"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROptions.html"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROutputInterface.html"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QRMatrix.html"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRMatrix.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-DecoderResult.html"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
 <p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
 <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">License</a></li>
 </ul>
 
@@ -570,7 +649,7 @@ Creative Commons may be contacted at creativecommons.org.
            </div>
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
-        <a href="Usage-Advanced-usage.html" class="btn btn-neutral float-left" title="Advanced usage" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="Appendix-Glossary.html" class="btn btn-neutral float-left" title="Terminology" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
 
   <hr/>

+ 81 - 2
Usage-Advanced-usage.html

@@ -20,7 +20,7 @@
     <script src="_static/js/theme.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
-    <link rel="next" title="License" href="Appendix-License.html" />
+    <link rel="next" title="QRCode" href="API-QRCode.html" />
     <link rel="prev" title="Quickstart" href="Usage-Quickstart.html" /> 
 </head>
 
@@ -49,6 +49,7 @@
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#features">Features</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#requirements">Requirements</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#shameless-advertising">Shameless advertising</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="Usage-Installation.html">Installation</a><ul>
@@ -95,8 +96,86 @@
 </ul>
 </li>
 </ul>
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="API-QRCode.html"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROptions.html"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROutputInterface.html"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QRMatrix.html"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRMatrix.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-DecoderResult.html"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
 <p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="Appendix-License.html">License</a></li>
 </ul>
 
@@ -340,7 +419,7 @@ This method is used internally when a data mode is invoked, but it can come in h
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
         <a href="Usage-Quickstart.html" class="btn btn-neutral float-left" title="Quickstart" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
-        <a href="Appendix-License.html" class="btn btn-neutral float-right" title="License" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="API-QRCode.html" class="btn btn-neutral float-right" title="QRCode" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
   <hr/>

+ 79 - 0
Usage-Installation.html

@@ -49,6 +49,7 @@
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#features">Features</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#requirements">Requirements</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#shameless-advertising">Shameless advertising</a></li>
 </ul>
 </li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">Installation</a><ul>
@@ -95,8 +96,86 @@
 </ul>
 </li>
 </ul>
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="API-QRCode.html"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROptions.html"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROutputInterface.html"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QRMatrix.html"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRMatrix.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-DecoderResult.html"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
 <p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="Appendix-License.html">License</a></li>
 </ul>
 

+ 99 - 1
Usage-Overview.html

@@ -49,6 +49,7 @@
 <li class="toctree-l2"><a class="reference internal" href="#features">Features</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#requirements">Requirements</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#shameless-advertising">Shameless advertising</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="Usage-Installation.html">Installation</a><ul>
@@ -95,8 +96,86 @@
 </ul>
 </li>
 </ul>
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="API-QRCode.html"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROptions.html"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROutputInterface.html"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QRMatrix.html"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRMatrix.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-DecoderResult.html"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
 <p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="Appendix-License.html">License</a></li>
 </ul>
 
@@ -126,6 +205,8 @@
              
   <section id="overview">
 <h1>Overview<a class="headerlink" href="#overview" title="Permalink to this heading"></a></h1>
+<p>A PHP QR Code generator based on the <a class="reference external" href="https://github.com/kazuhikoarase/qrcode-generator">implementation by Kazuhiko Arase</a>, namespaced, cleaned up, improved and other stuff. <br>
+It also features a QR Code reader based on a <a class="reference external" href="https://github.com/khanamiryan/php-qrcode-detector-decoder">PHP port</a> of the <a class="reference external" href="https://github.com/zxing/zxing">ZXing library</a>.</p>
 <section id="features">
 <h2>Features<a class="headerlink" href="#features" title="Permalink to this heading"></a></h2>
 <ul class="simple">
@@ -136,7 +217,12 @@
 <li><p>numeric</p></li>
 <li><p>alphanumeric</p></li>
 <li><p>8-bit binary</p></li>
-<li><p>13-bit double-byte kanji (Japanese, Shift-JIS) and hanzi (simplified Chinese, GB2312/GB18030) as <a class="reference external" href="https://www.chinesestandard.net/PDF/English.aspx/GBT18284-2000">defined in GBT18284-2000</a></p></li>
+<li><p>13-bit double-byte:</p>
+<ul>
+<li><p>kanji (Japanese, Shift-JIS)</p></li>
+<li><p>hanzi (simplified Chinese, GB2312/GB18030) as <a class="reference external" href="https://www.chinesestandard.net/PDF/English.aspx/GBT18284-2000">defined in GBT18284-2000</a></p></li>
+</ul>
+</li>
 </ul>
 </li>
 <li><p>Flexible, easily extensible output modules, built-in support for the following output formats:</p>
@@ -215,6 +301,18 @@
 </li>
 </ul>
 </section>
+<section id="shameless-advertising">
+<h2>Shameless advertising<a class="headerlink" href="#shameless-advertising" title="Permalink to this heading"></a></h2>
+<p>Hi, please check out some of my other projects that are way cooler than qrcodes!</p>
+<ul class="simple">
+<li><p><a class="reference external" href="https://github.com/chillerlan/js-qrcode">js-qrcode</a> - a javascript port of this library</p></li>
+<li><p><a class="reference external" href="https://github.com/chillerlan/php-authenticator">php-authenticator</a> - a Google Authenticator implementation (see <a class="reference external" href="https://github.com/chillerlan/php-qrcode/blob/main/examples/authenticator.php">authenticator example</a>)</p></li>
+<li><p><a class="reference external" href="https://github.com/chillerlan/php-httpinterface">php-httpinterface</a> - a PSR-7/15/17/18 implemetation</p></li>
+<li><p><a class="reference external" href="https://github.com/chillerlan/php-oauth-core">php-oauth-core</a> - an OAuth 1/2 client library along with a bunch of <a class="reference external" href="https://github.com/chillerlan/php-oauth-providers">providers</a></p></li>
+<li><p><a class="reference external" href="https://github.com/chillerlan/php-database">php-database</a> - a database client &amp; querybuilder for MySQL, Postgres, SQLite, MSSQL, Firebird</p></li>
+<li><p><a class="reference external" href="https://github.com/php-tootbot/tootbot-template">php-tootbot</a> - a Mastodon bot library</p></li>
+</ul>
+</section>
 </section>
 
 

+ 79 - 0
Usage-Quickstart.html

@@ -49,6 +49,7 @@
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#features">Features</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#requirements">Requirements</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#shameless-advertising">Shameless advertising</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="Usage-Installation.html">Installation</a><ul>
@@ -95,8 +96,86 @@
 </ul>
 </li>
 </ul>
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="API-QRCode.html"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROptions.html"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROutputInterface.html"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QRMatrix.html"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRMatrix.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-DecoderResult.html"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
 <p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="Appendix-License.html">License</a></li>
 </ul>
 

+ 24 - 0
_sources/API-DecoderResult.md.txt

@@ -0,0 +1,24 @@
+# `DecoderResult`
+
+The full phpDocumentor API documentation can be found at [chillerlan.github.io/php-qrcode](https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-Decoder-DecoderResult.html).
+
+## Methods
+
+| method                                     | return     | description                                                                                                |
+|--------------------------------------------|------------|------------------------------------------------------------------------------------------------------------|
+| `__construct(iterable $properties = null)` | -          | used internally by [`Decoder`](https://github.com/chillerlan/php-qrcode/blob/main/src/Decoder/Decoder.php) |
+| `__toString()`                             | `string`   | returns the data contained in the QR symbol                                                                |
+| `hasStructuredAppend()`                    | `bool`     |                                                                                                            |
+| `getQRMatrix()`                            | `QRMatrix` |                                                                                                            |
+
+## Magic Properties (read-only)
+
+| property                    | type          | description      |
+|-----------------------------|---------------|------------------|
+| `$rawBytes`                 | `BitBuffer`   |                  |
+| `$version`                  | `Version`     |                  |
+| `$eccLevel`                 | `EccLevel`    |                  |
+| `$maskPattern`              | `MaskPattern` |                  |
+| `$data`                     | `string`      | defaults to `''` |
+| `$structuredAppendParity`   | `int`         | defaults to `-1` |
+| `$structuredAppendSequence` | `int`         | defaults to `-1` |

+ 65 - 0
_sources/API-QRCode.md.txt

@@ -0,0 +1,65 @@
+# `QRCode`
+
+The full phpDocumentor API documentation can be found at [chillerlan.github.io/php-qrcode](https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-QRCode.html).
+
+
+## Methods
+<!-- using non-breaking spaces chr(255) in the longest method signature to force the silly table to stretch -->
+| method                                                    | return          | description                                                                                                                                                                 |
+|-----------------------------------------------------------|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `__construct(SettingsContainerInterface $options = null)` | -               | see [`QROptions`](./API-QROptions.md) and [`SettingsContainerInterface`](https://github.com/chillerlan/php-settings-container/blob/main/src/SettingsContainerInterface.php) |
+| `setOptions(SettingsContainerInterface $options)`         | `self`          | Sets an options instance, internally called via the constructor                                                                                                             |
+| `render(string $data, string $file = null)`               | `mixed`         | renders a QR Code for the given `$data` and `QROptions`, saves `$file` optionally, output depends on the chosen mode, see `QROutputInterface::dump()`                       |
+| `renderMatrix(QRMatrix $matrix, string $file = null)`     | `mixed`         | renders a QR Code for the given `QRMatrix` and `QROptions`, saves `$file` optionally, output depends on the chosen mode, see `QROutputInterface::dump()`                    |
+| `getQRMatrix()`                                           | `QRMatrix`      | returns a `QRMatrix` object for the given `$data` and current `QROptions`                                                                                                   |
+| `addSegment(QRDataModeInterface $segment)`                | `self`          | Adds a `QRDataModeInterface` segment                                                                                                                                        |
+| `clearSegments()`                                         | `self`          | Clears the data segments array                                                                                                                                              |
+| `addNumericSegment(string $data)`                         | `self`          | Adds a numeric data segment                                                                                                                                                 |
+| `addAlphaNumSegment(string $data)`                        | `self`          | Adds an alphanumeric data segment                                                                                                                                           |
+| `addKanjiSegment(string $data)`                           | `self`          | Adds a Kanji data segment (Japanese 13-bit double-byte characters, Shift-JIS)                                                                                               |
+| `addHanziSegment(string $data)`                           | `self`          | Adds a Hanzi data segment (simplified Chinese 13-bit double-byte characters, GB2312/GB18030)                                                                                |
+| `addByteSegment(string $data)`                            | `self`          | Adds an 8-bit byte data segment                                                                                                                                             |
+| `addEciDesignator(int $encoding)`                         | `self`          | Adds a standalone ECI designator                                                                                                                                            |
+| `addEciSegment(int $encoding, string $data)`              | `self`          | Adds an ECI data segment (including designator)                                                                                                                             |
+| `readFromFile(string $path)`                              | `DecoderResult` | Reads a QR Code from a given file                                                                                                                                           |
+| `readFromBlob(string $blob)`                              | `DecoderResult` | Reads a QR Code from the given data blob                                                                                                                                    |
+| `readFromSource(LuminanceSourceInterface $source)`        | `DecoderResult` | Reads a QR Code from the given luminance source                                                                                                                             |
+
+
+### Deprecated methods
+
+| method                       | since   | replacement                                |
+|------------------------------|---------|--------------------------------------------|
+| `getMatrix()`                | `5.0.0` | `QRCode::getQRMatrix()`                    |
+| `isNumber(string $string)`   | `5.0.0` | `Number::validateString(string $string)`   |
+| `isAlphaNum(string $string)` | `5.0.0` | `AlphaNum::validateString(string $string)` |
+| `isKanji(string $string)`    | `5.0.0` | `Kanji::validateString(string $string)`    |
+| `isByte(string $string)`     | `5.0.0` | `Byte::validateString(string $string)`     |
+
+
+##  Constants
+
+### Deprecated constants
+
+| name                 | since   | replacement                      |
+|----------------------|---------|----------------------------------|
+| `VERSION_AUTO`       | `5.0.0` | `Version::AUTO`                  |
+| `MASK_PATTERN_AUTO`  | `5.0.0` | `MaskPattern::AUTO`              |
+| `OUTPUT_MARKUP_SVG`  | `5.0.0` | `QROutputInterface::MARKUP_SVG`  |
+| `OUTPUT_MARKUP_HTML` | `5.0.0` | `QROutputInterface::MARKUP_HTML` |
+| `OUTPUT_IMAGE_PNG`   | `5.0.0` | `QROutputInterface::GDIMAGE_PNG` |
+| `OUTPUT_IMAGE_JPG`   | `5.0.0` | `QROutputInterface::GDIMAGE_JPG` |
+| `OUTPUT_IMAGE_GIF`   | `5.0.0` | `QROutputInterface::GDIMAGE_GIF` |
+| `OUTPUT_STRING_JSON` | `5.0.0` | `QROutputInterface::STRING_JSON` |
+| `OUTPUT_STRING_TEXT` | `5.0.0` | `QROutputInterface::STRING_TEXT` |
+| `OUTPUT_IMAGICK`     | `5.0.0` | `QROutputInterface::IMAGICK`     |
+| `OUTPUT_FPDF`        | `5.0.0` | `QROutputInterface::FPDF`        |
+| `OUTPUT_CUSTOM`      | `5.0.0` | `QROutputInterface::CUSTOM`      |
+| `ECC_L`              | `5.0.0` | `EccLevel::L`                    |
+| `ECC_M`              | `5.0.0` | `EccLevel::M`                    |
+| `ECC_Q`              | `5.0.0` | `EccLevel::Q`                    |
+| `ECC_H`              | `5.0.0` | `EccLevel::H`                    |
+| `DATA_NUMBER`        | `5.0.0` | `Mode::NUMBER`                   |
+| `DATA_ALPHANUM`      | `5.0.0` | `Mode::ALPHANUM`                 |
+| `DATA_BYTE`          | `5.0.0` | `Mode::BYTE`                     |
+| `DATA_KANJI`         | `5.0.0` | `Mode::KANJI`                    |

+ 75 - 0
_sources/API-QRMatrix.md.txt

@@ -0,0 +1,75 @@
+# `QRMatrix`
+
+The full phpDocumentor API documentation can be found at [chillerlan.github.io/php-qrcode](https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-Data-QRMatrix.html).
+
+## Methods
+<!-- using non-breaking spaces chr(255) in the longest method signature to force the silly table to stretch -->
+| method                                                                                 | return              | description                                                                                                                |
+|----------------------------------------------------------------------------------------|---------------------|----------------------------------------------------------------------------------------------------------------------------|
+| `__construct(Version $version, EccLevel $eccLevel)`                                    | -                   |                                                                                                                            |
+| `initFunctionalPatterns()`                                                             | `self`              | shortcut to initialize the functional patterns                                                                             |
+| `getMatrix()`                                                                          | `array`             | the internal matrix representation as a 2 dimensional array                                                                |
+| `getVersion()`                                                                         | `Version\|null`     | the current QR Code version instance                                                                                       |
+| `getEccLevel()`                                                                        | `EccLevel\|null`    | the current ECC level instance                                                                                             |
+| `getMaskPattern()`                                                                     | `MaskPattern\|null` | the used mask pattern instance                                                                                             |
+| `getSize()`                                                                            | `int`               | the absoulute size of the matrix, including quiet zone (if set). `$version * 4 + 17 + 2 * $quietzone`                      |
+| `get(int $x, int $y)`                                                                  | `int`               | returns the value of the module                                                                                            |
+| `set(int $x, int $y, bool $value, int $M_TYPE)`                                        | `self`              | sets the `$M_TYPE` value for the module                                                                                    |
+| `setArea(int $startX, int $startY, int $width, int $height, bool $value, int $M_TYPE)` | `self`              | Fills an area of $width * $height, from the given starting point $startX, $startY (top left) with $value for $M_TYPE       |
+| `checkType(int $x, int $y, int $M_TYPE)`                                               | `bool`              | Checks whether a module is of the given $M_TYPE                                                                            |
+| `checkTypeIn(int $x, int $y, array $M_TYPES)`                                          | `bool`              | Checks whether the module at ($x, $y) is in the given array of $M_TYPES, returns true if a match is found, otherwise false |
+| `check(int $x, int $y)`                                                                | `bool`              | checks whether a module is true (dark) or false (light)                                                                    |
+| `checkNeighbours(int $x, int $y, int $M_TYPE = null)`                                  | `int`               | Checks the status neighbouring modules of the given module at ($x, $y) and returns a bitmask with the results.             |
+| `setDarkModule()`                                                                      | `self`              |                                                                                                                            |
+| `setFinderPattern()`                                                                   | `self`              |                                                                                                                            |
+| `setSeparators()`                                                                      | `self`              |                                                                                                                            |
+| `setAlignmentPattern()`                                                                | `self`              |                                                                                                                            |
+| `setTimingPattern()`                                                                   | `self`              |                                                                                                                            |
+| `setVersionNumber()`                                                                   | `self`              |                                                                                                                            |
+| `setFormatInfo(MaskPattern $maskPattern = null)`                                       | `self`              |                                                                                                                            |
+| `setQuietZone(int $quietZoneSize)`                                                     | `self`              | Draws the "quiet zone" of $quietZoneSize around the matrix                                                                 |
+| `rotate90()`                                                                           | `self`              | Rotates the matrix by 90 degrees clock wise                                                                                |
+| `setLogoSpace(int $width, int $height = null, int $startX = null, int $startY = null)` | `self`              | Clears a space of $width * $height in order to add a logo or text.                                                         |
+| `writeCodewords(BitBuffer $bitBuffer)`                                                 | `self`              | Maps the interleaved binary data on the matrix                                                                             |
+| `mask(MaskPattern $maskPattern)`                                                       | `self`              | Applies/reverses the mask pattern                                                                                          |
+
+### Deprecated methods
+
+| method          | since   | replacement                  |
+|-----------------|---------|------------------------------|
+| `matrix()`      | `5.0.0` | `QRMatrix::getMatrix()`      |
+| `eccLevel()`    | `5.0.0` | `QRMatrix::getEccLevel()`    |
+| `version()`     | `5.0.0` | `QRMatrix::getVersion()`     |
+| `maskPattern()` | `5.0.0` | `QRMatrix::getMaskPattern()` |
+| `size()`        | `5.0.0` | `QRMatrix::getSize()`        |
+
+## Constants
+
+The `_DARK` prefixed constans exist purely for convenience - their value is the same as `QRMatrix::M_XXX\|QRMatrix::IS_DARK`, see [`QROutputInterface`](./API-QROutputInterface.md).
+
+| name               | description                                                                       |
+|--------------------|-----------------------------------------------------------------------------------|
+| `IS_DARK`          | sets the "dark" flag for the given value: `QRMatrix::M_DATA \| QRMatrix::IS_DARK` |
+| `M_NULL`           | module not set                                                                    |
+| `M_DARKMODULE`     | once per matrix at `$xy = [8, 4 * $version + 9]`                                  |
+| `M_DATA`           | the actual encoded data                                                           |
+| `M_DATA_DARK`      | convenience                                                                       |
+| `M_FINDER`         | the 7x7 finder patterns                                                           |
+| `M_FINDER_DARK`    | convenience                                                                       |
+| `M_FINDER_DOT`     | the inner 3x3 block of the finder pattern                                         |
+| `M_SEPARATOR`      | separator lines along the finder patterns                                         |
+| `M_SEPARATOR_DARK` | convenience                                                                       |
+| `M_ALIGNMENT`      | the 5x5 alignment patterns                                                        |
+| `M_ALIGNMENT_DARK` | convenience                                                                       |
+| `M_TIMING`         | the timing pattern lines                                                          |
+| `M_TIMING_DARK`    | convenience                                                                       |
+| `M_FORMAT`         | format information pattern                                                        |
+| `M_FORMAT_DARK`    | convenience                                                                       |
+| `M_VERSION`        | version information pattern                                                       |
+| `M_VERSION_DARK`   | convenience                                                                       |
+| `M_QUIETZONE`      | margin around the QR Code                                                         |
+| `M_QUIETZONE_DARK` | convenience                                                                       |
+| `M_LOGO`           | space for a logo image (not used yet)                                             |
+| `M_LOGO_DARK`      | convenience                                                                       |
+| `M_TEST`           | test value                                                                        |
+| `M_TEST_DARK`      | convenience                                                                       |

+ 78 - 0
_sources/API-QROptions.md.txt

@@ -0,0 +1,78 @@
+# `QROptions`
+(via `QROptionsTrait`)
+
+The full phpDocumentor API documentation can be found at [chillerlan.github.io/php-qrcode](https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-QROptions.html).
+
+
+## Methods
+
+Inherited from [`SettingsContainerAbstract`](https://github.com/chillerlan/php-settings-container/blob/main/src/SettingsContainerAbstract.php)
+<!-- using non-breaking spaces chr(255) in the longest method signature to force the silly table to stretch -->
+| method                                     | return                       | info                                                                                                            |
+|--------------------------------------------|------------------------------|-----------------------------------------------------------------------------------------------------------------|
+| `__construct(iterable $properties = null)` | -                            | calls `construct()` internally after the properties have been set                                               |
+| (protected) `construct()`                  | `void`                       | calls a method with trait name as replacement constructor for each used trait (similar to PHP4 constructors)    |
+| `__get(string $property)`                  | `mixed`                      | calls `$this->{'get_'.$property}()` if such a method exists                                                     |
+| `__set(string $property, $value)`          | `void`                       | calls `$this->{'set_'.$property}($value)` if such a method exists                                               |
+| `__isset(string $property)`                | `bool`                       |                                                                                                                 |
+| `__unset(string $property)`                | `void`                       |                                                                                                                 |
+| `__toString()`                             | `string`                     | a JSON string                                                                                                   |
+| `toArray()`                                | `array`                      |                                                                                                                 |
+| `fromIterable(iterable $properties)`       | `SettingsContainerInterface` |                                                                                                                 |
+| `toJSON(int $jsonOptions = null)`          | `string`                     | accepts [JSON options constants](http://php.net/manual/json.constants.php)                                      |
+| `fromJSON(string $json)`                   | `SettingsContainerInterface` |                                                                                                                 |
+| `jsonSerialize()`                          | `mixed`                      | implements the [`JsonSerializable`](https://www.php.net/manual/en/jsonserializable.jsonserialize.php) interface |
+
+
+## Properties
+
+| property                       | type           | default                         | allowed                                 | description                                                                                                                                                                             |
+|--------------------------------|----------------|---------------------------------|-----------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `$version`                     | `int`          | `Version::AUTO`                 | `1...40`, `Version::AUTO`               | [QR Code version number](http://www.qrcode.com/en/about/version.html)                                                                                                                   |
+| `$versionMin`                  | `int`          | `1`                             | `1...40`                                | Minimum QR version (if `$version = QRCode::VERSION_AUTO`)                                                                                                                               |
+| `$versionMax`                  | `int`          | `40`                            | `1...40`                                | Maximum QR version (if `$version = QRCode::VERSION_AUTO`)                                                                                                                               |
+| `$eccLevel`                    | `int`          | `EccLevel::L`                   | `EccLevel::X`                           | Error correct level, where X = L (7%), M (15%), Q (25%), H (30%)                                                                                                                        |
+| `$maskPattern`                 | `int`          | `MaskPattern::AUTO`             | `0...7`, `MaskPattern::AUTO`            | Mask Pattern to use                                                                                                                                                                     |
+| `$addQuietzone`                | `bool`         | `true`                          | *                                       | Add a "quiet zone" (margin) according to the QR code spec                                                                                                                               |
+| `$quietzoneSize`               | `int`          | `4`                             | clamped to `0...($matrixSize / 2)`      | Size of the quiet zone                                                                                                                                                                  |
+| `$outputType`                  | `string`       | `QROutputInterface::MARKUP_SVG` | `QROutputInterface::XXX`                | The built-in output type, XXX can be one of: `MARKUP_HTML`, `MARKUP_SVG`, `GDIMAGE_PNG`, `GDIMAGE_JPG`, `GDIMAGE_GIF`, `STRING_TEXT`, `STRING_JSON`, `IMAGICK`, `EPS`, `FPDF`, `CUSTOM` |
+| `$outputInterface`             | `string\|null` | `null`                          | *                                       | The FQCN of the custom `QROutputInterface` if `QROptions::$outputType` is set to `QROutputInterface::CUSTOM`                                                                            |
+| `$returnResource`              | `bool`         | `false`                         | *                                       | Return the image resource instead of a render if applicable.                                                                                                                            |
+| `$cachefile`                   | `string\|null` | `null`                          | *                                       | Optional cache file path                                                                                                                                                                |
+| `$imageBase64`                 | `bool`         | `true`                          | *                                       | Toggle base64 or raw image data (if applicable)                                                                                                                                         |
+| `$eol`                         | `string`       | `PHP_EOL`                       | *                                       | Newline string (HTML, SVG, TEXT)                                                                                                                                                        |
+| `$bgColor`                     | `mixed`        | `null`                          | a valid FPDF, GD or Imagick color value | Sets the image background color (if applicable). QRImagick: defaults to "white", QRGdImage: defaults to [255, 255, 255], QRFpdf: defaults to blank internally (white page)              |
+| `$drawLightModules`            | `bool`         | `true`                          | *                                       | Whether to draw the light (false) modules                                                                                                                                               |
+| `$drawCircularModules`         | `bool`         | `false`                         | *                                       | Specify whether to draw the modules as filled circles                                                                                                                                   |
+| `$circleRadius`                | `float`        | `0.45`                          | `0.1...0.75`                            | Specifies the radius of the modules when $svgDrawCircularModules is set to true                                                                                                         |
+| `$keepAsSquare`                | `array`        | `[]`                            | `int[]`                                 | Specifies which module types to exclude when $svgDrawCircularModules is set to true                                                                                                     |
+| `$connectPaths`                | `bool`         | `false`                         | *                                       | Whether to connect the paths for the several module types to avoid weird glitches when using gradients etc.                                                                             |
+| `$excludeFromConnect`          | `array`        | `[]`                            | `int[]`                                 | Specify which paths/patterns to exclude from connecting if $svgConnectPaths is set to true                                                                                              |
+| `$moduleValues`                | `array\|null`  | `null`                          | *                                       | Module values map, see [[Custom module values]]                                                                                                                                         |
+| `$addLogoSpace`                | `bool`         | `false`                         | *                                       | Toggles logo space creation                                                                                                                                                             |
+| `$logoSpaceWidth`              | `int\|null`    | `null`                          | *                                       | Width of the logo space                                                                                                                                                                 |
+| `$logoSpaceHeight`             | `int\|null`    | `null`                          | *                                       | Height of the logo space                                                                                                                                                                |
+| `$logoSpaceStartX`             | `int\|null`    | `null`                          | *                                       | Optional horizontal start position of the logo space (top left corner)                                                                                                                  |
+| `$logoSpaceStartY`             | `int\|null`    | `null`                          | *                                       | Optional vertical start position of the logo space (top left corner)                                                                                                                    |
+| `$scale`                       | `int`          | `5`                             | *                                       | Pixel size of a QR code module                                                                                                                                                          |
+| `$imageTransparent`            | `bool`         | `true`                          | *                                       | Toggle transparency (no jpeg support), QRGdImage and QRImagick only. The given `QROptions::$transparencyColor` is set as transparent                                                    |
+| `$transparencyColor`           | `mixed`        | `null`                          | a valid GD or Imagick color value       | Sets a transparency color for when `QROptions::$imageTransparent` is set to true. Defaults to `QROptions::$bgColor`.                                                                    |
+| `$pngCompression`              | `int`          | `-1`                            | `-1...9`                                | `imagepng()` compression level, -1 = auto                                                                                                                                               |
+| `$jpegQuality`                 | `int`          | `85`                            | `0...100`                               | `imagejpeg()` quality                                                                                                                                                                   |
+| `$imagickFormat`               | `string`       | `'png'`                         | *                                       | ImageMagick output type, see `Imagick::setType()`                                                                                                                                       |
+| `$cssClass`                    | `string`       | `'qrcode'`                      | *                                       | A common css class                                                                                                                                                                      |
+| `$markupDark`                  | `string`       | `'#000'`                        | *                                       | Markup substitute for dark (CSS value)                                                                                                                                                  |
+| `$markupLight`                 | `string`       | `'#fff'`                        | *                                       | Markup substitute for light (CSS value)                                                                                                                                                 |
+| `$svgAddXmlHeader`             | `bool`         | `true`                          | *                                       | Whether to add an XML header line or not, e.g. to embed the SVG directly in HTML                                                                                                        |
+| `$svgOpacity`                  | `float`        | `1.0`                           | `0...1`                                 | SVG opacity                                                                                                                                                                             |
+| `$svgDefs`                     | `string`       | `''`                            | *                                       | Anything in the [`<defs>`](https://developer.mozilla.org/docs/Web/SVG/Element/defs) tag                                                                                                 |
+| `$svgViewBoxSize`              | `int\|null`    | `null`                          | *                                       | SVG viewBox size. A single integer number which defines width/height of the [viewBox attribute](https://css-tricks.com/scale-svg/#article-header-id-3) `viewBox="0 0 x x"`.             |
+| `$svgPreserveAspectRatio`      | `string`       | `'xMidYMid'`                    | *                                       | See [preserveAspectRatio on MDN](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/preserveAspectRatio)                                                                        |
+| `$svgWidth`                    | `string\|null` | `null`                          | *                                       | Optional "width" attribute with the specified value (note that the value is not checked!)                                                                                               |
+| `$svgHeight`                   | `string\|null` | `null`                          | *                                       | Optional "height" attribute with the specified value (note that the value is not checked!)                                                                                              |
+| `$textDark`                    | `string`       | `'🔴'`                          | *                                       | String substitute for dark                                                                                                                                                              |
+| `$textLight`                   | `string`       | `'⭕'`                           | *                                       | String substitute for light                                                                                                                                                             |
+| `$fpdfMeasureUnit`             | `string`       | `'pt'`                          | *                                       | Measurement unit for FPDF output: pt, mm, cm, in                                                                                                                                        |
+| `$readerUseImagickIfAvailable` | `bool`         | `false`                         | *                                       | Use Imagick (if available) when reading QR Codes                                                                                                                                        |
+| `$readerGrayscale`             | `bool`         | `false`                         | *                                       | Grayscale the image before reading                                                                                                                                                      |
+| `$readerIncreaseContrast`      | `bool`         | `false`                         | *                                       | Increase the contrast before reading                                                                                                                                                    |

+ 29 - 0
_sources/API-QROutputInterface.md.txt

@@ -0,0 +1,29 @@
+# `QROutputInterface`
+
+The full phpDocumentor API documentation can be found at [chillerlan.github.io/php-qrcode](https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-Output-QROutputInterface.html).
+
+##  Methods
+
+| method                                | return  | description                                                         |
+|---------------------------------------|---------|---------------------------------------------------------------------|
+| (static) `moduleValueIsValid($value)` | `bool`  | Determines whether the given value is valid                         |
+| `dump(string $file = null)`           | `mixed` | Generates the output, optionally dumps it to a file, and returns it |
+
+##  Constants
+
+| name                    | description                                        |
+|-------------------------|----------------------------------------------------|
+| `MARKUP_HTML`           |                                                    |
+| `MARKUP_SVG`            |                                                    |
+| `GDIMAGE_PNG`           |                                                    |
+| `GDIMAGE_JPG`           |                                                    |
+| `GDIMAGE_GIF`           |                                                    |
+| `STRING_JSON`           |                                                    |
+| `STRING_TEXT`           |                                                    |
+| `IMAGICK`               |                                                    |
+| `FPDF`                  |                                                    |
+| `EPS`                   |                                                    |
+| `CUSTOM`                |                                                    |
+| `MODES`                 | Map of built-in output modes => class FQN          |
+| `DEFAULT_MODULE_VALUES` | Map of module type => default value                |
+| `LAYERNAMES`            | Map of module type => readable name (for CSS etc.) |

Разница между файлами не показана из-за своего большого размера
+ 80 - 0
_sources/Appendix-Glossary.md.txt


+ 50 - 31
_sources/Usage-Overview.md.txt

@@ -1,32 +1,39 @@
 # 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. <br>
+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).
+
+
 ## Features
 
 - Creation of [Model 2 QR Codes](https://www.qrcode.com/en/codes/model12.html), [Version 1 to 40](https://www.qrcode.com/en/about/version.html)
 - [ECC Levels](https://www.qrcode.com/en/about/error_correction.html) L/M/Q/H supported
 - Mixed mode support (encoding modes can be combined within a QR symbol). Supported modes:
-	- numeric
-	- alphanumeric
-	- 8-bit binary
-	- 13-bit double-byte kanji (Japanese, Shift-JIS) and hanzi (simplified Chinese, GB2312/GB18030) as [defined in GBT18284-2000](https://www.chinesestandard.net/PDF/English.aspx/GBT18284-2000)
+  - numeric
+  - alphanumeric
+  - 8-bit binary
+  - 13-bit double-byte:
+    - kanji (Japanese, Shift-JIS)
+    - hanzi (simplified Chinese, GB2312/GB18030) as [defined in GBT18284-2000](https://www.chinesestandard.net/PDF/English.aspx/GBT18284-2000)
 - Flexible, easily extensible output modules, built-in support for the following output formats:
-	- [GdImage](https://www.php.net/manual/book.image)
-	- [ImageMagick](https://www.php.net/manual/book.imagick)
-	- Markup types: SVG, HTML, etc.
-	- String types: JSON, plain text, etc.
-	- Encapsulated Postscript (EPS)
-	- PDF via [FPDF](https://github.com/setasign/fpdf)
+  - [GdImage](https://www.php.net/manual/book.image)
+  - [ImageMagick](https://www.php.net/manual/book.imagick)
+  - Markup types: SVG, HTML, etc.
+  - String types: JSON, plain text, etc.
+  - Encapsulated Postscript (EPS)
+  - PDF via [FPDF](https://github.com/setasign/fpdf)
 - QR Code reader (via GD and ImageMagick)
 
 
 ## Requirements
+
 - PHP 7.4+
-	- [`ext-mbstring`](https://www.php.net/manual/book.mbstring.php)
-	- optional:
-		- [`ext-fileinfo`](https://www.php.net/manual/book.fileinfo.php) (required by `QRImagick` output)
-		- [`ext-gd`](https://www.php.net/manual/book.image)
-		- [`ext-imagick`](https://github.com/Imagick/imagick) with [ImageMagick](https://imagemagick.org) installed
-		- [`setasign/fpdf`](https://github.com/setasign/fpdf) for the PDF output module
+  - [`ext-mbstring`](https://www.php.net/manual/book.mbstring.php)
+  - optional:
+    - [`ext-fileinfo`](https://www.php.net/manual/book.fileinfo.php) (required by `QRImagick` output)
+    - [`ext-gd`](https://www.php.net/manual/book.image)
+    - [`ext-imagick`](https://github.com/Imagick/imagick) with [ImageMagick](https://imagemagick.org) installed
+    - [`setasign/fpdf`](https://github.com/setasign/fpdf) for the PDF output module
 
 For the QR Code reader, either `ext-gd` or `ext-imagick` is required!
 
@@ -34,23 +41,35 @@ For the QR Code reader, either `ext-gd` or `ext-imagick` is required!
 ## Framework Integration
 
 - Drupal:
-	- [Two-factor Authentication `tfa`](https://www.drupal.org/project/tfa) (Drupal 8+)
-	- [Google Authenticator Login `ga_login`](https://www.drupal.org/project/ga_login) (deprecated, Drupal 7)
+  - [Two-factor Authentication `tfa`](https://www.drupal.org/project/tfa) (Drupal 8+)
+  - [Google Authenticator Login `ga_login`](https://www.drupal.org/project/ga_login) (deprecated, Drupal 7)
 - Symfony
-	- [phpqrcode-bundle](https://github.com/jonasarts/phpqrcode-bundle)
+  - [phpqrcode-bundle](https://github.com/jonasarts/phpqrcode-bundle)
 - WordPress:
-	- [wp-two-factor-auth](https://github.com/sjinks/wp-two-factor-auth)
-	- [simple-2fa](https://wordpress.org/plugins/simple-2fa/)
-	- [floating-share-button](https://github.com/qriouslad/floating-share-button)
+  - [wp-two-factor-auth](https://github.com/sjinks/wp-two-factor-auth)
+  - [simple-2fa](https://wordpress.org/plugins/simple-2fa/)
+  - [floating-share-button](https://github.com/qriouslad/floating-share-button)
 - WoltLab Suite
-	- [two-step-verification](http://pluginstore.woltlab.com/file/3007-two-step-verification/)
+  - [two-step-verification](http://pluginstore.woltlab.com/file/3007-two-step-verification/)
 - other uses:
-	- [dependents](https://github.com/chillerlan/php-qrcode/network/dependents) / [packages](https://github.com/chillerlan/php-qrcode/network/dependents?dependent_type=PACKAGE)
-	- [Appwrite](https://github.com/appwrite/appwrite)
-	- [Cachet](https://github.com/CachetHQ/Cachet)
-	- [GÉANT CAT](https://github.com/GEANT/CAT)
-	- [openITCOCKPIT](https://github.com/it-novum/openITCOCKPIT)
-	- [twill](https://github.com/area17/twill)
-	- [Elefant CMS](https://github.com/jbroadway/elefant)
+  - [dependents](https://github.com/chillerlan/php-qrcode/network/dependents) / [packages](https://github.com/chillerlan/php-qrcode/network/dependents?dependent_type=PACKAGE)
+  - [Appwrite](https://github.com/appwrite/appwrite)
+  - [Cachet](https://github.com/CachetHQ/Cachet)
+  - [GÉANT CAT](https://github.com/GEANT/CAT)
+  - [openITCOCKPIT](https://github.com/it-novum/openITCOCKPIT)
+  - [twill](https://github.com/area17/twill)
+  - [Elefant CMS](https://github.com/jbroadway/elefant)
 - Articles:
-	- [Twilio: How to Create a QR Code in PHP](https://www.twilio.com/blog/create-qr-code-in-php) (featuring v4.3.x)
+  - [Twilio: How to Create a QR Code in PHP](https://www.twilio.com/blog/create-qr-code-in-php) (featuring v4.3.x)
+
+
+## Shameless advertising
+
+Hi, please check out some of my other projects that are way cooler than qrcodes!
+
+- [js-qrcode](https://github.com/chillerlan/js-qrcode) - a javascript port of this library
+- [php-authenticator](https://github.com/chillerlan/php-authenticator) - a Google Authenticator implementation (see [authenticator example](https://github.com/chillerlan/php-qrcode/blob/main/examples/authenticator.php))
+- [php-httpinterface](https://github.com/chillerlan/php-httpinterface) - a PSR-7/15/17/18 implemetation
+- [php-oauth-core](https://github.com/chillerlan/php-oauth-core) - an OAuth 1/2 client library along with a bunch of [providers](https://github.com/chillerlan/php-oauth-providers)
+- [php-database](https://github.com/chillerlan/php-database) - a database client & querybuilder for MySQL, Postgres, SQLite, MSSQL, Firebird
+- [php-tootbot](https://github.com/php-tootbot/tootbot-template) - a Mastodon bot library

+ 11 - 0
_sources/index.rst.txt

@@ -17,9 +17,20 @@ This work is licensed under the Creative Commons Attribution 4.0 International (
    Usage-Quickstart
    Usage-Advanced-usage
 
+.. toctree::
+   :maxdepth: 3
+   :caption: Public API
+
+   API-QRCode
+   API-QROptions
+   API-QROutputInterface
+   API-QRMatrix
+   API-DecoderResult
+
 .. toctree::
    :maxdepth: 3
    :caption: Appendix
 
+   Appendix-Glossary
    Appendix-License
 

+ 79 - 0
genindex.html

@@ -46,6 +46,7 @@
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#features">Features</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#requirements">Requirements</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#shameless-advertising">Shameless advertising</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="Usage-Installation.html">Installation</a><ul>
@@ -92,8 +93,86 @@
 </ul>
 </li>
 </ul>
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="API-QRCode.html"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROptions.html"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROutputInterface.html"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QRMatrix.html"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRMatrix.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-DecoderResult.html"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
 <p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="Appendix-License.html">License</a></li>
 </ul>
 

+ 161 - 1
index.html

@@ -48,6 +48,7 @@
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#features">Features</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#requirements">Requirements</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#shameless-advertising">Shameless advertising</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="Usage-Installation.html">Installation</a><ul>
@@ -94,8 +95,86 @@
 </ul>
 </li>
 </ul>
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="API-QRCode.html"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROptions.html"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROutputInterface.html"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QRMatrix.html"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRMatrix.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-DecoderResult.html"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
 <p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="Appendix-License.html">License</a></li>
 </ul>
 
@@ -125,7 +204,7 @@
              
   <section id="php-qrcode-manual">
 <h1>PHP-QRCode Manual<a class="headerlink" href="#php-qrcode-manual" title="Permalink to this heading"></a></h1>
-<p>Edition for <a class="reference external" href="https://github.com/chillerlan/php-qrcode/">chillerlan/php-qrcode</a>  [main]. Updated on Jul 11, 2023.</p>
+<p>Edition for <a class="reference external" href="https://github.com/chillerlan/php-qrcode/">chillerlan/php-qrcode</a>  [main]. Updated on Jul 13, 2023.</p>
 <p>This work is licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0) License.</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Usage</span></p>
@@ -134,6 +213,7 @@
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#features">Features</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#requirements">Requirements</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#shameless-advertising">Shameless advertising</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="Usage-Installation.html">Installation</a><ul>
@@ -179,8 +259,88 @@
 </ul>
 </div>
 <div class="toctree-wrapper compound">
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="API-QRCode.html"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROptions.html"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROutputInterface.html"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QRMatrix.html"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRMatrix.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-DecoderResult.html"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="Appendix-License.html">License</a></li>
 </ul>
 </div>


+ 79 - 0
search.html

@@ -49,6 +49,7 @@
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#features">Features</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#requirements">Requirements</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage-Overview.html#shameless-advertising">Shameless advertising</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="Usage-Installation.html">Installation</a><ul>
@@ -95,8 +96,86 @@
 </ul>
 </li>
 </ul>
+<p class="caption" role="heading"><span class="caption-text">Public API</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="API-QRCode.html"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRCode.html#constants">Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRCode.html#deprecated-constants">Deprecated constants</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROptions.html"><code class="docutils literal notranslate"><span class="pre">QROptions</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROptions.html#properties">Properties</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QROutputInterface.html"><code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-QROutputInterface.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-QRMatrix.html"><code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="API-QRMatrix.html#deprecated-methods">Deprecated methods</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="API-QRMatrix.html#constants">Constants</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="API-DecoderResult.html"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#methods">Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="API-DecoderResult.html#magic-properties-read-only">Magic Properties (read-only)</a></li>
+</ul>
+</li>
+</ul>
 <p class="caption" role="heading"><span class="caption-text">Appendix</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="Appendix-Glossary.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Appendix-Glossary.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Appendix-Glossary.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="Appendix-License.html">License</a></li>
 </ul>
 

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
searchindex.js


Некоторые файлы не были показаны из-за большого количества измененных файлов