chillerlan-QRCode-Common-MaskPattern.html 81 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Documentation</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <base href="../">
  8. <link rel="icon" href="images/favicon.ico"/>
  9. <link rel="stylesheet" href="css/normalize.css">
  10. <link rel="stylesheet" href="css/base.css">
  11. <link rel="preconnect" href="https://fonts.gstatic.com">
  12. <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@100;200;300;400;600;700&display=swap" rel="stylesheet">
  13. <link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
  14. <link rel="stylesheet" href="css/template.css">
  15. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
  16. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
  17. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
  18. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
  19. <script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
  20. <script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
  21. <script src="js/template.js"></script>
  22. <script src="js/search.js"></script>
  23. <script defer src="js/searchIndex.js"></script>
  24. </head>
  25. <body id="top">
  26. <header class="phpdocumentor-header phpdocumentor-section">
  27. <h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">Documentation</a></h1>
  28. <input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
  29. <label class="phpdocumentor-header__menu-icon" for="menu-button">
  30. <i class="fas fa-bars"></i>
  31. </label>
  32. <section data-search-form class="phpdocumentor-search">
  33. <label>
  34. <span class="visually-hidden">Search for</span>
  35. <svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
  36. <circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
  37. <line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
  38. </svg>
  39. <input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
  40. </label>
  41. </section>
  42. <nav class="phpdocumentor-topnav">
  43. <ul class="phpdocumentor-topnav__menu">
  44. <li class="phpdocumentor-topnav__menu-item -menu">
  45. <a href="https://php-qrcode.readthedocs.io">
  46. <span>
  47. User Manual
  48. </span>
  49. </a>
  50. </li>
  51. <li class="phpdocumentor-topnav__menu-item -social">
  52. <a href="https://github.com/chillerlan/php-qrcode">
  53. <span>
  54. <i class="fab fa-github"></i>
  55. </span>
  56. </a>
  57. </li>
  58. </ul>
  59. </nav>
  60. </header>
  61. <main class="phpdocumentor">
  62. <div class="phpdocumentor-section">
  63. <input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
  64. <label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
  65. Menu
  66. </label>
  67. <aside class="phpdocumentor-column -three phpdocumentor-sidebar">
  68. <section class="phpdocumentor-sidebar__category">
  69. <h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
  70. <h4 class="phpdocumentor-sidebar__root-namespace">
  71. <a href="namespaces/chillerlan.html" class="">chillerlan</a>
  72. </h4>
  73. <ul class="phpdocumentor-list">
  74. <li>
  75. <a href="namespaces/chillerlan-qrcode.html" class="">QRCode</a>
  76. </li>
  77. <li>
  78. <a href="namespaces/chillerlan-qrcodetest.html" class="">QRCodeTest</a>
  79. </li>
  80. </ul>
  81. <h4 class="phpdocumentor-sidebar__root-namespace">
  82. <a href="namespaces/output.html" class="">Output</a>
  83. </h4>
  84. </section>
  85. <section class="phpdocumentor-sidebar__category">
  86. <h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
  87. <h4 class="phpdocumentor-sidebar__root-namespace">
  88. <a href="packages/Application.html" class="">Application</a>
  89. </h4>
  90. </section>
  91. <section class="phpdocumentor-sidebar__category">
  92. <h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
  93. <h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
  94. <h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
  95. <h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
  96. </section>
  97. <section class="phpdocumentor-sidebar__category">
  98. <h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
  99. <h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
  100. </section>
  101. </aside>
  102. <div class="phpdocumentor-column -nine phpdocumentor-content">
  103. <section>
  104. <ul class="phpdocumentor-breadcrumbs">
  105. <li class="phpdocumentor-breadcrumb"><a href="namespaces/chillerlan.html">chillerlan</a></li>
  106. <li class="phpdocumentor-breadcrumb"><a href="namespaces/chillerlan-qrcode.html">QRCode</a></li>
  107. <li class="phpdocumentor-breadcrumb"><a href="namespaces/chillerlan-qrcode-common.html">Common</a></li>
  108. </ul>
  109. <article class="phpdocumentor-element -class">
  110. <h2 class="phpdocumentor-content__title">
  111. MaskPattern
  112. <div class="phpdocumentor-element__package">
  113. in package
  114. <ul class="phpdocumentor-breadcrumbs">
  115. <li class="phpdocumentor-breadcrumb"><a href="packages/Application.html">Application</a></li>
  116. </ul>
  117. </div>
  118. </h2>
  119. <div class="phpdocumentor-label-line">
  120. <div class="phpdocumentor-label phpdocumentor-label--success"><span>Final</span><span>Yes</span></div>
  121. </div>
  122. <aside class="phpdocumentor-element-found-in">
  123. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  124. :
  125. <span class="phpdocumentor-element-found-in__line">26</span>
  126. </aside>
  127. <p class="phpdocumentor-summary">ISO/IEC 18004:2000 Section 8.8.1
  128. ISO/IEC 18004:2000 Section 8.8.2 - Evaluation of masking results</p>
  129. <h5 class="phpdocumentor-tag-list__heading" id="tags">
  130. Tags
  131. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#tags" class="headerlink"><i class="fas fa-link"></i></a>
  132. </h5>
  133. <dl class="phpdocumentor-tag-list">
  134. <dt class="phpdocumentor-tag-list__entry">
  135. <span class="phpdocumentor-tag__name">see</span>
  136. </dt>
  137. <dd class="phpdocumentor-tag-list__definition">
  138. <span class="phpdocumentor-tag-link"><a href="http://www.thonky.com/qr-code-tutorial/data-masking">http://www.thonky.com/qr-code-tutorial/data-masking</a></span>
  139. </dd>
  140. <dt class="phpdocumentor-tag-list__entry">
  141. <span class="phpdocumentor-tag__name">see</span>
  142. </dt>
  143. <dd class="phpdocumentor-tag-list__definition">
  144. <span class="phpdocumentor-tag-link"><a href="https://github.com/zxing/zxing/blob/e9e2bd280bcaeabd59d0f955798384fe6c018a6c/core/src/main/java/com/google/zxing/qrcode/encoder/MaskUtil.java">https://github.com/zxing/zxing/blob/e9e2bd280bcaeabd59d0f955798384fe6c018a6c/core/src/main/java/com/google/zxing/qrcode/encoder/MaskUtil.java</a></span>
  145. </dd>
  146. </dl>
  147. <h3 id="toc">
  148. Table of Contents
  149. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#toc" class="headerlink"><i class="fas fa-link"></i></a>
  150. </h3>
  151. <h4 id="toc-constants">
  152. Constants
  153. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#toc-constants" class="headerlink"><i class="fas fa-link"></i></a>
  154. </h4>
  155. <dl class="phpdocumentor-table-of-contents">
  156. <dt class="phpdocumentor-table-of-contents__entry -constant -public">
  157. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_AUTO">AUTO</a>
  158. <span>
  159. &nbsp;= -1 </span>
  160. </dt>
  161. <dt class="phpdocumentor-table-of-contents__entry -constant -public">
  162. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_000">PATTERN_000</a>
  163. <span>
  164. &nbsp;= 0b0 </span>
  165. </dt>
  166. <dt class="phpdocumentor-table-of-contents__entry -constant -public">
  167. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_001">PATTERN_001</a>
  168. <span>
  169. &nbsp;= 0b1 </span>
  170. </dt>
  171. <dt class="phpdocumentor-table-of-contents__entry -constant -public">
  172. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_010">PATTERN_010</a>
  173. <span>
  174. &nbsp;= 0b10 </span>
  175. </dt>
  176. <dt class="phpdocumentor-table-of-contents__entry -constant -public">
  177. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_011">PATTERN_011</a>
  178. <span>
  179. &nbsp;= 0b11 </span>
  180. </dt>
  181. <dt class="phpdocumentor-table-of-contents__entry -constant -public">
  182. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_100">PATTERN_100</a>
  183. <span>
  184. &nbsp;= 0b100 </span>
  185. </dt>
  186. <dt class="phpdocumentor-table-of-contents__entry -constant -public">
  187. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_101">PATTERN_101</a>
  188. <span>
  189. &nbsp;= 0b101 </span>
  190. </dt>
  191. <dt class="phpdocumentor-table-of-contents__entry -constant -public">
  192. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_110">PATTERN_110</a>
  193. <span>
  194. &nbsp;= 0b110 </span>
  195. </dt>
  196. <dt class="phpdocumentor-table-of-contents__entry -constant -public">
  197. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_111">PATTERN_111</a>
  198. <span>
  199. &nbsp;= 0b111 </span>
  200. </dt>
  201. <dt class="phpdocumentor-table-of-contents__entry -constant -public">
  202. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERNS">PATTERNS</a>
  203. <span>
  204. &nbsp;= [self::PATTERN_000, self::PATTERN_001, self::PATTERN_010, self::PATTERN_011, self::PATTERN_100, self::PATTERN_101, self::PATTERN_110, self::PATTERN_111] </span>
  205. </dt>
  206. <dt class="phpdocumentor-table-of-contents__entry -constant -private">
  207. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PENALTY_N1">PENALTY_N1</a>
  208. <span>
  209. &nbsp;= 3 </span>
  210. </dt>
  211. <dt class="phpdocumentor-table-of-contents__entry -constant -private">
  212. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PENALTY_N2">PENALTY_N2</a>
  213. <span>
  214. &nbsp;= 3 </span>
  215. </dt>
  216. <dt class="phpdocumentor-table-of-contents__entry -constant -private">
  217. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PENALTY_N3">PENALTY_N3</a>
  218. <span>
  219. &nbsp;= 40 </span>
  220. </dt>
  221. <dt class="phpdocumentor-table-of-contents__entry -constant -private">
  222. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PENALTY_N4">PENALTY_N4</a>
  223. <span>
  224. &nbsp;= 10 </span>
  225. </dt>
  226. </dl>
  227. <h4 id="toc-properties">
  228. Properties
  229. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#toc-properties" class="headerlink"><i class="fas fa-link"></i></a>
  230. </h4>
  231. <dl class="phpdocumentor-table-of-contents">
  232. <dt class="phpdocumentor-table-of-contents__entry -property -private">
  233. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#property_maskPattern">$maskPattern</a>
  234. <span>
  235. &nbsp;: int </span>
  236. </dt>
  237. <dd>The current mask pattern value (0-7)</dd>
  238. </dl>
  239. <h4 id="toc-methods">
  240. Methods
  241. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#toc-methods" class="headerlink"><i class="fas fa-link"></i></a>
  242. </h4>
  243. <dl class="phpdocumentor-table-of-contents">
  244. <dt class="phpdocumentor-table-of-contents__entry -method -public">
  245. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method___construct">__construct()</a>
  246. <span>
  247. &nbsp;: mixed </span>
  248. </dt>
  249. <dd>MaskPattern constructor.</dd>
  250. <dt class="phpdocumentor-table-of-contents__entry -method -public">
  251. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_getBestPattern">getBestPattern()</a>
  252. <span>
  253. &nbsp;: self </span>
  254. </dt>
  255. <dd>Evaluates the matrix of the given data interface and returns a new mask pattern instance for the best result</dd>
  256. <dt class="phpdocumentor-table-of-contents__entry -method -public">
  257. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_getMask">getMask()</a>
  258. <span>
  259. &nbsp;: <abbr title="\Closure">Closure</abbr> </span>
  260. </dt>
  261. <dd>Returns a closure that applies the mask for the chosen mask pattern.</dd>
  262. <dt class="phpdocumentor-table-of-contents__entry -method -public">
  263. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_getPattern">getPattern()</a>
  264. <span>
  265. &nbsp;: int </span>
  266. </dt>
  267. <dd>Returns the current mask pattern</dd>
  268. <dt class="phpdocumentor-table-of-contents__entry -method -public">
  269. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_testRule1">testRule1()</a>
  270. <span>
  271. &nbsp;: int </span>
  272. </dt>
  273. <dd>Apply mask penalty rule 1 and return the penalty. Find repetitive cells with the same color and
  274. give penalty to them. Example: 00000 or 11111.</dd>
  275. <dt class="phpdocumentor-table-of-contents__entry -method -public">
  276. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_testRule2">testRule2()</a>
  277. <span>
  278. &nbsp;: int </span>
  279. </dt>
  280. <dd>Apply mask penalty rule 2 and return the penalty. Find 2x2 blocks with the same color and give
  281. penalty to them. This is actually equivalent to the spec&#039;s rule, which is to find MxN blocks and give a
  282. penalty proportional to (M-1)x(N-1), because this is the number of 2x2 blocks inside such a block.</dd>
  283. <dt class="phpdocumentor-table-of-contents__entry -method -public">
  284. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_testRule3">testRule3()</a>
  285. <span>
  286. &nbsp;: int </span>
  287. </dt>
  288. <dd>Apply mask penalty rule 3 and return the penalty. Find consecutive runs of 1:1:3:1:1:4
  289. starting with black, or 4:1:1:3:1:1 starting with white, and give penalty to them. If we
  290. find patterns like 000010111010000, we give penalty once.</dd>
  291. <dt class="phpdocumentor-table-of-contents__entry -method -public">
  292. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_testRule4">testRule4()</a>
  293. <span>
  294. &nbsp;: int </span>
  295. </dt>
  296. <dd>Apply mask penalty rule 4 and return the penalty. Calculate the ratio of dark cells and give
  297. penalty if the ratio is far from 50%. It gives 10 penalty for 5% distance.</dd>
  298. <dt class="phpdocumentor-table-of-contents__entry -method -private">
  299. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_applyRule1">applyRule1()</a>
  300. <span>
  301. &nbsp;: int </span>
  302. </dt>
  303. <dt class="phpdocumentor-table-of-contents__entry -method -private">
  304. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_isWhiteHorizontal">isWhiteHorizontal()</a>
  305. <span>
  306. &nbsp;: bool </span>
  307. </dt>
  308. <dt class="phpdocumentor-table-of-contents__entry -method -private">
  309. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_isWhiteVertical">isWhiteVertical()</a>
  310. <span>
  311. &nbsp;: bool </span>
  312. </dt>
  313. </dl>
  314. <section class="phpdocumentor-constants">
  315. <h3 class="phpdocumentor-elements__header" id="constants">
  316. Constants
  317. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constants" class="headerlink"><i class="fas fa-link"></i></a>
  318. </h3>
  319. <article class="phpdocumentor-element -constant -public ">
  320. <h4 class="phpdocumentor-element__name" id="constant_AUTO">
  321. AUTO
  322. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_AUTO" class="headerlink"><i class="fas fa-link"></i></a>
  323. </h4>
  324. <aside class="phpdocumentor-element-found-in">
  325. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  326. :
  327. <span class="phpdocumentor-element-found-in__line">33</span>
  328. </aside>
  329. <code class="phpdocumentor-signature phpdocumentor-code ">
  330. <span class="phpdocumentor-signature__visibility">public</span>
  331. <span class="phpdocumentor-signature__type">int</span>
  332. <span class="phpdocumentor-signature__name">AUTO</span>
  333. = <span class="phpdocumentor-signature__default-value">-1</span>
  334. </code>
  335. <h5 class="phpdocumentor-tag-list__heading" id="tags">
  336. Tags
  337. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_AUTO#tags" class="headerlink"><i class="fas fa-link"></i></a>
  338. </h5>
  339. <dl class="phpdocumentor-tag-list">
  340. <dt class="phpdocumentor-tag-list__entry">
  341. <span class="phpdocumentor-tag__name">see</span>
  342. </dt>
  343. <dd class="phpdocumentor-tag-list__definition">
  344. <span class="phpdocumentor-tag-link"><a href="classes/chillerlan-QRCode-QROptionsTrait.html#property_maskPattern"><abbr title="\chillerlan\QRCode\QROptionsTrait::$maskPattern">QROptionsTrait::$maskPattern</abbr></a></span>
  345. </dd>
  346. </dl>
  347. </article>
  348. <article class="phpdocumentor-element -constant -public ">
  349. <h4 class="phpdocumentor-element__name" id="constant_PATTERN_000">
  350. PATTERN_000
  351. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_000" class="headerlink"><i class="fas fa-link"></i></a>
  352. </h4>
  353. <aside class="phpdocumentor-element-found-in">
  354. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  355. :
  356. <span class="phpdocumentor-element-found-in__line">35</span>
  357. </aside>
  358. <code class="phpdocumentor-signature phpdocumentor-code ">
  359. <span class="phpdocumentor-signature__visibility">public</span>
  360. <span class="phpdocumentor-signature__type">mixed</span>
  361. <span class="phpdocumentor-signature__name">PATTERN_000</span>
  362. = <span class="phpdocumentor-signature__default-value">0b0</span>
  363. </code>
  364. </article>
  365. <article class="phpdocumentor-element -constant -public ">
  366. <h4 class="phpdocumentor-element__name" id="constant_PATTERN_001">
  367. PATTERN_001
  368. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_001" class="headerlink"><i class="fas fa-link"></i></a>
  369. </h4>
  370. <aside class="phpdocumentor-element-found-in">
  371. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  372. :
  373. <span class="phpdocumentor-element-found-in__line">36</span>
  374. </aside>
  375. <code class="phpdocumentor-signature phpdocumentor-code ">
  376. <span class="phpdocumentor-signature__visibility">public</span>
  377. <span class="phpdocumentor-signature__type">mixed</span>
  378. <span class="phpdocumentor-signature__name">PATTERN_001</span>
  379. = <span class="phpdocumentor-signature__default-value">0b1</span>
  380. </code>
  381. </article>
  382. <article class="phpdocumentor-element -constant -public ">
  383. <h4 class="phpdocumentor-element__name" id="constant_PATTERN_010">
  384. PATTERN_010
  385. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_010" class="headerlink"><i class="fas fa-link"></i></a>
  386. </h4>
  387. <aside class="phpdocumentor-element-found-in">
  388. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  389. :
  390. <span class="phpdocumentor-element-found-in__line">37</span>
  391. </aside>
  392. <code class="phpdocumentor-signature phpdocumentor-code ">
  393. <span class="phpdocumentor-signature__visibility">public</span>
  394. <span class="phpdocumentor-signature__type">mixed</span>
  395. <span class="phpdocumentor-signature__name">PATTERN_010</span>
  396. = <span class="phpdocumentor-signature__default-value">0b10</span>
  397. </code>
  398. </article>
  399. <article class="phpdocumentor-element -constant -public ">
  400. <h4 class="phpdocumentor-element__name" id="constant_PATTERN_011">
  401. PATTERN_011
  402. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_011" class="headerlink"><i class="fas fa-link"></i></a>
  403. </h4>
  404. <aside class="phpdocumentor-element-found-in">
  405. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  406. :
  407. <span class="phpdocumentor-element-found-in__line">38</span>
  408. </aside>
  409. <code class="phpdocumentor-signature phpdocumentor-code ">
  410. <span class="phpdocumentor-signature__visibility">public</span>
  411. <span class="phpdocumentor-signature__type">mixed</span>
  412. <span class="phpdocumentor-signature__name">PATTERN_011</span>
  413. = <span class="phpdocumentor-signature__default-value">0b11</span>
  414. </code>
  415. </article>
  416. <article class="phpdocumentor-element -constant -public ">
  417. <h4 class="phpdocumentor-element__name" id="constant_PATTERN_100">
  418. PATTERN_100
  419. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_100" class="headerlink"><i class="fas fa-link"></i></a>
  420. </h4>
  421. <aside class="phpdocumentor-element-found-in">
  422. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  423. :
  424. <span class="phpdocumentor-element-found-in__line">39</span>
  425. </aside>
  426. <code class="phpdocumentor-signature phpdocumentor-code ">
  427. <span class="phpdocumentor-signature__visibility">public</span>
  428. <span class="phpdocumentor-signature__type">mixed</span>
  429. <span class="phpdocumentor-signature__name">PATTERN_100</span>
  430. = <span class="phpdocumentor-signature__default-value">0b100</span>
  431. </code>
  432. </article>
  433. <article class="phpdocumentor-element -constant -public ">
  434. <h4 class="phpdocumentor-element__name" id="constant_PATTERN_101">
  435. PATTERN_101
  436. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_101" class="headerlink"><i class="fas fa-link"></i></a>
  437. </h4>
  438. <aside class="phpdocumentor-element-found-in">
  439. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  440. :
  441. <span class="phpdocumentor-element-found-in__line">40</span>
  442. </aside>
  443. <code class="phpdocumentor-signature phpdocumentor-code ">
  444. <span class="phpdocumentor-signature__visibility">public</span>
  445. <span class="phpdocumentor-signature__type">mixed</span>
  446. <span class="phpdocumentor-signature__name">PATTERN_101</span>
  447. = <span class="phpdocumentor-signature__default-value">0b101</span>
  448. </code>
  449. </article>
  450. <article class="phpdocumentor-element -constant -public ">
  451. <h4 class="phpdocumentor-element__name" id="constant_PATTERN_110">
  452. PATTERN_110
  453. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_110" class="headerlink"><i class="fas fa-link"></i></a>
  454. </h4>
  455. <aside class="phpdocumentor-element-found-in">
  456. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  457. :
  458. <span class="phpdocumentor-element-found-in__line">41</span>
  459. </aside>
  460. <code class="phpdocumentor-signature phpdocumentor-code ">
  461. <span class="phpdocumentor-signature__visibility">public</span>
  462. <span class="phpdocumentor-signature__type">mixed</span>
  463. <span class="phpdocumentor-signature__name">PATTERN_110</span>
  464. = <span class="phpdocumentor-signature__default-value">0b110</span>
  465. </code>
  466. </article>
  467. <article class="phpdocumentor-element -constant -public ">
  468. <h4 class="phpdocumentor-element__name" id="constant_PATTERN_111">
  469. PATTERN_111
  470. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_111" class="headerlink"><i class="fas fa-link"></i></a>
  471. </h4>
  472. <aside class="phpdocumentor-element-found-in">
  473. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  474. :
  475. <span class="phpdocumentor-element-found-in__line">42</span>
  476. </aside>
  477. <code class="phpdocumentor-signature phpdocumentor-code ">
  478. <span class="phpdocumentor-signature__visibility">public</span>
  479. <span class="phpdocumentor-signature__type">mixed</span>
  480. <span class="phpdocumentor-signature__name">PATTERN_111</span>
  481. = <span class="phpdocumentor-signature__default-value">0b111</span>
  482. </code>
  483. </article>
  484. <article class="phpdocumentor-element -constant -public ">
  485. <h4 class="phpdocumentor-element__name" id="constant_PATTERNS">
  486. PATTERNS
  487. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERNS" class="headerlink"><i class="fas fa-link"></i></a>
  488. </h4>
  489. <aside class="phpdocumentor-element-found-in">
  490. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  491. :
  492. <span class="phpdocumentor-element-found-in__line">47</span>
  493. </aside>
  494. <code class="phpdocumentor-signature phpdocumentor-code ">
  495. <span class="phpdocumentor-signature__visibility">public</span>
  496. <span class="phpdocumentor-signature__type">array&lt;string|int, int&gt;</span>
  497. <span class="phpdocumentor-signature__name">PATTERNS</span>
  498. = <span class="phpdocumentor-signature__default-value">[self::PATTERN_000, self::PATTERN_001, self::PATTERN_010, self::PATTERN_011, self::PATTERN_100, self::PATTERN_101, self::PATTERN_110, self::PATTERN_111]</span>
  499. </code>
  500. </article>
  501. <article class="phpdocumentor-element -constant -private ">
  502. <h4 class="phpdocumentor-element__name" id="constant_PENALTY_N1">
  503. PENALTY_N1
  504. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PENALTY_N1" class="headerlink"><i class="fas fa-link"></i></a>
  505. </h4>
  506. <aside class="phpdocumentor-element-found-in">
  507. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  508. :
  509. <span class="phpdocumentor-element-found-in__line">63</span>
  510. </aside>
  511. <code class="phpdocumentor-signature phpdocumentor-code ">
  512. <span class="phpdocumentor-signature__visibility">private</span>
  513. <span class="phpdocumentor-signature__type">mixed</span>
  514. <span class="phpdocumentor-signature__name">PENALTY_N1</span>
  515. = <span class="phpdocumentor-signature__default-value">3</span>
  516. </code>
  517. </article>
  518. <article class="phpdocumentor-element -constant -private ">
  519. <h4 class="phpdocumentor-element__name" id="constant_PENALTY_N2">
  520. PENALTY_N2
  521. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PENALTY_N2" class="headerlink"><i class="fas fa-link"></i></a>
  522. </h4>
  523. <aside class="phpdocumentor-element-found-in">
  524. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  525. :
  526. <span class="phpdocumentor-element-found-in__line">64</span>
  527. </aside>
  528. <code class="phpdocumentor-signature phpdocumentor-code ">
  529. <span class="phpdocumentor-signature__visibility">private</span>
  530. <span class="phpdocumentor-signature__type">mixed</span>
  531. <span class="phpdocumentor-signature__name">PENALTY_N2</span>
  532. = <span class="phpdocumentor-signature__default-value">3</span>
  533. </code>
  534. </article>
  535. <article class="phpdocumentor-element -constant -private ">
  536. <h4 class="phpdocumentor-element__name" id="constant_PENALTY_N3">
  537. PENALTY_N3
  538. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PENALTY_N3" class="headerlink"><i class="fas fa-link"></i></a>
  539. </h4>
  540. <aside class="phpdocumentor-element-found-in">
  541. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  542. :
  543. <span class="phpdocumentor-element-found-in__line">65</span>
  544. </aside>
  545. <code class="phpdocumentor-signature phpdocumentor-code ">
  546. <span class="phpdocumentor-signature__visibility">private</span>
  547. <span class="phpdocumentor-signature__type">mixed</span>
  548. <span class="phpdocumentor-signature__name">PENALTY_N3</span>
  549. = <span class="phpdocumentor-signature__default-value">40</span>
  550. </code>
  551. </article>
  552. <article class="phpdocumentor-element -constant -private ">
  553. <h4 class="phpdocumentor-element__name" id="constant_PENALTY_N4">
  554. PENALTY_N4
  555. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PENALTY_N4" class="headerlink"><i class="fas fa-link"></i></a>
  556. </h4>
  557. <aside class="phpdocumentor-element-found-in">
  558. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  559. :
  560. <span class="phpdocumentor-element-found-in__line">66</span>
  561. </aside>
  562. <code class="phpdocumentor-signature phpdocumentor-code ">
  563. <span class="phpdocumentor-signature__visibility">private</span>
  564. <span class="phpdocumentor-signature__type">mixed</span>
  565. <span class="phpdocumentor-signature__name">PENALTY_N4</span>
  566. = <span class="phpdocumentor-signature__default-value">10</span>
  567. </code>
  568. </article>
  569. </section>
  570. <section class="phpdocumentor-properties">
  571. <h3 class="phpdocumentor-elements__header" id="properties">
  572. Properties
  573. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#properties" class="headerlink"><i class="fas fa-link"></i></a>
  574. </h3>
  575. <article
  576. class="
  577. phpdocumentor-element
  578. -property
  579. -private
  580. "
  581. >
  582. <h4 class="phpdocumentor-element__name" id="property_maskPattern">
  583. $maskPattern
  584. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#property_maskPattern" class="headerlink"><i class="fas fa-link"></i></a>
  585. <span class="phpdocumentor-element__modifiers">
  586. </span>
  587. </h4>
  588. <aside class="phpdocumentor-element-found-in">
  589. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  590. :
  591. <span class="phpdocumentor-element-found-in__line">71</span>
  592. </aside>
  593. <p class="phpdocumentor-summary">The current mask pattern value (0-7)</p>
  594. <code class="phpdocumentor-code phpdocumentor-signature ">
  595. <span class="phpdocumentor-signature__visibility">private</span>
  596. <span class="phpdocumentor-signature__type">int</span>
  597. <span class="phpdocumentor-signature__name">$maskPattern</span>
  598. </code>
  599. </article>
  600. </section>
  601. <section class="phpdocumentor-methods">
  602. <h3 class="phpdocumentor-elements__header" id="methods">
  603. Methods
  604. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
  605. </h3>
  606. <article
  607. class="phpdocumentor-element
  608. -method
  609. -public
  610. "
  611. >
  612. <h4 class="phpdocumentor-element__name" id="method___construct">
  613. __construct()
  614. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method___construct" class="headerlink"><i class="fas fa-link"></i></a>
  615. </h4>
  616. <aside class="phpdocumentor-element-found-in">
  617. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  618. :
  619. <span class="phpdocumentor-element-found-in__line">78</span>
  620. </aside>
  621. <p class="phpdocumentor-summary">MaskPattern constructor.</p>
  622. <code class="phpdocumentor-code phpdocumentor-signature ">
  623. <span class="phpdocumentor-signature__visibility">public</span>
  624. <span class="phpdocumentor-signature__name">__construct</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$maskPattern</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
  625. <div class="phpdocumentor-label-line">
  626. </div>
  627. <h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
  628. <dl class="phpdocumentor-argument-list">
  629. <dt class="phpdocumentor-argument-list__entry">
  630. <span class="phpdocumentor-signature__argument__name">$maskPattern</span>
  631. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  632. </dt>
  633. <dd class="phpdocumentor-argument-list__definition">
  634. </dd>
  635. </dl>
  636. <h5 class="phpdocumentor-tag-list__heading" id="tags">
  637. Tags
  638. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method___construct#tags" class="headerlink"><i class="fas fa-link"></i></a>
  639. </h5>
  640. <dl class="phpdocumentor-tag-list">
  641. <dt class="phpdocumentor-tag-list__entry">
  642. <span class="phpdocumentor-tag__name">throws</span>
  643. </dt>
  644. <dd class="phpdocumentor-tag-list__definition">
  645. <span class="phpdocumentor-tag-link"><a href="classes/chillerlan-QRCode-QRCodeException.html"><abbr title="\chillerlan\QRCode\QRCodeException">QRCodeException</abbr></a></span>
  646. </dd>
  647. </dl>
  648. </article>
  649. <article
  650. class="phpdocumentor-element
  651. -method
  652. -public
  653. -static "
  654. >
  655. <h4 class="phpdocumentor-element__name" id="method_getBestPattern">
  656. getBestPattern()
  657. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_getBestPattern" class="headerlink"><i class="fas fa-link"></i></a>
  658. </h4>
  659. <aside class="phpdocumentor-element-found-in">
  660. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  661. :
  662. <span class="phpdocumentor-element-found-in__line">120</span>
  663. </aside>
  664. <p class="phpdocumentor-summary">Evaluates the matrix of the given data interface and returns a new mask pattern instance for the best result</p>
  665. <code class="phpdocumentor-code phpdocumentor-signature ">
  666. <span class="phpdocumentor-signature__visibility">public</span>
  667. <span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">getBestPattern</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/chillerlan-QRCode-Data-QRMatrix.html"><abbr title="\chillerlan\QRCode\Data\QRMatrix">QRMatrix</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$QRMatrix</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">self</span></code>
  668. <div class="phpdocumentor-label-line">
  669. </div>
  670. <h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
  671. <dl class="phpdocumentor-argument-list">
  672. <dt class="phpdocumentor-argument-list__entry">
  673. <span class="phpdocumentor-signature__argument__name">$QRMatrix</span>
  674. : <span class="phpdocumentor-signature__argument__return-type"><a href="classes/chillerlan-QRCode-Data-QRMatrix.html"><abbr title="\chillerlan\QRCode\Data\QRMatrix">QRMatrix</abbr></a></span>
  675. </dt>
  676. <dd class="phpdocumentor-argument-list__definition">
  677. </dd>
  678. </dl>
  679. <section>
  680. <h5 class="phpdocumentor-return-value__heading">Return values</h5>
  681. <span class="phpdocumentor-signature__response_type">self</span>
  682. </section>
  683. </article>
  684. <article
  685. class="phpdocumentor-element
  686. -method
  687. -public
  688. "
  689. >
  690. <h4 class="phpdocumentor-element__name" id="method_getMask">
  691. getMask()
  692. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_getMask" class="headerlink"><i class="fas fa-link"></i></a>
  693. </h4>
  694. <aside class="phpdocumentor-element-found-in">
  695. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  696. :
  697. <span class="phpdocumentor-element-found-in__line">103</span>
  698. </aside>
  699. <p class="phpdocumentor-summary">Returns a closure that applies the mask for the chosen mask pattern.</p>
  700. <code class="phpdocumentor-code phpdocumentor-signature ">
  701. <span class="phpdocumentor-signature__visibility">public</span>
  702. <span class="phpdocumentor-signature__name">getMask</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><abbr title="\Closure">Closure</abbr></span></code>
  703. <div class="phpdocumentor-label-line">
  704. </div>
  705. <section class="phpdocumentor-description"><p>Note that the diagram in section 6.8.1 is misleading since it indicates that $i is column position
  706. and $j is row position. In fact, as the text says, $i is row position and $j is column position.</p>
  707. </section>
  708. <h5 class="phpdocumentor-tag-list__heading" id="tags">
  709. Tags
  710. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_getMask#tags" class="headerlink"><i class="fas fa-link"></i></a>
  711. </h5>
  712. <dl class="phpdocumentor-tag-list">
  713. <dt class="phpdocumentor-tag-list__entry">
  714. <span class="phpdocumentor-tag__name">see</span>
  715. </dt>
  716. <dd class="phpdocumentor-tag-list__definition">
  717. <span class="phpdocumentor-tag-link"><a href="https://www.thonky.com/qr-code-tutorial/mask-patterns">https://www.thonky.com/qr-code-tutorial/mask-patterns</a></span>
  718. </dd>
  719. <dt class="phpdocumentor-tag-list__entry">
  720. <span class="phpdocumentor-tag__name">see</span>
  721. </dt>
  722. <dd class="phpdocumentor-tag-list__definition">
  723. <span class="phpdocumentor-tag-link"><a href="https://github.com/zxing/zxing/blob/e9e2bd280bcaeabd59d0f955798384fe6c018a6c/core/src/main/java/com/google/zxing/qrcode/decoder/DataMask.java#L32-L117">https://github.com/zxing/zxing/blob/e9e2bd280bcaeabd59d0f955798384fe6c018a6c/core/src/main/java/com/google/zxing/qrcode/decoder/DataMask.java#L32-L117</a></span>
  724. </dd>
  725. </dl>
  726. <section>
  727. <h5 class="phpdocumentor-return-value__heading">Return values</h5>
  728. <span class="phpdocumentor-signature__response_type"><abbr title="\Closure">Closure</abbr></span>
  729. </section>
  730. </article>
  731. <article
  732. class="phpdocumentor-element
  733. -method
  734. -public
  735. "
  736. >
  737. <h4 class="phpdocumentor-element__name" id="method_getPattern">
  738. getPattern()
  739. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_getPattern" class="headerlink"><i class="fas fa-link"></i></a>
  740. </h4>
  741. <aside class="phpdocumentor-element-found-in">
  742. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  743. :
  744. <span class="phpdocumentor-element-found-in__line">90</span>
  745. </aside>
  746. <p class="phpdocumentor-summary">Returns the current mask pattern</p>
  747. <code class="phpdocumentor-code phpdocumentor-signature ">
  748. <span class="phpdocumentor-signature__visibility">public</span>
  749. <span class="phpdocumentor-signature__name">getPattern</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
  750. <div class="phpdocumentor-label-line">
  751. </div>
  752. <section>
  753. <h5 class="phpdocumentor-return-value__heading">Return values</h5>
  754. <span class="phpdocumentor-signature__response_type">int</span>
  755. </section>
  756. </article>
  757. <article
  758. class="phpdocumentor-element
  759. -method
  760. -public
  761. -static "
  762. >
  763. <h4 class="phpdocumentor-element__name" id="method_testRule1">
  764. testRule1()
  765. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_testRule1" class="headerlink"><i class="fas fa-link"></i></a>
  766. </h4>
  767. <aside class="phpdocumentor-element-found-in">
  768. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  769. :
  770. <span class="phpdocumentor-element-found-in__line">143</span>
  771. </aside>
  772. <p class="phpdocumentor-summary">Apply mask penalty rule 1 and return the penalty. Find repetitive cells with the same color and
  773. give penalty to them. Example: 00000 or 11111.</p>
  774. <code class="phpdocumentor-code phpdocumentor-signature ">
  775. <span class="phpdocumentor-signature__visibility">public</span>
  776. <span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">testRule1</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$matrix</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$height</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$width</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
  777. <div class="phpdocumentor-label-line">
  778. </div>
  779. <h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
  780. <dl class="phpdocumentor-argument-list">
  781. <dt class="phpdocumentor-argument-list__entry">
  782. <span class="phpdocumentor-signature__argument__name">$matrix</span>
  783. : <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
  784. </dt>
  785. <dd class="phpdocumentor-argument-list__definition">
  786. </dd>
  787. <dt class="phpdocumentor-argument-list__entry">
  788. <span class="phpdocumentor-signature__argument__name">$height</span>
  789. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  790. </dt>
  791. <dd class="phpdocumentor-argument-list__definition">
  792. </dd>
  793. <dt class="phpdocumentor-argument-list__entry">
  794. <span class="phpdocumentor-signature__argument__name">$width</span>
  795. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  796. </dt>
  797. <dd class="phpdocumentor-argument-list__definition">
  798. </dd>
  799. </dl>
  800. <section>
  801. <h5 class="phpdocumentor-return-value__heading">Return values</h5>
  802. <span class="phpdocumentor-signature__response_type">int</span>
  803. </section>
  804. </article>
  805. <article
  806. class="phpdocumentor-element
  807. -method
  808. -public
  809. -static "
  810. >
  811. <h4 class="phpdocumentor-element__name" id="method_testRule2">
  812. testRule2()
  813. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_testRule2" class="headerlink"><i class="fas fa-link"></i></a>
  814. </h4>
  815. <aside class="phpdocumentor-element-found-in">
  816. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  817. :
  818. <span class="phpdocumentor-element-found-in__line">195</span>
  819. </aside>
  820. <p class="phpdocumentor-summary">Apply mask penalty rule 2 and return the penalty. Find 2x2 blocks with the same color and give
  821. penalty to them. This is actually equivalent to the spec&#039;s rule, which is to find MxN blocks and give a
  822. penalty proportional to (M-1)x(N-1), because this is the number of 2x2 blocks inside such a block.</p>
  823. <code class="phpdocumentor-code phpdocumentor-signature ">
  824. <span class="phpdocumentor-signature__visibility">public</span>
  825. <span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">testRule2</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$matrix</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$height</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$width</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
  826. <div class="phpdocumentor-label-line">
  827. </div>
  828. <h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
  829. <dl class="phpdocumentor-argument-list">
  830. <dt class="phpdocumentor-argument-list__entry">
  831. <span class="phpdocumentor-signature__argument__name">$matrix</span>
  832. : <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
  833. </dt>
  834. <dd class="phpdocumentor-argument-list__definition">
  835. </dd>
  836. <dt class="phpdocumentor-argument-list__entry">
  837. <span class="phpdocumentor-signature__argument__name">$height</span>
  838. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  839. </dt>
  840. <dd class="phpdocumentor-argument-list__definition">
  841. </dd>
  842. <dt class="phpdocumentor-argument-list__entry">
  843. <span class="phpdocumentor-signature__argument__name">$width</span>
  844. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  845. </dt>
  846. <dd class="phpdocumentor-argument-list__definition">
  847. </dd>
  848. </dl>
  849. <section>
  850. <h5 class="phpdocumentor-return-value__heading">Return values</h5>
  851. <span class="phpdocumentor-signature__response_type">int</span>
  852. </section>
  853. </article>
  854. <article
  855. class="phpdocumentor-element
  856. -method
  857. -public
  858. -static "
  859. >
  860. <h4 class="phpdocumentor-element__name" id="method_testRule3">
  861. testRule3()
  862. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_testRule3" class="headerlink"><i class="fas fa-link"></i></a>
  863. </h4>
  864. <aside class="phpdocumentor-element-found-in">
  865. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  866. :
  867. <span class="phpdocumentor-element-found-in__line">228</span>
  868. </aside>
  869. <p class="phpdocumentor-summary">Apply mask penalty rule 3 and return the penalty. Find consecutive runs of 1:1:3:1:1:4
  870. starting with black, or 4:1:1:3:1:1 starting with white, and give penalty to them. If we
  871. find patterns like 000010111010000, we give penalty once.</p>
  872. <code class="phpdocumentor-code phpdocumentor-signature ">
  873. <span class="phpdocumentor-signature__visibility">public</span>
  874. <span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">testRule3</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$matrix</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$height</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$width</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
  875. <div class="phpdocumentor-label-line">
  876. </div>
  877. <h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
  878. <dl class="phpdocumentor-argument-list">
  879. <dt class="phpdocumentor-argument-list__entry">
  880. <span class="phpdocumentor-signature__argument__name">$matrix</span>
  881. : <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
  882. </dt>
  883. <dd class="phpdocumentor-argument-list__definition">
  884. </dd>
  885. <dt class="phpdocumentor-argument-list__entry">
  886. <span class="phpdocumentor-signature__argument__name">$height</span>
  887. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  888. </dt>
  889. <dd class="phpdocumentor-argument-list__definition">
  890. </dd>
  891. <dt class="phpdocumentor-argument-list__entry">
  892. <span class="phpdocumentor-signature__argument__name">$width</span>
  893. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  894. </dt>
  895. <dd class="phpdocumentor-argument-list__definition">
  896. </dd>
  897. </dl>
  898. <section>
  899. <h5 class="phpdocumentor-return-value__heading">Return values</h5>
  900. <span class="phpdocumentor-signature__response_type">int</span>
  901. </section>
  902. </article>
  903. <article
  904. class="phpdocumentor-element
  905. -method
  906. -public
  907. -static "
  908. >
  909. <h4 class="phpdocumentor-element__name" id="method_testRule4">
  910. testRule4()
  911. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_testRule4" class="headerlink"><i class="fas fa-link"></i></a>
  912. </h4>
  913. <aside class="phpdocumentor-element-found-in">
  914. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  915. :
  916. <span class="phpdocumentor-element-found-in__line">314</span>
  917. </aside>
  918. <p class="phpdocumentor-summary">Apply mask penalty rule 4 and return the penalty. Calculate the ratio of dark cells and give
  919. penalty if the ratio is far from 50%. It gives 10 penalty for 5% distance.</p>
  920. <code class="phpdocumentor-code phpdocumentor-signature ">
  921. <span class="phpdocumentor-signature__visibility">public</span>
  922. <span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">testRule4</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$matrix</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$height</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$width</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
  923. <div class="phpdocumentor-label-line">
  924. </div>
  925. <h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
  926. <dl class="phpdocumentor-argument-list">
  927. <dt class="phpdocumentor-argument-list__entry">
  928. <span class="phpdocumentor-signature__argument__name">$matrix</span>
  929. : <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
  930. </dt>
  931. <dd class="phpdocumentor-argument-list__definition">
  932. </dd>
  933. <dt class="phpdocumentor-argument-list__entry">
  934. <span class="phpdocumentor-signature__argument__name">$height</span>
  935. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  936. </dt>
  937. <dd class="phpdocumentor-argument-list__definition">
  938. </dd>
  939. <dt class="phpdocumentor-argument-list__entry">
  940. <span class="phpdocumentor-signature__argument__name">$width</span>
  941. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  942. </dt>
  943. <dd class="phpdocumentor-argument-list__definition">
  944. </dd>
  945. </dl>
  946. <section>
  947. <h5 class="phpdocumentor-return-value__heading">Return values</h5>
  948. <span class="phpdocumentor-signature__response_type">int</span>
  949. </section>
  950. </article>
  951. <article
  952. class="phpdocumentor-element
  953. -method
  954. -private
  955. -static "
  956. >
  957. <h4 class="phpdocumentor-element__name" id="method_applyRule1">
  958. applyRule1()
  959. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_applyRule1" class="headerlink"><i class="fas fa-link"></i></a>
  960. </h4>
  961. <aside class="phpdocumentor-element-found-in">
  962. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  963. :
  964. <span class="phpdocumentor-element-found-in__line">162</span>
  965. </aside>
  966. <code class="phpdocumentor-code phpdocumentor-signature ">
  967. <span class="phpdocumentor-signature__visibility">private</span>
  968. <span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">applyRule1</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$rc</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
  969. <div class="phpdocumentor-label-line">
  970. </div>
  971. <h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
  972. <dl class="phpdocumentor-argument-list">
  973. <dt class="phpdocumentor-argument-list__entry">
  974. <span class="phpdocumentor-signature__argument__name">$rc</span>
  975. : <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
  976. </dt>
  977. <dd class="phpdocumentor-argument-list__definition">
  978. </dd>
  979. </dl>
  980. <section>
  981. <h5 class="phpdocumentor-return-value__heading">Return values</h5>
  982. <span class="phpdocumentor-signature__response_type">int</span>
  983. </section>
  984. </article>
  985. <article
  986. class="phpdocumentor-element
  987. -method
  988. -private
  989. -static "
  990. >
  991. <h4 class="phpdocumentor-element__name" id="method_isWhiteHorizontal">
  992. isWhiteHorizontal()
  993. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_isWhiteHorizontal" class="headerlink"><i class="fas fa-link"></i></a>
  994. </h4>
  995. <aside class="phpdocumentor-element-found-in">
  996. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  997. :
  998. <span class="phpdocumentor-element-found-in__line">277</span>
  999. </aside>
  1000. <code class="phpdocumentor-code phpdocumentor-signature ">
  1001. <span class="phpdocumentor-signature__visibility">private</span>
  1002. <span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">isWhiteHorizontal</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$row</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$width</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$from</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$to</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">bool</span></code>
  1003. <div class="phpdocumentor-label-line">
  1004. </div>
  1005. <h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
  1006. <dl class="phpdocumentor-argument-list">
  1007. <dt class="phpdocumentor-argument-list__entry">
  1008. <span class="phpdocumentor-signature__argument__name">$row</span>
  1009. : <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
  1010. </dt>
  1011. <dd class="phpdocumentor-argument-list__definition">
  1012. </dd>
  1013. <dt class="phpdocumentor-argument-list__entry">
  1014. <span class="phpdocumentor-signature__argument__name">$width</span>
  1015. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  1016. </dt>
  1017. <dd class="phpdocumentor-argument-list__definition">
  1018. </dd>
  1019. <dt class="phpdocumentor-argument-list__entry">
  1020. <span class="phpdocumentor-signature__argument__name">$from</span>
  1021. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  1022. </dt>
  1023. <dd class="phpdocumentor-argument-list__definition">
  1024. </dd>
  1025. <dt class="phpdocumentor-argument-list__entry">
  1026. <span class="phpdocumentor-signature__argument__name">$to</span>
  1027. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  1028. </dt>
  1029. <dd class="phpdocumentor-argument-list__definition">
  1030. </dd>
  1031. </dl>
  1032. <section>
  1033. <h5 class="phpdocumentor-return-value__heading">Return values</h5>
  1034. <span class="phpdocumentor-signature__response_type">bool</span>
  1035. </section>
  1036. </article>
  1037. <article
  1038. class="phpdocumentor-element
  1039. -method
  1040. -private
  1041. -static "
  1042. >
  1043. <h4 class="phpdocumentor-element__name" id="method_isWhiteVertical">
  1044. isWhiteVertical()
  1045. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_isWhiteVertical" class="headerlink"><i class="fas fa-link"></i></a>
  1046. </h4>
  1047. <aside class="phpdocumentor-element-found-in">
  1048. <abbr class="phpdocumentor-element-found-in__file" title="src/Common/MaskPattern.php"><a href="files/src-common-maskpattern.html"><abbr title="src/Common/MaskPattern.php">MaskPattern.php</abbr></a></abbr>
  1049. :
  1050. <span class="phpdocumentor-element-found-in__line">295</span>
  1051. </aside>
  1052. <code class="phpdocumentor-code phpdocumentor-signature ">
  1053. <span class="phpdocumentor-signature__visibility">private</span>
  1054. <span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">isWhiteVertical</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$matrix</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$height</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$from</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$to</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">bool</span></code>
  1055. <div class="phpdocumentor-label-line">
  1056. </div>
  1057. <h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
  1058. <dl class="phpdocumentor-argument-list">
  1059. <dt class="phpdocumentor-argument-list__entry">
  1060. <span class="phpdocumentor-signature__argument__name">$matrix</span>
  1061. : <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
  1062. </dt>
  1063. <dd class="phpdocumentor-argument-list__definition">
  1064. </dd>
  1065. <dt class="phpdocumentor-argument-list__entry">
  1066. <span class="phpdocumentor-signature__argument__name">$height</span>
  1067. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  1068. </dt>
  1069. <dd class="phpdocumentor-argument-list__definition">
  1070. </dd>
  1071. <dt class="phpdocumentor-argument-list__entry">
  1072. <span class="phpdocumentor-signature__argument__name">$x</span>
  1073. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  1074. </dt>
  1075. <dd class="phpdocumentor-argument-list__definition">
  1076. </dd>
  1077. <dt class="phpdocumentor-argument-list__entry">
  1078. <span class="phpdocumentor-signature__argument__name">$from</span>
  1079. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  1080. </dt>
  1081. <dd class="phpdocumentor-argument-list__definition">
  1082. </dd>
  1083. <dt class="phpdocumentor-argument-list__entry">
  1084. <span class="phpdocumentor-signature__argument__name">$to</span>
  1085. : <span class="phpdocumentor-signature__argument__return-type">int</span>
  1086. </dt>
  1087. <dd class="phpdocumentor-argument-list__definition">
  1088. </dd>
  1089. </dl>
  1090. <section>
  1091. <h5 class="phpdocumentor-return-value__heading">Return values</h5>
  1092. <span class="phpdocumentor-signature__response_type">bool</span>
  1093. </section>
  1094. </article>
  1095. </section>
  1096. <div class="phpdocumentor-modal" id="source-view">
  1097. <div class="phpdocumentor-modal-bg" data-exit-button></div>
  1098. <div class="phpdocumentor-modal-container">
  1099. <div class="phpdocumentor-modal-content">
  1100. <pre style="max-height: 500px; overflow-y: scroll" data-src="files/src/Common/MaskPattern.php.txt" class="language-php line-numbers linkable-line-numbers"></pre>
  1101. </div>
  1102. <button data-exit-button class="phpdocumentor-modal__close">&times;</button>
  1103. </div>
  1104. </div>
  1105. <script type="text/javascript">
  1106. (function () {
  1107. function loadExternalCodeSnippet(el, url, line) {
  1108. Array.prototype.slice.call(el.querySelectorAll('pre[data-src]')).forEach((pre) => {
  1109. const src = url || pre.getAttribute('data-src').replace(/\\/g, '/');
  1110. const language = 'php';
  1111. const code = document.createElement('code');
  1112. code.className = 'language-' + language;
  1113. pre.textContent = '';
  1114. pre.setAttribute('data-line', line)
  1115. code.textContent = 'Loading…';
  1116. pre.appendChild(code);
  1117. var xhr = new XMLHttpRequest();
  1118. xhr.open('GET', src, true);
  1119. xhr.onreadystatechange = function () {
  1120. if (xhr.readyState !== 4) {
  1121. return;
  1122. }
  1123. if (xhr.status < 400 && xhr.responseText) {
  1124. code.textContent = xhr.responseText;
  1125. Prism.highlightElement(code);
  1126. return;
  1127. }
  1128. if (xhr.status === 404) {
  1129. code.textContent = '✖ Error: File could not be found';
  1130. return;
  1131. }
  1132. if (xhr.status >= 400) {
  1133. code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
  1134. return;
  1135. }
  1136. code.textContent = '✖ Error: An unknown error occurred';
  1137. };
  1138. xhr.send(null);
  1139. });
  1140. }
  1141. const modalButtons = document.querySelectorAll("[data-modal]");
  1142. const openedAsLocalFile = window.location.protocol === 'file:';
  1143. if (modalButtons.length > 0 && openedAsLocalFile) {
  1144. console.warn(
  1145. 'Viewing the source code is unavailable because you are opening this page from the file:// scheme; ' +
  1146. 'browsers block XHR requests when a page is opened this way'
  1147. );
  1148. }
  1149. modalButtons.forEach(function (trigger) {
  1150. if (openedAsLocalFile) {
  1151. trigger.setAttribute("hidden", "hidden");
  1152. }
  1153. trigger.addEventListener("click", function (event) {
  1154. event.preventDefault();
  1155. const modal = document.getElementById(trigger.dataset.modal);
  1156. if (!modal) {
  1157. console.error(`Modal with id "${trigger.dataset.modal}" could not be found`);
  1158. return;
  1159. }
  1160. modal.classList.add("phpdocumentor-modal__open");
  1161. loadExternalCodeSnippet(modal, trigger.dataset.src || null, trigger.dataset.line)
  1162. const exits = modal.querySelectorAll("[data-exit-button]");
  1163. exits.forEach(function (exit) {
  1164. exit.addEventListener("click", function (event) {
  1165. event.preventDefault();
  1166. modal.classList.remove("phpdocumentor-modal__open");
  1167. });
  1168. });
  1169. });
  1170. });
  1171. })();
  1172. </script>
  1173. </article>
  1174. </section>
  1175. <section class="phpdocumentor-on-this-page__sidebar">
  1176. <section class="phpdocumentor-on-this-page__content">
  1177. <strong class="phpdocumentor-on-this-page__title">On this page</strong>
  1178. <ul class="phpdocumentor-list -clean">
  1179. <li class="phpdocumentor-on-this-page-section__title">Table Of Contents</li>
  1180. <li>
  1181. <ul class="phpdocumentor-list -clean">
  1182. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#toc-constants">Constants</a></li>
  1183. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#toc-properties">Properties</a></li>
  1184. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#toc-methods">Methods</a></li>
  1185. </ul>
  1186. </li>
  1187. <li class="phpdocumentor-on-this-page-section__title">Constants</li>
  1188. <li>
  1189. <ul class="phpdocumentor-list -clean">
  1190. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_AUTO">AUTO</a></li>
  1191. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_000">PATTERN_000</a></li>
  1192. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_001">PATTERN_001</a></li>
  1193. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_010">PATTERN_010</a></li>
  1194. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_011">PATTERN_011</a></li>
  1195. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_100">PATTERN_100</a></li>
  1196. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_101">PATTERN_101</a></li>
  1197. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_110">PATTERN_110</a></li>
  1198. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERN_111">PATTERN_111</a></li>
  1199. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PATTERNS">PATTERNS</a></li>
  1200. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PENALTY_N1">PENALTY_N1</a></li>
  1201. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PENALTY_N2">PENALTY_N2</a></li>
  1202. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PENALTY_N3">PENALTY_N3</a></li>
  1203. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#constant_PENALTY_N4">PENALTY_N4</a></li>
  1204. </ul>
  1205. </li>
  1206. <li class="phpdocumentor-on-this-page-section__title">Properties</li>
  1207. <li>
  1208. <ul class="phpdocumentor-list -clean">
  1209. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#property_maskPattern">$maskPattern<a href="classes/chillerlan-QRCode-Common-MaskPattern.html"></li>
  1210. </ul>
  1211. </li>
  1212. <li class="phpdocumentor-on-this-page-section__title">Methods</li>
  1213. <li>
  1214. <ul class="phpdocumentor-list -clean">
  1215. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method___construct">__construct()</a></li>
  1216. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_getBestPattern">getBestPattern()</a></li>
  1217. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_getMask">getMask()</a></li>
  1218. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_getPattern">getPattern()</a></li>
  1219. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_testRule1">testRule1()</a></li>
  1220. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_testRule2">testRule2()</a></li>
  1221. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_testRule3">testRule3()</a></li>
  1222. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_testRule4">testRule4()</a></li>
  1223. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_applyRule1">applyRule1()</a></li>
  1224. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_isWhiteHorizontal">isWhiteHorizontal()</a></li>
  1225. <li><a href="classes/chillerlan-QRCode-Common-MaskPattern.html#method_isWhiteVertical">isWhiteVertical()</a></li>
  1226. </ul>
  1227. </li>
  1228. </ul>
  1229. </section>
  1230. </section>
  1231. </div>
  1232. <section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
  1233. <section class="phpdocumentor-search-results__dialog">
  1234. <header class="phpdocumentor-search-results__header">
  1235. <h2 class="phpdocumentor-search-results__title">Search results</h2>
  1236. <button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
  1237. </header>
  1238. <section class="phpdocumentor-search-results__body">
  1239. <ul class="phpdocumentor-search-results__entries"></ul>
  1240. </section>
  1241. </section>
  1242. </section>
  1243. </div>
  1244. <a href="classes/chillerlan-QRCode-Common-MaskPattern.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
  1245. </main>
  1246. <script>
  1247. cssVars({});
  1248. </script>
  1249. <script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
  1250. <script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
  1251. <script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
  1252. <script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
  1253. </body>
  1254. </html>