2 Commits ec4b5f74cc ... 45dc0e053f

Auteur SHA1 Bericht Datum
  codemasher 45dc0e053f Deploying to readthedocs from @ chillerlan/php-qrcode@c55c64dfa035a3c3ad91a4e13ed10bcd5a3c6807 🚀 1 maand geleden
  codemasher 8afe707d78 Deploying to readthedocs from @ chillerlan/php-qrcode@5536c2615590184d9e086b751bd13672db9d8d4e 🚀 1 maand geleden

+ 1 - 1
.buildinfo

@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # Sphinx build info version 1
 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 63273aca51fbfaa3fb0a7f6947383520
+config: 7101700c690aacfd458b1e800326de79
 tags: 645f666f9bcd5a90fca523b33c5a78b7
 tags: 645f666f9bcd5a90fca523b33c5a78b7

+ 13 - 4
Appendix/Contribute.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -429,7 +438,7 @@ The markdown sources for the <a class="reference external" href="https://php-qrc
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Appendix/License.html

@@ -74,7 +74,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -88,14 +87,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -148,6 +145,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -811,7 +820,7 @@ Creative Commons may be contacted at creativecommons.org.
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 30 - 99
Appendix/Performance-considerations.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -396,70 +405,31 @@ encoding those characters as 3 or 4 byte UTF-8 may still be faster in 8-bit byte
 is a complex and costly operation that is necessary to ensure the symbol is readable. Although <a class="reference internal" href="../Usage/Configuration-settings.html#maskpattern"><span class="std std-ref">there is an option</span></a>
 is a complex and costly operation that is necessary to ensure the symbol is readable. Although <a class="reference internal" href="../Usage/Configuration-settings.html#maskpattern"><span class="std std-ref">there is an option</span></a>
 to override the evaluation and manually set a mask pattern, this is not recommended unless you know exactly what you’re doing
 to override the evaluation and manually set a mask pattern, this is not recommended unless you know exactly what you’re doing
 as it can render a QR symbol unreadable.</p>
 as it can render a QR symbol unreadable.</p>
-<p>The table below shows the performance impact (in miliseconds) of the mask pattern evaluation for each version, the times may vary between systems.</p>
+<p>The table below shows the performance impact (in miliseconds) of the mask pattern evaluation for select versions, the times may vary between systems.</p>
 <table class="docutils align-default">
 <table class="docutils align-default">
 <thead>
 <thead>
 <tr class="row-odd"><th class="head"><p>version</p></th>
 <tr class="row-odd"><th class="head"><p>version</p></th>
-<th class="head text-right"><p>1</p></th>
-<th class="head text-right"><p>2</p></th>
-<th class="head text-right"><p>3</p></th>
-<th class="head text-right"><p>4</p></th>
-<th class="head text-right"><p>5</p></th>
-<th class="head text-right"><p>6</p></th>
-<th class="head text-right"><p>7</p></th>
-<th class="head text-right"><p>8</p></th>
-<th class="head text-right"><p>9</p></th>
-<th class="head text-right"><p>10</p></th>
+<th class="head text-right"><p>time (ms)</p></th>
 </tr>
 </tr>
 </thead>
 </thead>
 <tbody>
 <tbody>
-<tr class="row-even"><td><p><strong>1-10</strong></p></td>
-<td class="text-right"><p>4.414</p></td>
-<td class="text-right"><p>5.697</p></td>
-<td class="text-right"><p>7.986</p></td>
-<td class="text-right"><p>9.221</p></td>
-<td class="text-right"><p>10.877</p></td>
-<td class="text-right"><p>11.293</p></td>
-<td class="text-right"><p>13.901</p></td>
-<td class="text-right"><p>15.563</p></td>
-<td class="text-right"><p>18.142</p></td>
-<td class="text-right"><p>20.501</p></td>
+<tr class="row-even"><td><p><strong>1</strong></p></td>
+<td class="text-right"><p>2.285</p></td>
+</tr>
+<tr class="row-odd"><td><p><strong>5</strong></p></td>
+<td class="text-right"><p>5.867</p></td>
+</tr>
+<tr class="row-even"><td><p><strong>10</strong></p></td>
+<td class="text-right"><p>12.737</p></td>
 </tr>
 </tr>
-<tr class="row-odd"><td><p><strong>11-20</strong></p></td>
-<td class="text-right"><p>22.662</p></td>
-<td class="text-right"><p>27.779</p></td>
-<td class="text-right"><p>29.622</p></td>
-<td class="text-right"><p>33.017</p></td>
-<td class="text-right"><p>36.358</p></td>
-<td class="text-right"><p>39.712</p></td>
-<td class="text-right"><p>43.685</p></td>
-<td class="text-right"><p>47.121</p></td>
-<td class="text-right"><p>51.389</p></td>
-<td class="text-right"><p>57.865</p></td>
+<tr class="row-odd"><td><p><strong>20</strong></p></td>
+<td class="text-right"><p>34.045</p></td>
 </tr>
 </tr>
-<tr class="row-even"><td><p><strong>21-30</strong></p></td>
-<td class="text-right"><p>59.753</p></td>
-<td class="text-right"><p>68.502</p></td>
-<td class="text-right"><p>68.523</p></td>
-<td class="text-right"><p>72.866</p></td>
-<td class="text-right"><p>78.245</p></td>
-<td class="text-right"><p>83.593</p></td>
-<td class="text-right"><p>88.327</p></td>
-<td class="text-right"><p>94.921</p></td>
-<td class="text-right"><p>103.394</p></td>
-<td class="text-right"><p>106.358</p></td>
+<tr class="row-even"><td><p><strong>30</strong></p></td>
+<td class="text-right"><p>64.914</p></td>
 </tr>
 </tr>
-<tr class="row-odd"><td><p><strong>31-40</strong></p></td>
-<td class="text-right"><p>113.311</p></td>
-<td class="text-right"><p>120.484</p></td>
-<td class="text-right"><p>126.215</p></td>
-<td class="text-right"><p>132.931</p></td>
-<td class="text-right"><p>139.783</p></td>
-<td class="text-right"><p>145.617</p></td>
-<td class="text-right"><p>170.576</p></td>
-<td class="text-right"><p>165.996</p></td>
-<td class="text-right"><p>167.365</p></td>
-<td class="text-right"><p>175.821</p></td>
+<tr class="row-odd"><td><p><strong>40</strong></p></td>
+<td class="text-right"><p>107.027</p></td>
 </tr>
 </tr>
 </tbody>
 </tbody>
 </table>
 </table>
@@ -467,7 +437,7 @@ as it can render a QR symbol unreadable.</p>
 <section id="output">
 <section id="output">
 <h2>Output<a class="headerlink" href="#output" title="Link to this heading"></a></h2>
 <h2>Output<a class="headerlink" href="#output" title="Link to this heading"></a></h2>
 <p>Output rendering depends heavily on the size of the QR matrix, the desired type and the underlying libraries and/or PHP extensions.
 <p>Output rendering depends heavily on the size of the QR matrix, the desired type and the underlying libraries and/or PHP extensions.
-Especially the rendering of raster images through GD or ImagMagick can be very slow, depending on <a class="reference internal" href="../Usage/Configuration-settings.html#scale"><span class="std std-ref">the scale setting</span></a>,
+Especially the rendering of raster images through GD or ImageMagick can be very slow, depending on <a class="reference internal" href="../Usage/Configuration-settings.html#scale"><span class="std std-ref">the scale setting</span></a>,
 filters and image type.</p>
 filters and image type.</p>
 <p>Below a comparison of the performance for the several built-in output classes (times in miliseconds, scale = 5):</p>
 <p>Below a comparison of the performance for the several built-in output classes (times in miliseconds, scale = 5):</p>
 <table class="docutils align-default">
 <table class="docutils align-default">
@@ -475,11 +445,8 @@ filters and image type.</p>
 <tr class="row-odd"><th class="head"><p></p></th>
 <tr class="row-odd"><th class="head"><p></p></th>
 <th class="head text-right"><p>v5</p></th>
 <th class="head text-right"><p>v5</p></th>
 <th class="head text-right"><p>v10</p></th>
 <th class="head text-right"><p>v10</p></th>
-<th class="head text-right"><p>v15</p></th>
 <th class="head text-right"><p>v20</p></th>
 <th class="head text-right"><p>v20</p></th>
-<th class="head text-right"><p>v25</p></th>
 <th class="head text-right"><p>v30</p></th>
 <th class="head text-right"><p>v30</p></th>
-<th class="head text-right"><p>v35</p></th>
 <th class="head text-right"><p>v40</p></th>
 <th class="head text-right"><p>v40</p></th>
 </tr>
 </tr>
 </thead>
 </thead>
@@ -487,121 +454,85 @@ filters and image type.</p>
 <tr class="row-even"><td><p><strong>QRMarkupSVG</strong></p></td>
 <tr class="row-even"><td><p><strong>QRMarkupSVG</strong></p></td>
 <td class="text-right"><p>3.732</p></td>
 <td class="text-right"><p>3.732</p></td>
 <td class="text-right"><p>8.645</p></td>
 <td class="text-right"><p>8.645</p></td>
-<td class="text-right"><p>13.846</p></td>
 <td class="text-right"><p>21.127</p></td>
 <td class="text-right"><p>21.127</p></td>
-<td class="text-right"><p>32.842</p></td>
 <td class="text-right"><p>43.753</p></td>
 <td class="text-right"><p>43.753</p></td>
-<td class="text-right"><p>56.584</p></td>
 <td class="text-right"><p>73.885</p></td>
 <td class="text-right"><p>73.885</p></td>
 </tr>
 </tr>
 <tr class="row-odd"><td><p><strong>QRMarkupHTML</strong></p></td>
 <tr class="row-odd"><td><p><strong>QRMarkupHTML</strong></p></td>
 <td class="text-right"><p>0.522</p></td>
 <td class="text-right"><p>0.522</p></td>
 <td class="text-right"><p>1.308</p></td>
 <td class="text-right"><p>1.308</p></td>
