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