-<td class="text-right"><p>2.062</p></td>
 <td class="text-right"><p>2.761</p></td>
 <td class="text-right"><p>2.761</p></td>
-<td class="text-right"><p>3.907</p></td>
 <td class="text-right"><p>5.201</p></td>
 <td class="text-right"><p>5.201</p></td>
-<td class="text-right"><p>7.931</p></td>
 <td class="text-right"><p>9.572</p></td>
 <td class="text-right"><p>9.572</p></td>
 </tr>
 </tr>
 <tr class="row-even"><td><p><strong>QRGdImageBMP</strong></p></td>
 <tr class="row-even"><td><p><strong>QRGdImageBMP</strong></p></td>
 <td class="text-right"><p>5.998</p></td>
 <td class="text-right"><p>5.998</p></td>
 <td class="text-right"><p>12.541</p></td>
 <td class="text-right"><p>12.541</p></td>
-<td class="text-right"><p>20.728</p></td>
 <td class="text-right"><p>32.336</p></td>
 <td class="text-right"><p>32.336</p></td>
-<td class="text-right"><p>46.345</p></td>
 <td class="text-right"><p>62.842</p></td>
 <td class="text-right"><p>62.842</p></td>
-<td class="text-right"><p>81.555</p></td>
 <td class="text-right"><p>106.482</p></td>
 <td class="text-right"><p>106.482</p></td>
 </tr>
 </tr>
 <tr class="row-odd"><td><p><strong>QRGdImageGIF</strong></p></td>
 <tr class="row-odd"><td><p><strong>QRGdImageGIF</strong></p></td>
 <td class="text-right"><p>3.427</p></td>
 <td class="text-right"><p>3.427</p></td>
 <td class="text-right"><p>6.817</p></td>
 <td class="text-right"><p>6.817</p></td>
-<td class="text-right"><p>12.226</p></td>
 <td class="text-right"><p>17.925</p></td>
 <td class="text-right"><p>17.925</p></td>
-<td class="text-right"><p>25.453</p></td>
 <td class="text-right"><p>35.136</p></td>
 <td class="text-right"><p>35.136</p></td>
-<td class="text-right"><p>44.706</p></td>
 <td class="text-right"><p>57.477</p></td>
 <td class="text-right"><p>57.477</p></td>
 </tr>
 </tr>
 <tr class="row-even"><td><p><strong>QRGdImageJPEG</strong></p></td>
 <tr class="row-even"><td><p><strong>QRGdImageJPEG</strong></p></td>
 <td class="text-right"><p>2.284</p></td>
 <td class="text-right"><p>2.284</p></td>
 <td class="text-right"><p>4.882</p></td>
 <td class="text-right"><p>4.882</p></td>
-<td class="text-right"><p>8.161</p></td>
 <td class="text-right"><p>12.097</p></td>
 <td class="text-right"><p>12.097</p></td>
-<td class="text-right"><p>17.333</p></td>
 <td class="text-right"><p>23.862</p></td>
 <td class="text-right"><p>23.862</p></td>
-<td class="text-right"><p>30.327</p></td>
 <td class="text-right"><p>40.226</p></td>
 <td class="text-right"><p>40.226</p></td>
 </tr>
 </tr>
 <tr class="row-odd"><td><p><strong>QRGdImagePNG</strong></p></td>
 <tr class="row-odd"><td><p><strong>QRGdImagePNG</strong></p></td>
 <td class="text-right"><p>4.523</p></td>
 <td class="text-right"><p>4.523</p></td>
 <td class="text-right"><p>9.377</p></td>
 <td class="text-right"><p>9.377</p></td>
-<td class="text-right"><p>16.581</p></td>
 <td class="text-right"><p>26.207</p></td>
 <td class="text-right"><p>26.207</p></td>
-<td class="text-right"><p>36.516</p></td>
 <td class="text-right"><p>49.066</p></td>
 <td class="text-right"><p>49.066</p></td>
-<td class="text-right"><p>63.765</p></td>
 <td class="text-right"><p>82.074</p></td>
 <td class="text-right"><p>82.074</p></td>
 </tr>
 </tr>
 <tr class="row-even"><td><p><strong>QRGdImageWEBP</strong></p></td>
 <tr class="row-even"><td><p><strong>QRGdImageWEBP</strong></p></td>
 <td class="text-right"><p>8.211</p></td>
 <td class="text-right"><p>8.211</p></td>
 <td class="text-right"><p>17.367</p></td>
 <td class="text-right"><p>17.367</p></td>
-<td class="text-right"><p>30.079</p></td>
 <td class="text-right"><p>47.095</p></td>
 <td class="text-right"><p>47.095</p></td>
-<td class="text-right"><p>69.668</p></td>
 <td class="text-right"><p>91.378</p></td>
 <td class="text-right"><p>91.378</p></td>
-<td class="text-right"><p>119.869</p></td>
 <td class="text-right"><p>150.288</p></td>
 <td class="text-right"><p>150.288</p></td>
 </tr>
 </tr>
 <tr class="row-odd"><td><p><strong>QRStringJSON</strong></p></td>
 <tr class="row-odd"><td><p><strong>QRStringJSON</strong></p></td>
 <td class="text-right"><p>0.043</p></td>
 <td class="text-right"><p>0.043</p></td>
 <td class="text-right"><p>0.066</p></td>
 <td class="text-right"><p>0.066</p></td>
-<td class="text-right"><p>0.107</p></td>
 <td class="text-right"><p>0.158</p></td>
 <td class="text-right"><p>0.158</p></td>
-<td class="text-right"><p>0.215</p></td>
 <td class="text-right"><p>0.301</p></td>
 <td class="text-right"><p>0.301</p></td>
-<td class="text-right"><p>0.369</p></td>
 <td class="text-right"><p>0.492</p></td>
 <td class="text-right"><p>0.492</p></td>
 </tr>
 </tr>
 <tr class="row-even"><td><p><strong>QRStringText</strong></p></td>
 <tr class="row-even"><td><p><strong>QRStringText</strong></p></td>
 <td class="text-right"><p>0.229</p></td>
 <td class="text-right"><p>0.229</p></td>
 <td class="text-right"><p>0.387</p></td>
 <td class="text-right"><p>0.387</p></td>
-<td class="text-right"><p>0.628</p></td>
 <td class="text-right"><p>0.952</p></td>
 <td class="text-right"><p>0.952</p></td>
-<td class="text-right"><p>1.312</p></td>
 <td class="text-right"><p>1.759</p></td>
 <td class="text-right"><p>1.759</p></td>
-<td class="text-right"><p>2.329</p></td>
 <td class="text-right"><p>3.045</p></td>
 <td class="text-right"><p>3.045</p></td>
 </tr>
 </tr>
 <tr class="row-odd"><td><p><strong>QRImagick</strong></p></td>
 <tr class="row-odd"><td><p><strong>QRImagick</strong></p></td>
 <td class="text-right"><p>37.694</p></td>
 <td class="text-right"><p>37.694</p></td>
 <td class="text-right"><p>68.808</p></td>
 <td class="text-right"><p>68.808</p></td>
-<td class="text-right"><p>114.415</p></td>
 <td class="text-right"><p>172.962</p></td>
 <td class="text-right"><p>172.962</p></td>
-<td class="text-right"><p>242.338</p></td>
 <td class="text-right"><p>325.085</p></td>
 <td class="text-right"><p>325.085</p></td>
-<td class="text-right"><p>419.999</p></td>
 <td class="text-right"><p>529.897</p></td>
 <td class="text-right"><p>529.897</p></td>
 </tr>
 </tr>
 <tr class="row-even"><td><p><strong>QRFpdf</strong></p></td>
 <tr class="row-even"><td><p><strong>QRFpdf</strong></p></td>
 <td class="text-right"><p>6.578</p></td>
 <td class="text-right"><p>6.578</p></td>
 <td class="text-right"><p>12.466</p></td>
 <td class="text-right"><p>12.466</p></td>
-<td class="text-right"><p>21.169</p></td>
 <td class="text-right"><p>33.021</p></td>
 <td class="text-right"><p>33.021</p></td>
-<td class="text-right"><p>45.469</p></td>
 <td class="text-right"><p>61.198</p></td>
 <td class="text-right"><p>61.198</p></td>
-<td class="text-right"><p>80.092</p></td>
 <td class="text-right"><p>100.059</p></td>
 <td class="text-right"><p>100.059</p></td>
 </tr>
 </tr>
 <tr class="row-odd"><td><p><strong>QREps</strong></p></td>
 <tr class="row-odd"><td><p><strong>QREps</strong></p></td>
 <td class="text-right"><p>1.269</p></td>
 <td class="text-right"><p>1.269</p></td>
 <td class="text-right"><p>2.694</p></td>
 <td class="text-right"><p>2.694</p></td>
-<td class="text-right"><p>4.515</p></td>
 <td class="text-right"><p>6.933</p></td>
 <td class="text-right"><p>6.933</p></td>
-<td class="text-right"><p>11.049</p></td>
 <td class="text-right"><p>14.181</p></td>
 <td class="text-right"><p>14.181</p></td>
-<td class="text-right"><p>20.799</p></td>
 <td class="text-right"><p>25.886</p></td>
 <td class="text-right"><p>25.886</p></td>
 </tr>
 </tr>
 </tbody>
 </tbody>
@@ -620,7 +551,7 @@ filters and image type.</p>
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 14 - 5
Appendix/Terminology.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -363,7 +372,7 @@
 <h1>Terminology<a class="headerlink" href="#terminology" title="Link to this heading"></a></h1>
 <h1>Terminology<a class="headerlink" href="#terminology" title="Link to this heading"></a></h1>
 <section id="qr-code">
 <section id="qr-code">
 <h2>QR Code<a class="headerlink" href="#qr-code" title="Link to this heading"></a></h2>
 <h2>QR Code<a class="headerlink" href="#qr-code" title="Link to this heading"></a></h2>
-<p>A <a class="reference external" href="https://en.wikipedia.org/wiki/QR_code"><em>QR code</em></a> (quick-response code) is a type of two-dimensional matrix barcode, invented
+<p>A <a class="reference external" href="https://en.wikipedia.org/wiki/QR_code"><em>QR code</em></a> (quick-response code), sometimes referred to as  <em>QR symbol</em> or simply just <em>symbol</em>, is a type of two-dimensional matrix barcode, invented
 in 1994 by Japanese company <a class="reference external" href="https://www.qrcode.com/en/faq.html#patentH2Title">Denso Wave</a> for labelling automobile parts.
 in 1994 by Japanese company <a class="reference external" href="https://www.qrcode.com/en/faq.html#patentH2Title">Denso Wave</a> for labelling automobile parts.
 The QR labelling system was applied beyond the automobile industry due to its fast readability and greater storage capacity
 The QR labelling system was applied beyond the automobile industry due to its fast readability and greater storage capacity
 compared to standard UPC barcodes.
 compared to standard UPC barcodes.
@@ -824,7 +833,7 @@ reflectance reversal therefore means a light image on dark background (example o
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Appendix/URI-Content.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -699,7 +708,7 @@ END:VCALENDAR
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Built-In-Output/QREps.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -463,7 +472,7 @@
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Built-In-Output/QRFpdf.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -471,7 +480,7 @@
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Built-In-Output/QRGdImage.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -518,7 +527,7 @@
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Built-In-Output/QRImagick.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -516,7 +525,7 @@
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Built-In-Output/QRInterventionImage.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -501,7 +510,7 @@
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Built-In-Output/QRMarkupHTML.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -476,7 +485,7 @@ As a general rule: if you plan to display the QR Code in a web browser, you shou
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Built-In-Output/QRMarkupSVG.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -519,7 +528,7 @@
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Built-In-Output/QRMarkupXML.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -496,7 +505,7 @@
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Built-In-Output/QRStringJSON.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -439,7 +448,7 @@ which is equivalent to the following:</p>
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Built-In-Output/QRStringText.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -448,7 +457,7 @@ render in a CLI console, using <a class="reference external" href="https://en.wi
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Customizing/Custom-output-interface.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul class="current">
 <ul class="current">
@@ -585,7 +594,7 @@ x: 6, y: 4
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 15 - 6
Customizing/Module-Values.html

@@ -21,7 +21,7 @@
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
     <link rel="search" title="Search" href="../search.html" />
     <link rel="next" title="QROutputAbstract" href="QROutputAbstract.html" />
     <link rel="next" title="QROutputAbstract" href="QROutputAbstract.html" />
-    <link rel="prev" title="Configuration settings" href="../Usage/Configuration-settings.html" /> 
+    <link rel="prev" title="Logos and logo space" href="../Usage/Logos.html" /> 
 </head>
 </head>
 
 
 <body class="wy-body-for-nav"> 
 <body class="wy-body-for-nav"> 
@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul class="current">
 <ul class="current">
@@ -564,14 +573,14 @@ for RGB color (or 4 in case of RGBA), we’ll supply these as a array where each
            </div>
            </div>
           </div>
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
-        <a href="../Usage/Configuration-settings.html" class="btn btn-neutral float-left" title="Configuration settings" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="../Usage/Logos.html" class="btn btn-neutral float-left" title="Logos and logo space" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
         <a href="QROutputAbstract.html" class="btn btn-neutral float-right" title="QROutputAbstract" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
         <a href="QROutputAbstract.html" class="btn btn-neutral float-right" title="QROutputAbstract" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
     </div>
 
 
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Customizing/QROutputAbstract.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul class="current">
 <ul class="current">
@@ -606,7 +615,7 @@ The final output can be transformed to a <a class="reference external" href="htt
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 14 - 39
Usage/Advanced-usage.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </li>
-<li class="toctree-l2"><a class="reference internal" href="Quickstart.html#reading-qr-codes">Reading QR Codes</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Quickstart.html#notes">Notes</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <li class="toctree-l2"><a class="reference internal" href="#qrcode-methods"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code> methods</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="#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="#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="#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="#mixed-mode">Mixed mode</a></li>
 <li class="toctree-l3"><a class="reference internal" href="#mixed-mode">Mixed mode</a></li>
-<li class="toctree-l3"><a class="reference internal" href="#qr-code-reader">QR Code reader</a></li>
 </ul>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="#common-output-options">Common output options</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -513,7 +522,7 @@ After invocation of the <code class="docutils literal notranslate"><span class="
 <span class="nv">$qrcode</span><span class="o">-&gt;</span><span class="na">render</span><span class="p">(</span><span class="k">null</span><span class="p">,</span> <span class="s1">&#39;/path/to/qrcode.svg&#39;</span><span class="p">);</span>
 <span class="nv">$qrcode</span><span class="o">-&gt;</span><span class="na">render</span><span class="p">(</span><span class="k">null</span><span class="p">,</span> <span class="s1">&#39;/path/to/qrcode.svg&#39;</span><span class="p">);</span>
 </pre></div>
 </pre></div>
 </div>
 </div>
-<p>The <a class="reference external" href="https://github.com/chillerlan/php-qrcode/blob/main/src/Data/QRDataModeInterface.php"><code class="docutils literal notranslate"><span class="pre">QRDataModeInterface</span></code></a> offers the <code class="docutils literal notranslate"><span class="pre">validateString()</span></code> method (implemended for <code class="docutils literal notranslate"><span class="pre">AlphaNum</span></code>, <code class="docutils literal notranslate"><span class="pre">Byte</span></code>, <code class="docutils literal notranslate"><span class="pre">Hanzi</span></code>, <code class="docutils literal notranslate"><span class="pre">Kanji</span></code> and <code class="docutils literal notranslate"><span class="pre">Number</span></code>).
+<p>The <a class="reference external" href="https://github.com/chillerlan/php-qrcode/blob/main/src/Data/QRDataModeInterface.php"><code class="docutils literal notranslate"><span class="pre">QRDataModeInterface</span></code></a> offers the <code class="docutils literal notranslate"><span class="pre">validateString()</span></code> method (implemented for <code class="docutils literal notranslate"><span class="pre">AlphaNum</span></code>, <code class="docutils literal notranslate"><span class="pre">Byte</span></code>, <code class="docutils literal notranslate"><span class="pre">Hanzi</span></code>, <code class="docutils literal notranslate"><span class="pre">Kanji</span></code> and <code class="docutils literal notranslate"><span class="pre">Number</span></code>).
 This method is used internally when a data mode is invoked, but it can come in handy if you need to check input data beforehand.</p>
 This method is used internally when a data mode is invoked, but it can come in handy if you need to check input data beforehand.</p>
 <div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">Hanzi</span><span class="o">::</span><span class="na">validateString</span><span class="p">(</span><span class="nv">$data</span><span class="p">)){</span>
 <div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">Hanzi</span><span class="o">::</span><span class="na">validateString</span><span class="p">(</span><span class="nv">$data</span><span class="p">)){</span>
 	<span class="k">throw</span> <span class="k">new</span> <span class="nx">Exception</span><span class="p">(</span><span class="s1">&#39;invalid GB2312 data&#39;</span><span class="p">);</span>
 	<span class="k">throw</span> <span class="k">new</span> <span class="nx">Exception</span><span class="p">(</span><span class="s1">&#39;invalid GB2312 data&#39;</span><span class="p">);</span>
@@ -523,30 +532,6 @@ This method is used internally when a data mode is invoked, but it can come in h
 </pre></div>
 </pre></div>
 </div>
 </div>
 </section>
 </section>
-<section id="qr-code-reader">
-<h3>QR Code reader<a class="headerlink" href="#qr-code-reader" title="Link to this heading"></a></h3>
-<p>In some cases it might be necessary to increase the contrast of a QR Code image:</p>
-<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="nv">$options</span><span class="o">-&gt;</span><span class="na">readerUseImagickIfAvailable</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span>
-<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">readerIncreaseContrast</span>      <span class="o">=</span> <span class="k">true</span><span class="p">;</span>
-<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">readerGrayscale</span>             <span class="o">=</span> <span class="k">true</span><span class="p">;</span>
-
-<span class="nv">$qrcode</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">QRCode</span><span class="p">(</span><span class="nv">$options</span><span class="p">);</span>
-
-<span class="nv">$result</span> <span class="o">=</span> <span class="nv">$qrcode</span><span class="o">-&gt;</span><span class="na">readFromFile</span><span class="p">(</span><span class="s1">&#39;path/to/qrcode.png&#39;</span><span class="p">);</span>
-<span class="nv">$result</span> <span class="o">=</span> <span class="nv">$qrcode</span><span class="o">-&gt;</span><span class="na">readFromBlob</span><span class="p">(</span><span class="nv">$imagedata</span><span class="p">);</span>
-</pre></div>
-</div>
-<p>The <code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code> object from the <a class="reference external" href="https://github.com/chillerlan/php-qrcode/blob/main/src/Decoder/DecoderResult.php"><code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code></a> can be reused:</p>
-<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="nv">$matrix</span> <span class="o">=</span> <span class="nv">$result</span><span class="o">-&gt;</span><span class="na">getQRMatrix</span><span class="p">();</span>
-
-<span class="c1">// ...matrix modification...</span>
-
-<span class="nv">$output</span> <span class="o">=</span> <span class="p">(</span><span class="k">new</span> <span class="nx">QRCode</span><span class="p">(</span><span class="nv">$options</span><span class="p">))</span><span class="o">-&gt;</span><span class="na">renderMatrix</span><span class="p">(</span><span class="nv">$matrix</span><span class="p">);</span>
-
-<span class="c1">// ...output</span>
-</pre></div>
-</div>
-</section>
 </section>
 </section>
 <section id="common-output-options">
 <section id="common-output-options">
 <h2>Common output options<a class="headerlink" href="#common-output-options" title="Link to this heading"></a></h2>
 <h2>Common output options<a class="headerlink" href="#common-output-options" title="Link to this heading"></a></h2>
@@ -594,16 +579,6 @@ This method is used internally when a data mode is invoked, but it can come in h
 </pre></div>
 </pre></div>
 </div>
 </div>
 </section>
 </section>
-<section id="add-a-logo-space">
-<h3>Add a logo space<a class="headerlink" href="#add-a-logo-space" title="Link to this heading"></a></h3>
-<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="nv">$options</span><span class="o">-&gt;</span><span class="na">addLogoSpace</span>    <span class="o">=</span> <span class="k">true</span><span class="p">;</span>
-<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">logoSpaceWidth</span>  <span class="o">=</span> <span class="mi">9</span><span class="p">;</span>
-<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">logoSpaceHeight</span> <span class="o">=</span> <span class="mi">9</span><span class="p">;</span>
-<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">logoSpaceStartX</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span>
-<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">logoSpaceStartY</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span>
-</pre></div>
-</div>
-</section>
 </section>
 </section>
 </section>
 </section>
 
 
@@ -618,7 +593,7 @@ This method is used internally when a data mode is invoked, but it can come in h
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 15 - 6
Usage/Configuration-settings.html

@@ -20,7 +20,7 @@
     <script src="../_static/js/theme.js"></script>
     <script src="../_static/js/theme.js"></script>
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
     <link rel="search" title="Search" href="../search.html" />
-    <link rel="next" title="Module values" href="../Customizing/Module-Values.html" />
+    <link rel="next" title="Reading QR Codes" href="Reading-QRCodes.html" />
     <link rel="prev" title="Advanced usage" href="Advanced-usage.html" /> 
     <link rel="prev" title="Advanced usage" href="Advanced-usage.html" /> 
 </head>
 </head>
 
 
@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </li>
-<li class="toctree-l2"><a class="reference internal" href="Quickstart.html#reading-qr-codes">Reading QR Codes</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Quickstart.html#notes">Notes</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <li class="toctree-l2"><a class="reference internal" href="Advanced-usage.html#qrcode-methods"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code> methods</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="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="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="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="Advanced-usage.html#mixed-mode">Mixed mode</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#mixed-mode">Mixed mode</a></li>
-<li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#qr-code-reader">QR Code reader</a></li>
 </ul>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -728,13 +737,13 @@ When set to <code class="docutils literal notranslate"><span class="pre">false</
           </div>
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
         <a href="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="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="../Customizing/Module-Values.html" class="btn btn-neutral float-right" title="Module values" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="Reading-QRCodes.html" class="btn btn-neutral float-right" title="Reading QR Codes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
     </div>
 
 
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 4
Usage/Installation.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </li>
-<li class="toctree-l2"><a class="reference internal" href="Quickstart.html#reading-qr-codes">Reading QR Codes</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Quickstart.html#notes">Notes</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <li class="toctree-l2"><a class="reference internal" href="Advanced-usage.html#qrcode-methods"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code> methods</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="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="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="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="Advanced-usage.html#mixed-mode">Mixed mode</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#mixed-mode">Mixed mode</a></li>
-<li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#qr-code-reader">QR Code reader</a></li>
 </ul>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -510,7 +519,7 @@ After that, run <code class="docutils literal notranslate"><span class="pre">com
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

File diff suppressed because it is too large
+ 429 - 0
Usage/Logos.html


+ 13 - 4
Usage/Overview.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </li>
-<li class="toctree-l2"><a class="reference internal" href="Quickstart.html#reading-qr-codes">Reading QR Codes</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Quickstart.html#notes">Notes</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <li class="toctree-l2"><a class="reference internal" href="Advanced-usage.html#qrcode-methods"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code> methods</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="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="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="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="Advanced-usage.html#mixed-mode">Mixed mode</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#mixed-mode">Mixed mode</a></li>
-<li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#qr-code-reader">QR Code reader</a></li>
 </ul>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -509,7 +518,7 @@ It also features a QR Code reader based on a <a class="reference external" href=
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 13 - 23
Usage/Quickstart.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </li>
-<li class="toctree-l2"><a class="reference internal" href="#reading-qr-codes">Reading QR Codes</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#notes">Notes</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <li class="toctree-l2"><a class="reference internal" href="Advanced-usage.html#qrcode-methods"><code class="docutils literal notranslate"><span class="pre">QRCode</span></code> methods</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="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="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="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="Advanced-usage.html#mixed-mode">Mixed mode</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#mixed-mode">Mixed mode</a></li>
-<li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#qr-code-reader">QR Code reader</a></li>
 </ul>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -397,25 +406,6 @@ and <a class="reference internal" href="Configuration-settings.html"><span class
 Also, have a look <a class="reference external" href="https://github.com/chillerlan/php-qrcode/tree/main/examples">in the examples folder</a> for some more usage examples.</p>
 Also, have a look <a class="reference external" href="https://github.com/chillerlan/php-qrcode/tree/main/examples">in the examples folder</a> for some more usage examples.</p>
 </section>
 </section>
 </section>
 </section>
-<section id="reading-qr-codes">
-<h2>Reading QR Codes<a class="headerlink" href="#reading-qr-codes" title="Link to this heading"></a></h2>
-<p>Using the built-in QR Code reader is pretty straight-forward:</p>
-<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="k">try</span><span class="p">{</span>
-	<span class="nv">$result</span> <span class="o">=</span> <span class="p">(</span><span class="k">new</span> <span class="nx">QRCode</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">readFromFile</span><span class="p">(</span><span class="s1">&#39;path/to/file.png&#39;</span><span class="p">);</span> <span class="c1">// -&gt; DecoderResult</span>
-
-	<span class="c1">// you can now use the result instance...</span>
-	<span class="nv">$content</span> <span class="o">=</span> <span class="nv">$result</span><span class="o">-&gt;</span><span class="na">data</span><span class="p">;</span>
-
-	<span class="c1">// ...or simply cast the result instance to string to get the content</span>
-	<span class="nv">$content</span> <span class="o">=</span> <span class="p">(</span><span class="nx">string</span><span class="p">)</span><span class="nv">$result</span><span class="p">;</span>
-<span class="p">}</span>
-<span class="k">catch</span><span class="p">(</span><span class="nx">Throwable</span> <span class="nv">$exception</span><span class="p">){</span>
-	<span class="c1">// handle exception...</span>
-<span class="p">}</span>
-</pre></div>
-</div>
-<p>It’s generally a good idea to wrap the reading in a try/catch block to handle any errors that may occur in the process.</p>
-</section>
 <section id="notes">
 <section id="notes">
 <h2>Notes<a class="headerlink" href="#notes" title="Link to this heading"></a></h2>
 <h2>Notes<a class="headerlink" href="#notes" title="Link to this heading"></a></h2>
 <p>The QR encoder, especially the subroutines for mask pattern testing, can cause high CPU load on increased matrix size.
 <p>The QR encoder, especially the subroutines for mask pattern testing, can cause high CPU load on increased matrix size.
@@ -435,7 +425,7 @@ Oh hey and don’t forget to sanitize any user input!</p>
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 489 - 0
Usage/Reading-QRCodes.html

@@ -0,0 +1,489 @@
+
+
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" data-content_root="../">
+<head>
+  <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
+
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>Reading QR Codes &mdash; PHP-QRCode main
+ Manual</title>
+      <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
+      <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=e59714d7" />
+
+  
+      <script src="../_static/jquery.js?v=5d32c60e"></script>
+      <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
+      <script src="../_static/documentation_options.js?v=a8da1a53"></script>
+      <script src="../_static/doctools.js?v=9bcbadda"></script>
+      <script src="../_static/sphinx_highlight.js?v=dc90522c"></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="Logos and logo space" href="Logos.html" />
+    <link rel="prev" title="Configuration settings" href="Configuration-settings.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 class="current">
+<li class="toctree-l1"><a class="reference internal" href="Overview.html">Overview</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Overview.html#features">Features</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Overview.html#requirements">Requirements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Overview.html#framework-integration">Framework Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Overview.html#shameless-advertising">Shameless advertising</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Installation.html">Installation</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Installation.html#installation-with-composer">Installation with Composer</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Installation.html#composer-json">composer.json</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="Installation.html#version-switch">Version switch</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="Installation.html#terminal">Terminal</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Installation.html#manual-installation">Manual installation</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="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="Installation.html#supported-php-versions-extension-requirements">Supported PHP versions &amp; extension requirements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Installation.html#imagemagick">ImageMagick</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Quickstart.html">Quickstart</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Quickstart.html#import-the-library">Import the library</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Quickstart.html#create-your-first-qr-code">Create your first QR Code</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Quickstart.html#configuration">Configuration</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Quickstart.html#notes">Notes</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Advanced-usage.html">Advanced usage</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="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="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="Advanced-usage.html#load-and-save-options-from-to-json">Load and save options from/to JSON</a></li>
+<li class="toctree-l3"><a class="reference internal" href="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="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="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="Advanced-usage.html#mixed-mode">Mixed mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="Advanced-usage.html#common-output-options">Common output options</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#save-to-file">Save to file</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
+<li class="toctree-l3"><a class="reference internal" href="Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Configuration-settings.html">Configuration settings</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#version">version</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#versionmin">versionMin</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#versionmax">versionMax</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#ecclevel">eccLevel</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#maskpattern">maskPattern</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#addquietzone">addQuietzone</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#quietzonesize">quietzoneSize</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#outputinterface">outputInterface</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#returnresource">returnResource</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#cachefile">cachefile</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#outputbase64">outputBase64</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#eol">eol</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#bgcolor">bgColor</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#invertmatrix">invertMatrix</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#drawlightmodules">drawLightModules</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#drawcircularmodules">drawCircularModules</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#circleradius">circleRadius</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#keepassquare">keepAsSquare</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#connectpaths">connectPaths</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#excludefromconnect">excludeFromConnect</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#modulevalues">moduleValues</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#addlogospace">addLogoSpace</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#logospacewidth">logoSpaceWidth</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#logospaceheight">logoSpaceHeight</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#logospacestartx">logoSpaceStartX</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#logospacestarty">logoSpaceStartY</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#scale">scale</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#imagetransparent">imageTransparent</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#transparencycolor">transparencyColor</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#quality">quality</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#gdimageuseupscale">gdImageUseUpscale</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#imagickformat">imagickFormat</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#cssclass">cssClass</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#svgaddxmlheader">svgAddXmlHeader</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#svgdefs">svgDefs</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#svgpreserveaspectratio">svgPreserveAspectRatio</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#svgusefillattributes">svgUseFillAttributes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#textlinestart">textLineStart</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#jsonflags">jsonFlags</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#fpdfmeasureunit">fpdfMeasureUnit</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#xmlstylesheet">xmlStylesheet</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#readeruseimagickifavailable">readerUseImagickIfAvailable</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#readergrayscale">readerGrayscale</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#readerinvertcolors">readerInvertColors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
+</ul>
+</li>
+<li class="toctree-l1 current"><a class="current reference internal" href="#">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../Customizing/Module-Values.html">Module values</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Customizing/Module-Values.html#basics">Basics</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Customizing/Module-Values.html#assigning-values">Assigning values</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Customizing/Module-Values.html#handling-in-your-own-qroutputinterface">Handling in your own <code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/Module-Values.html#setting-module-values">Setting module values</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/Module-Values.html#using-the-module-values">Using the module values</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Customizing/QROutputAbstract.html"><code class="docutils literal notranslate"><span class="pre">QROutputAbstract</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Customizing/QROutputAbstract.html#properties">Properties</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/QROutputAbstract.html#options-and-matrix"><code class="docutils literal notranslate"><span class="pre">$options</span></code> and <code class="docutils literal notranslate"><span class="pre">$matrix</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/QROutputAbstract.html#modulecount-scale-and-length"><code class="docutils literal notranslate"><span class="pre">$moduleCount</span></code>, <code class="docutils literal notranslate"><span class="pre">$scale</span></code> and <code class="docutils literal notranslate"><span class="pre">$length</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/QROutputAbstract.html#modulevalues"><code class="docutils literal notranslate"><span class="pre">$moduleValues</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/QROutputAbstract.html#copies-of-qroptions-values">Copies of <code class="docutils literal notranslate"><span class="pre">QROptions</span></code> values</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../Customizing/QROutputAbstract.html#methods">Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/QROutputAbstract.html#setmodulevalues"><code class="docutils literal notranslate"><span class="pre">setModuleValues()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/QROutputAbstract.html#modulevalueisvalid"><code class="docutils literal notranslate"><span class="pre">moduleValueIsValid()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/QROutputAbstract.html#preparemodulevalue"><code class="docutils literal notranslate"><span class="pre">prepareModuleValue()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/QROutputAbstract.html#getdefaultmodulevalue"><code class="docutils literal notranslate"><span class="pre">getDefaultModuleValue()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/QROutputAbstract.html#getmodulevalue-and-getmodulevalueat"><code class="docutils literal notranslate"><span class="pre">getModuleValue()</span></code> and <code class="docutils literal notranslate"><span class="pre">getModuleValueAt()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/QROutputAbstract.html#setmatrixdimensions"><code class="docutils literal notranslate"><span class="pre">setMatrixDimensions()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/QROutputAbstract.html#getoutputdimensions"><code class="docutils literal notranslate"><span class="pre">getOutputDimensions()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/QROutputAbstract.html#collectmodules"><code class="docutils literal notranslate"><span class="pre">collectModules()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Customizing/QROutputAbstract.html#savetofile-and-tobase64datauri"><code class="docutils literal notranslate"><span class="pre">saveToFile()</span></code> and <code class="docutils literal notranslate"><span class="pre">toBase64DataURI()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Customizing/Custom-output-interface.html">Custom <code class="docutils literal notranslate"><span class="pre">QROutputInterface</span></code></a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Customizing/Custom-output-interface.html#class-skeleton">Class skeleton</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Customizing/Custom-output-interface.html#module-values">Module values</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Customizing/Custom-output-interface.html#transform-the-output">Transform the output</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Customizing/Custom-output-interface.html#run-the-custom-output">Run the custom output</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Customizing/Custom-output-interface.html#summary">Summary</a></li>
+</ul>
+</li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Built-In Output Classes</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../Built-In-Output/QREps.html">QREps</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QREps.html#example">Example</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QREps.html#additional-methods">Additional methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QREps.html#options-that-affect-this-class">Options that affect this class</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Built-In-Output/QRFpdf.html">QRFpdf</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRFpdf.html#example">Example</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRFpdf.html#additional-methods">Additional methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRFpdf.html#options-that-affect-this-class">Options that affect this class</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Built-In-Output/QRGdImage.html">QRGdImage</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRGdImage.html#example">Example</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRGdImage.html#additional-methods">Additional methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRGdImage.html#options-that-affect-this-class">Options that affect this class</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Built-In-Output/QRImagick.html">QRImagick</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRImagick.html#example">Example</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRImagick.html#additional-methods">Additional methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRImagick.html#options-that-affect-this-class">Options that affect this class</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Built-In-Output/QRInterventionImage.html">QRInterventionImage</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRInterventionImage.html#example">Example</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRInterventionImage.html#additional-methods">Additional methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRInterventionImage.html#options-that-affect-this-class">Options that affect this class</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Built-In-Output/QRMarkupHTML.html">QRMarkupHTML</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRMarkupHTML.html#example">Example</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRMarkupHTML.html#additional-methods">Additional methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRMarkupHTML.html#options-that-affect-this-class">Options that affect this class</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Built-In-Output/QRMarkupSVG.html">QRMarkupSVG</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRMarkupSVG.html#example">Example</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRMarkupSVG.html#additional-methods">Additional methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRMarkupSVG.html#options-that-affect-this-class">Options that affect this class</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Built-In-Output/QRMarkupXML.html">QRMarkupXML</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRMarkupXML.html#example">Example</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRMarkupXML.html#additional-methods">Additional methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRMarkupXML.html#options-that-affect-this-class">Options that affect this class</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Built-In-Output/QRStringJSON.html">QRStringJSON</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRStringJSON.html#example">Example</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRStringJSON.html#previous-functionality">Previous functionality</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRStringJSON.html#additional-methods">Additional methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRStringJSON.html#options-that-affect-this-class">Options that affect this class</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Built-In-Output/QRStringText.html">QRStringText</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRStringText.html#example">Example</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRStringText.html#additional-methods">Additional methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Built-In-Output/QRStringText.html#options-that-affect-this-class">Options that affect this class</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/Terminology.html">Terminology</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Terminology.html#qr-code">QR Code</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Terminology.html#matrix">Matrix</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#module">Module</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#version">Version</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Terminology.html#function-patterns">Function Patterns</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#finder-pattern">Finder Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#alignment-pattern">Alignment Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#timing-pattern">Timing Pattern</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#separators">Separators</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#quiet-zone">Quiet Zone</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Terminology.html#encoding-region">Encoding Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#data">Data</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#version-information">Version Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#format-information">Format Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#darkmodule">Darkmodule</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Terminology.html#mode">Mode</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#segment">Segment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#extended-channel-interpretation-eci">Extended Channel Interpretation (ECI)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#mixed-mode">Mixed Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Terminology.html#ecc-error-correction-coding">ECC (Error Correction Coding)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#ecc-level">ECC Level</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#maximum-data-capacity">Maximum data capacity</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Terminology.html#data-masking">Data masking</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#evaluation">Evaluation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/Terminology.html#mask-pattern">Mask pattern</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Terminology.html#reflectance">Reflectance</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Appendix/URI-Content.html">Popular content and URI schemes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/URI-Content.html#url-https">URL <code class="docutils literal notranslate"><span class="pre">https</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/URI-Content.html#e-mail-mailto">E-Mail <code class="docutils literal notranslate"><span class="pre">mailto</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/URI-Content.html#phone-numbers-tel">Phone numbers <code class="docutils literal notranslate"><span class="pre">tel</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/URI-Content.html#geo-coordinates-geo">Geo Coordinates <code class="docutils literal notranslate"><span class="pre">geo</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/URI-Content.html#mobile-authenticators-otpauth">Mobile Authenticators <code class="docutils literal notranslate"><span class="pre">otpauth</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/URI-Content.html#wireless-network-configuration">Wireless Network configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/URI-Content.html#contact-information-vcard">Contact information: vCard</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/URI-Content.html#calendar-events-vcalendar-and-icalendar">Calendar Events: vCalendar and iCalendar</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/URI-Content.html#credit-transfer">Credit Transfer</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/URI-Content.html#sepa-european-payments-council">SEPA (European Payments Council)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../Appendix/URI-Content.html#pix-banco-central-do-brasil">Pix (Banco Central do Brasil)</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/URI-Content.html#see-also">See also</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Appendix/Performance-considerations.html">Performance considerations</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Performance-considerations.html#version">Version</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Performance-considerations.html#ecc-level">Ecc level</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Performance-considerations.html#data-mode">Data mode</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Performance-considerations.html#mask-pattern">Mask pattern</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Performance-considerations.html#output">Output</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../Appendix/Contribute.html">How to contribute</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Contribute.html#questions-and-issues">Questions and issues</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Contribute.html#bug-reports">Bug reports</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Contribute.html#pull-requests-and-bug-fixes">Pull requests and bug fixes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../Appendix/Contribute.html#documentation">Documentation</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">Reading QR Codes</li>
+      <li class="wy-breadcrumbs-aside">
+              <a href="https://github.com/chillerlan/php-qrcode/blob/main/docs/Usage/Reading-QRCodes.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="reading-qr-codes">
+<h1>Reading QR Codes<a class="headerlink" href="#reading-qr-codes" title="Link to this heading"></a></h1>
+<section id="basic-usage">
+<h2>Basic usage<a class="headerlink" href="#basic-usage" title="Link to this heading"></a></h2>
+<p>The QR Code reader can be called either from a <code class="docutils literal notranslate"><span class="pre">QRCode</span></code> instance or invoked directly via the <code class="docutils literal notranslate"><span class="pre">Decoder</span></code> class with a <code class="docutils literal notranslate"><span class="pre">QROptions</span></code> (<code class="docutils literal notranslate"><span class="pre">QRCodeReaderOptionsTrait</span></code>) instance.</p>
+<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="nv">$options</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">QROptions</span>
+
+<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">readerUseImagickIfAvailable</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span>
+<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">readerIncreaseContrast</span>      <span class="o">=</span> <span class="k">true</span><span class="p">;</span>
+<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">readerGrayscale</span>             <span class="o">=</span> <span class="k">true</span><span class="p">;</span>
+<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">readerInvertColors</span>          <span class="o">=</span> <span class="k">false</span><span class="p">;</span>
+</pre></div>
+</div>
+<p>The option <code class="docutils literal notranslate"><span class="pre">QROptions::$readerUseImagickIfAvailable</span></code> is exclusive to the <code class="docutils literal notranslate"><span class="pre">QRCode</span></code> instance in order to decide which <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code> to use.
+The <code class="docutils literal notranslate"><span class="pre">QRCode</span></code> instance has 3 convenience methods related to the reader:</p>
+<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="nv">$qrcode</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">QRCode</span><span class="p">(</span><span class="nv">$options</span><span class="p">)</span>
+
+<span class="nv">$result</span> <span class="o">=</span> <span class="nv">$qrcode</span><span class="o">-&gt;</span><span class="na">readFromFile</span><span class="p">(</span><span class="s1">&#39;path/to/qrcode.png&#39;</span><span class="p">);</span>
+<span class="nv">$result</span> <span class="o">=</span> <span class="nv">$qrcode</span><span class="o">-&gt;</span><span class="na">readFromBlob</span><span class="p">(</span><span class="nv">$imagedata</span><span class="p">);</span>
+
+<span class="c1">// from a luminance source instance</span>
+<span class="nv">$source</span> <span class="o">=</span> <span class="nx">IMagickLuminanceSource</span><span class="o">::</span><span class="na">fromBlob</span><span class="p">(</span><span class="nv">$imagedata</span><span class="p">,</span> <span class="nv">$options</span><span class="p">);</span>
+<span class="nv">$result</span> <span class="o">=</span> <span class="nv">$qrcode</span><span class="o">-&gt;</span><span class="na">readFromSource</span><span class="p">(</span><span class="nv">$source</span><span class="p">);</span>
+</pre></div>
+</div>
+</section>
+<section id="the-luminancesourceinterface">
+<h2>The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code><a class="headerlink" href="#the-luminancesourceinterface" title="Link to this heading"></a></h2>
+<p>The method <code class="docutils literal notranslate"><span class="pre">QRCode::readFromSource()</span></code> takes a <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code> instance as parameter and is mainly for internal use, as you can invoke and call the decoder directly with it.
+Each <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code> has the static convenience methods <code class="docutils literal notranslate"><span class="pre">fromFile()</span></code> and <code class="docutils literal notranslate"><span class="pre">fromBlob()</span></code> that will invoke the instance with the respective parameters, alternatively the instance(s) can be invoked manually:</p>
+<p>from an <code class="docutils literal notranslate"><span class="pre">Imagick</span></code> instance:</p>
+<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="nv">$imagick</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Imagick</span><span class="p">;</span>
+<span class="nv">$imagick</span><span class="o">-&gt;</span><span class="na">readImageBlob</span><span class="p">(</span><span class="nv">$imagedata</span><span class="p">);</span>
+
+<span class="nv">$source</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">IMagickLuminanceSource</span><span class="p">(</span><span class="nv">$imagick</span><span class="p">,</span> <span class="nv">$options</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>from a <code class="docutils literal notranslate"><span class="pre">GdImage</span></code> instance:</p>
+<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="nv">$gdimage</span> <span class="o">=</span> <span class="nb">imagecreatefromstring</span><span class="p">(</span><span class="nv">$imagedata</span><span class="p">);</span>
+
+<span class="nv">$source</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">GDLuminanceSource</span><span class="p">(</span><span class="nv">$gdimage</span><span class="p">,</span> <span class="nv">$options</span><span class="p">);</span>
+</pre></div>
+</div>
+</section>
+<section id="the-decoder">
+<h2>The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code><a class="headerlink" href="#the-decoder" title="Link to this heading"></a></h2>
+<p>The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code> takes a <code class="docutils literal notranslate"><span class="pre">QROptions</span></code> instance as parameter, which currently has no use - it is only handed over for possible future uses.</p>
+<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="nv">$result</span> <span class="o">=</span> <span class="p">(</span><span class="k">new</span> <span class="nx">Decoder</span><span class="p">(</span><span class="nv">$options</span><span class="p">))</span><span class="o">-&gt;</span><span class="na">decode</span><span class="p">(</span><span class="nv">$source</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>That is all! The decoder will either return a <code class="docutils literal notranslate"><span class="pre">DecoderResult</span></code> instance or throw an exception.
+It is generally a good practice to wrap the reading in a try/catch block:</p>
+<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="k">try</span><span class="p">{</span>
+	<span class="nv">$result</span> <span class="o">=</span> <span class="nv">$qrcode</span><span class="o">-&gt;</span><span class="na">readFromFile</span><span class="p">(</span><span class="s1">&#39;path/to/file.png&#39;</span><span class="p">);</span> <span class="c1">// -&gt; DecoderResult</span>
+
+	<span class="c1">// ... do stuff with the result</span>
+<span class="p">}</span>
+<span class="k">catch</span><span class="p">(</span><span class="nx">QRCodeDecoderException</span><span class="p">){</span>
+	<span class="c1">// ... adjust input image (position, contrast, invert, sharpen) and repeat the process</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>You can now use the result instance:</p>
+<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="nv">$content</span> <span class="o">=</span> <span class="nv">$result</span><span class="o">-&gt;</span><span class="na">data</span><span class="p">;</span>
+<span class="c1">// ...or simply cast it to string:</span>
+<span class="nv">$content</span> <span class="o">=</span> <span class="p">(</span><span class="nx">string</span><span class="p">)</span><span class="nv">$result</span><span class="p">;</span>
+</pre></div>
+</div>
+<p>The result instance also holds <code class="docutils literal notranslate"><span class="pre">Version</span></code>, <code class="docutils literal notranslate"><span class="pre">EccLevel</span></code>, <code class="docutils literal notranslate"><span class="pre">MaskPattern</span></code> and <code class="docutils literal notranslate"><span class="pre">BitBuffer</span></code> instances, as well as an array of <code class="docutils literal notranslate"><span class="pre">FinderPattern</span></code> instances,
+it also offers a method that returns a <code class="docutils literal notranslate"><span class="pre">QRMatrix</span></code> instance populated with the detected settings:</p>
+<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="nv">$matrix</span> <span class="o">=</span> <span class="nv">$result</span><span class="o">-&gt;</span><span class="na">getQRMatrix</span><span class="p">();</span>
+
+<span class="c1">// ...matrix modification...</span>
+
+<span class="nv">$output</span> <span class="o">=</span> <span class="p">(</span><span class="k">new</span> <span class="nx">QRCode</span><span class="p">(</span><span class="nv">$options</span><span class="p">))</span><span class="o">-&gt;</span><span class="na">renderMatrix</span><span class="p">(</span><span class="nv">$matrix</span><span class="p">);</span>
+
+<span class="c1">// ...dump output</span>
+</pre></div>
+</div>
+</section>
+<section id="general-considerations">
+<h2>General considerations<a class="headerlink" href="#general-considerations" title="Link to this heading"></a></h2>
+<p>The QR Code reader reads the given QR symbol in a single pass, unlike e.g. a reader app on a mobile device with a camera, which repeats the reading process for a sequence of frames from the video input and takes the “best” result.
+It means that this reader may fail to properly decode a symbol that reads perfectly fine on a mobile - you’d need to emulate the same process of sequential reading while adjusting the input image to get a similar result.</p>
+<p>Further it seems (<a class="reference external" href="https://github.com/chillerlan/php-qrcode/blob/92346420a5a88aeeb8dc16f731ef1f93331635d3/tests/QRCodeReaderTestAbstract.php#L168-L172">per observation</a>) that the reader favors smaller module sizes (1-2 pixel side length) from version 20 onwards.
+The test data set seemed to randomly produce errors depending on the given module scale, independent of the luminance source.
+However, scaling down to get a smaller module size isn’t the best solution as it may produce additional challenges due to filter artifacts.</p>
+</section>
+</section>
+
+
+           </div>
+          </div>
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="Configuration-settings.html" class="btn btn-neutral float-left" title="Configuration settings" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="Logos.html" class="btn btn-neutral float-right" title="Logos and logo space" 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 2025, smiley.</p>
+  </div>
+
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>

+ 24 - 22
_sources/Appendix/Performance-considerations.md.txt

@@ -44,35 +44,37 @@ is a complex and costly operation that is necessary to ensure the symbol is read
 to override the evaluation and manually set a mask pattern, this is not recommended unless you know exactly what you're doing
 to override the evaluation and manually set a mask pattern, this is not recommended unless you know exactly what you're doing
 as it can render a QR symbol unreadable.
 as it can render a QR symbol unreadable.
 
 
-The table below shows the performance impact (in miliseconds) of the mask pattern evaluation for each version, the times may vary between systems.
+The table below shows the performance impact (in miliseconds) of the mask pattern evaluation for select versions, the times may vary between systems.
 
 
-| version   |       1 |       2 |       3 |       4 |       5 |       6 |       7 |       8 |       9 |      10 |
-|-----------|--------:|--------:|--------:|--------:|--------:|--------:|--------:|--------:|--------:|--------:|
-| **1-10**  |   4.414 |   5.697 |   7.986 |   9.221 |  10.877 |  11.293 |  13.901 |  15.563 |  18.142 |  20.501 |
-| **11-20** |  22.662 |  27.779 |  29.622 |  33.017 |  36.358 |  39.712 |  43.685 |  47.121 |  51.389 |  57.865 |
-| **21-30** |  59.753 |  68.502 |  68.523 |  72.866 |  78.245 |  83.593 |  88.327 |  94.921 | 103.394 | 106.358 |
-| **31-40** | 113.311 | 120.484 | 126.215 | 132.931 | 139.783 | 145.617 | 170.576 | 165.996 | 167.365 | 175.821 |
+| version | time (ms) |
+|---------|----------:|
+| **1**   |     2.285 |
+| **5**   |     5.867 |
+| **10**  |    12.737 |
+| **20**  |    34.045 |
+| **30**  |    64.914 |
+| **40**  |   107.027 |
 
 
 
 
 ## Output
 ## Output
 
 
 Output rendering depends heavily on the size of the QR matrix, the desired type and the underlying libraries and/or PHP extensions.
 Output rendering depends heavily on the size of the QR matrix, the desired type and the underlying libraries and/or PHP extensions.
-Especially the rendering of raster images through GD or ImagMagick can be very slow, depending on [the scale setting](../Usage/Configuration-settings.md#scale),
+Especially the rendering of raster images through GD or ImageMagick can be very slow, depending on [the scale setting](../Usage/Configuration-settings.md#scale),
 filters and image type.
 filters and image type.
 
 
 Below a comparison of the performance for the several built-in output classes (times in miliseconds, scale = 5):
 Below a comparison of the performance for the several built-in output classes (times in miliseconds, scale = 5):
 
 
-|                   |     v5 |    v10 |     v15 |     v20 |     v25 |     v30 |     v35 |     v40 |
-|-------------------|-------:|-------:|--------:|--------:|--------:|--------:|--------:|--------:|
-| **QRMarkupSVG**   |  3.732 |  8.645 |  13.846 |  21.127 |  32.842 |  43.753 |  56.584 |  73.885 |
-| **QRMarkupHTML**  |  0.522 |  1.308 |   2.062 |   2.761 |   3.907 |   5.201 |   7.931 |   9.572 |
-| **QRGdImageBMP**  |  5.998 | 12.541 |  20.728 |  32.336 |  46.345 |  62.842 |  81.555 | 106.482 |
-| **QRGdImageGIF**  |  3.427 |  6.817 |  12.226 |  17.925 |  25.453 |  35.136 |  44.706 |  57.477 |
-| **QRGdImageJPEG** |  2.284 |  4.882 |   8.161 |  12.097 |  17.333 |  23.862 |  30.327 |  40.226 |
-| **QRGdImagePNG**  |  4.523 |  9.377 |  16.581 |  26.207 |  36.516 |  49.066 |  63.765 |  82.074 |
-| **QRGdImageWEBP** |  8.211 | 17.367 |  30.079 |  47.095 |  69.668 |  91.378 | 119.869 | 150.288 |
-| **QRStringJSON**  |  0.043 |  0.066 |   0.107 |   0.158 |   0.215 |   0.301 |   0.369 |   0.492 |
-| **QRStringText**  |  0.229 |  0.387 |   0.628 |   0.952 |   1.312 |   1.759 |   2.329 |   3.045 |
-| **QRImagick**     | 37.694 | 68.808 | 114.415 | 172.962 | 242.338 | 325.085 | 419.999 | 529.897 |
-| **QRFpdf**        |  6.578 | 12.466 |  21.169 |  33.021 |  45.469 |  61.198 |  80.092 | 100.059 |
-| **QREps**         |  1.269 |  2.694 |   4.515 |   6.933 |  11.049 |  14.181 |  20.799 |  25.886 |
+|                   |     v5 |    v10 |     v20 |     v30 |     v40 |
+|-------------------|-------:|-------:|--------:|--------:|--------:|
+| **QRMarkupSVG**   |  3.732 |  8.645 |  21.127 |  43.753 |  73.885 |
+| **QRMarkupHTML**  |  0.522 |  1.308 |   2.761 |   5.201 |   9.572 |
+| **QRGdImageBMP**  |  5.998 | 12.541 |  32.336 |  62.842 | 106.482 |
+| **QRGdImageGIF**  |  3.427 |  6.817 |  17.925 |  35.136 |  57.477 |
+| **QRGdImageJPEG** |  2.284 |  4.882 |  12.097 |  23.862 |  40.226 |
+| **QRGdImagePNG**  |  4.523 |  9.377 |  26.207 |  49.066 |  82.074 |
+| **QRGdImageWEBP** |  8.211 | 17.367 |  47.095 |  91.378 | 150.288 |
+| **QRStringJSON**  |  0.043 |  0.066 |   0.158 |   0.301 |   0.492 |
+| **QRStringText**  |  0.229 |  0.387 |   0.952 |   1.759 |   3.045 |
+| **QRImagick**     | 37.694 | 68.808 | 172.962 | 325.085 | 529.897 |
+| **QRFpdf**        |  6.578 | 12.466 |  33.021 |  61.198 | 100.059 |
+| **QREps**         |  1.269 |  2.694 |   6.933 |  14.181 |  25.886 |

+ 1 - 1
_sources/Appendix/Terminology.md.txt

@@ -2,7 +2,7 @@
 
 
 ## QR Code
 ## QR Code
 
 
-A [*QR code*](https://en.wikipedia.org/wiki/QR_code) (quick-response code) is a type of two-dimensional matrix barcode, invented
+A [*QR code*](https://en.wikipedia.org/wiki/QR_code) (quick-response code), sometimes referred to as  *QR symbol* or simply just *symbol*, is a type of two-dimensional matrix barcode, invented
 in 1994 by Japanese company [Denso Wave](https://www.qrcode.com/en/faq.html#patentH2Title) for labelling automobile parts.
 in 1994 by Japanese company [Denso Wave](https://www.qrcode.com/en/faq.html#patentH2Title) for labelling automobile parts.
 The QR labelling system was applied beyond the automobile industry due to its fast readability and greater storage capacity
 The QR labelling system was applied beyond the automobile industry due to its fast readability and greater storage capacity
 compared to standard UPC barcodes.
 compared to standard UPC barcodes.

+ 1 - 41
_sources/Usage/Advanced-usage.md.txt

@@ -173,7 +173,7 @@ $output = $qrcode->render();
 $qrcode->render(null, '/path/to/qrcode.svg');
 $qrcode->render(null, '/path/to/qrcode.svg');
 ```
 ```
 
 
-The [`QRDataModeInterface`](https://github.com/chillerlan/php-qrcode/blob/main/src/Data/QRDataModeInterface.php) offers the `validateString()` method (implemended for `AlphaNum`, `Byte`, `Hanzi`, `Kanji` and `Number`).
+The [`QRDataModeInterface`](https://github.com/chillerlan/php-qrcode/blob/main/src/Data/QRDataModeInterface.php) offers the `validateString()` method (implemented for `AlphaNum`, `Byte`, `Hanzi`, `Kanji` and `Number`).
 This method is used internally when a data mode is invoked, but it can come in handy if you need to check input data beforehand.
 This method is used internally when a data mode is invoked, but it can come in handy if you need to check input data beforehand.
 
 
 ```php
 ```php
@@ -185,33 +185,6 @@ $qrcode->addHanziSegment($data);
 ```
 ```
 
 
 
 
-### QR Code reader
-
-In some cases it might be necessary to increase the contrast of a QR Code image:
-
-```php
-$options->readerUseImagickIfAvailable = true;
-$options->readerIncreaseContrast      = true;
-$options->readerGrayscale             = true;
-
-$qrcode = new QRCode($options);
-
-$result = $qrcode->readFromFile('path/to/qrcode.png');
-$result = $qrcode->readFromBlob($imagedata);
-```
-
-The `QRMatrix` object from the [`DecoderResult`](https://github.com/chillerlan/php-qrcode/blob/main/src/Decoder/DecoderResult.php) can be reused:
-
-```php
-$matrix = $result->getQRMatrix();
-
-// ...matrix modification...
-
-$output = (new QRCode($options))->renderMatrix($matrix);
-
-// ...output
-```
-
 ## Common output options
 ## Common output options
 
 
 ### Save to file
 ### Save to file
@@ -266,16 +239,3 @@ $imagick = $qrcode->render($data);
 
 
 echo $imagick->getImageBlob();
 echo $imagick->getImageBlob();
 ```
 ```
-
-
-### Add a logo space
-
-
-```php
-$options->addLogoSpace    = true;
-$options->logoSpaceWidth  = 9;
-$options->logoSpaceHeight = 9;
-$options->logoSpaceStartX = 10;
-$options->logoSpaceStartY = 10;
-
-```

File diff suppressed because it is too large
+ 72 - 0
_sources/Usage/Logos.md.txt


+ 0 - 20
_sources/Usage/Quickstart.md.txt

@@ -41,26 +41,6 @@ and [configuration settings](../Usage/Configuration-settings.md) for a list of a
 Also, have a look [in the examples folder](https://github.com/chillerlan/php-qrcode/tree/main/examples) for some more usage examples.
 Also, have a look [in the examples folder](https://github.com/chillerlan/php-qrcode/tree/main/examples) for some more usage examples.
 
 
 
 
-## Reading QR Codes
-
-Using the built-in QR Code reader is pretty straight-forward:
-```php
-try{
-	$result = (new QRCode)->readFromFile('path/to/file.png'); // -> DecoderResult
-
-	// you can now use the result instance...
-	$content = $result->data;
-
-	// ...or simply cast the result instance to string to get the content
-	$content = (string)$result;
-}
-catch(Throwable $exception){
-	// handle exception...
-}
-```
-It's generally a good idea to wrap the reading in a try/catch block to handle any errors that may occur in the process.
-
-
 ## Notes
 ## Notes
 The QR encoder, especially the subroutines for mask pattern testing, can cause high CPU load on increased matrix size.
 The QR encoder, especially the subroutines for mask pattern testing, can cause high CPU load on increased matrix size.
 You can avoid a part of this load by choosing a fast output module, like SVG.
 You can avoid a part of this load by choosing a fast output module, like SVG.

+ 101 - 0
_sources/Usage/Reading-QRCodes.md.txt

@@ -0,0 +1,101 @@
+# Reading QR Codes
+
+## Basic usage
+
+The QR Code reader can be called either from a `QRCode` instance or invoked directly via the `Decoder` class with a `QROptions` (`QRCodeReaderOptionsTrait`) instance.
+
+```php
+$options = new QROptions
+
+$options->readerUseImagickIfAvailable = true;
+$options->readerIncreaseContrast      = true;
+$options->readerGrayscale             = true;
+$options->readerInvertColors          = false;
+```
+
+The option `QROptions::$readerUseImagickIfAvailable` is exclusive to the `QRCode` instance in order to decide which `LuminanceSourceInterface` to use.
+The `QRCode` instance has 3 convenience methods related to the reader:
+```php
+$qrcode = new QRCode($options)
+
+$result = $qrcode->readFromFile('path/to/qrcode.png');
+$result = $qrcode->readFromBlob($imagedata);
+
+// from a luminance source instance
+$source = IMagickLuminanceSource::fromBlob($imagedata, $options);
+$result = $qrcode->readFromSource($source);
+```
+
+## The `LuminanceSourceInterface`
+
+The method `QRCode::readFromSource()` takes a `LuminanceSourceInterface` instance as parameter and is mainly for internal use, as you can invoke and call the decoder directly with it.
+Each `LuminanceSourceInterface` has the static convenience methods `fromFile()` and `fromBlob()` that will invoke the instance with the respective parameters, alternatively the instance(s) can be invoked manually:
+
+from an `Imagick` instance:
+```php
+$imagick = new Imagick;
+$imagick->readImageBlob($imagedata);
+
+$source = new IMagickLuminanceSource($imagick, $options);
+```
+
+from a `GdImage` instance:
+
+```php
+$gdimage = imagecreatefromstring($imagedata);
+
+$source = new GDLuminanceSource($gdimage, $options);
+```
+
+## The `Decoder`
+
+The `Decoder` takes a `QROptions` instance as parameter, which currently has no use - it is only handed over for possible future uses.
+
+```php
+$result = (new Decoder($options))->decode($source);
+```
+
+That is all! The decoder will either return a `DecoderResult` instance or throw an exception.
+It is generally a good practice to wrap the reading in a try/catch block:
+
+```php
+try{
+	$result = $qrcode->readFromFile('path/to/file.png'); // -> DecoderResult
+
+	// ... do stuff with the result
+}
+catch(QRCodeDecoderException){
+	// ... adjust input image (position, contrast, invert, sharpen) and repeat the process
+}
+```
+
+You can now use the result instance:
+
+```php
+$content = $result->data;
+// ...or simply cast it to string:
+$content = (string)$result;
+```
+
+The result instance also holds `Version`, `EccLevel`, `MaskPattern` and `BitBuffer` instances, as well as an array of `FinderPattern` instances,
+it also offers a method that returns a `QRMatrix` instance populated with the detected settings:
+
+```php
+$matrix = $result->getQRMatrix();
+
+// ...matrix modification...
+
+$output = (new QRCode($options))->renderMatrix($matrix);
+
+// ...dump output
+```
+
+
+## General considerations
+
+The QR Code reader reads the given QR symbol in a single pass, unlike e.g. a reader app on a mobile device with a camera, which repeats the reading process for a sequence of frames from the video input and takes the "best" result.
+It means that this reader may fail to properly decode a symbol that reads perfectly fine on a mobile - you'd need to emulate the same process of sequential reading while adjusting the input image to get a similar result.
+
+Further it seems ([per observation](https://github.com/chillerlan/php-qrcode/blob/92346420a5a88aeeb8dc16f731ef1f93331635d3/tests/QRCodeReaderTestAbstract.php#L168-L172)) that the reader favors smaller module sizes (1-2 pixel side length) from version 20 onwards.
+The test data set seemed to randomly produce errors depending on the given module scale, independent of the luminance source.
+However, scaling down to get a smaller module size isn't the best solution as it may produce additional challenges due to filter artifacts.

+ 2 - 0
_sources/index.rst.txt

@@ -21,6 +21,8 @@ This work is licensed under the Creative Commons Attribution 4.0 International (
    Usage/Quickstart.md
    Usage/Quickstart.md
    Usage/Advanced-usage.md
    Usage/Advanced-usage.md
    Usage/Configuration-settings.md
    Usage/Configuration-settings.md
+   Usage/Reading-QRCodes.md
+   Usage/Logos.md
 
 
 .. toctree::
 .. toctree::
    :maxdepth: 3
    :maxdepth: 3

+ 13 - 4
genindex.html

@@ -72,7 +72,6 @@
 <li class="toctree-l3"><a class="reference internal" href="Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -86,14 +85,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -146,6 +143,18 @@
 <li class="toctree-l2"><a class="reference internal" href="Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -371,7 +380,7 @@
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

+ 26 - 8
index.html

@@ -74,7 +74,6 @@
 <li class="toctree-l3"><a class="reference internal" href="Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -88,14 +87,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -148,6 +145,18 @@
 <li class="toctree-l2"><a class="reference internal" href="Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -360,7 +369,7 @@
              
              
   <section id="chillerlan-php-qrcode-manual">
   <section id="chillerlan-php-qrcode-manual">
 <h1>chillerlan PHP-QRCode Manual<a class="headerlink" href="#chillerlan-php-qrcode-manual" title="Link to this heading"></a></h1>
 <h1>chillerlan PHP-QRCode Manual<a class="headerlink" href="#chillerlan-php-qrcode-manual" title="Link to this heading"></a></h1>
-<p>User manual for <a class="reference external" href="https://github.com/chillerlan/php-qrcode/">chillerlan/php-qrcode</a>  [main]. Updated on Nov 21, 2025.</p>
+<p>User manual for <a class="reference external" href="https://github.com/chillerlan/php-qrcode/">chillerlan/php-qrcode</a>  [main]. Updated on Nov 23, 2025.</p>
 <p>The phpDocumentor API documentation can be found at <a class="reference external" href="https://chillerlan.github.io/php-qrcode/">chillerlan.github.io/php-qrcode</a>.</p>
 <p>The phpDocumentor API documentation can be found at <a class="reference external" href="https://chillerlan.github.io/php-qrcode/">chillerlan.github.io/php-qrcode</a>.</p>
 <p>This work is licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0) License.</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">
 <div class="toctree-wrapper compound">
@@ -393,7 +402,6 @@
 <li class="toctree-l3"><a class="reference internal" href="Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -407,14 +415,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -467,6 +473,18 @@
 <li class="toctree-l2"><a class="reference internal" href="Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 </div>
 </div>
 <div class="toctree-wrapper compound">
 <div class="toctree-wrapper compound">
@@ -671,7 +689,7 @@
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

BIN
objects.inv


+ 13 - 4
search.html

@@ -75,7 +75,6 @@
 <li class="toctree-l3"><a class="reference internal" href="Usage/Quickstart.html#configuration">Configuration</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Quickstart.html#configuration">Configuration</a></li>
 </ul>
 </ul>
 </li>
 </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>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Quickstart.html#notes">Notes</a></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -89,14 +88,12 @@
 <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-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#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#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#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>
 </ul>
 </li>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Advanced-usage.html#common-output-options">Common output options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Advanced-usage.html#common-output-options">Common output options</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#save-to-file">Save to file</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#base64-uri-output">Base64 URI output</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
 <li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#return-the-image-resource">Return the image resource</a></li>
-<li class="toctree-l3"><a class="reference internal" href="Usage/Advanced-usage.html#add-a-logo-space">Add a logo space</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>
@@ -149,6 +146,18 @@
 <li class="toctree-l2"><a class="reference internal" href="Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Usage/Configuration-settings.html#readerincreasecontrast">readerIncreaseContrast</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="Usage/Reading-QRCodes.html">Reading QR Codes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#basic-usage">Basic usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#the-luminancesourceinterface">The <code class="docutils literal notranslate"><span class="pre">LuminanceSourceInterface</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#the-decoder">The <code class="docutils literal notranslate"><span class="pre">Decoder</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Reading-QRCodes.html#general-considerations">General considerations</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Usage/Logos.html">Logos and logo space</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Logos.html#info">Info</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Usage/Logos.html#adding-a-logo-space">Adding a logo space</a></li>
+</ul>
+</li>
 </ul>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <p class="caption" role="heading"><span class="caption-text">Customizing output</span></p>
 <ul>
 <ul>
@@ -378,7 +387,7 @@
   <hr/>
   <hr/>
 
 
   <div role="contentinfo">
   <div role="contentinfo">
-    <p>&#169; Copyright 2023, smiley.</p>
+    <p>&#169; Copyright 2025, smiley.</p>
   </div>
   </div>
 
 
    
    

File diff suppressed because it is too large
+ 0 - 0
searchindex.js


Some files were not shown because too many files changed in this diff