LoginSignup
5
5

More than 1 year has passed since last update.

QRコードの8種類のマスクを図示する

Last updated at Posted at 2020-11-20

参考(別投稿)

1ファイルのHTML(+JavaScript)で、QRcodeを生成する
https://qiita.com/santarou6/items/db17788158dba38f3a5c


<本編>QRコードの8種類のマスクを図示する

本例は、一辺57マスの、型番10

色凡例

マスク相当は白と黒。
(青と黄は、位置検出パターンや位置合わせパターン等でマスク化されない部分である。詳細、JIS規格 X0510 7.8マスク処理を参照。)

*規格では、横方向がj(列位置)で、縦方向がi(行位置)
*左上が原点(0,0)ゼロ始まり

8種類について

000 → (i+j) mod 2 = 0
001 → i mod 2 = 0
010 → j mod 3 = 0
011 → (i+j) mod 3 = 0
100 → (( i div 2)+(j div 3)) mod 2 = 0
101 → (ij) mod 2 + (ij) mod 3 = 0
110 → ((ij) mod 2 +(ij) mod 3) mod 2 = 0
111 → ((ij)mod 3 + (i+j) mod 2) mod 2 = 0

各マスク

000 → (i+j) mod 2 = 0

000.png

001 → i mod 2 = 0

001.png

010 → j mod 3 = 0

010.png

011 → (i+j) mod 3 = 0

011.png

100 → (( i div 2)+(j div 3)) mod 2 = 0

100.png

101 → (ij) mod 2 + (ij) mod 3 = 0

101.png

110 → ((ij) mod 2 +(ij) mod 3) mod 2 = 0

110.png

111 → ((ij)mod 3 + (i+j) mod 2) mod 2 = 0

111.png

ソースコード(HTML/JavaScript)

https://github.com/santarou6/QRcode_javascript/blob/main/t_c99-mask.html
https://github.com/santarou6/QRcode_javascript/blob/main/index_c99-mask.js

QRコードにおけるマスクの指定

上記3ビットのマスク種類だが、QRコードの以下(赤マス)の位置に指定してある。(より正しくは、101とXORとった値。)マスクを外せば、QRコードは、通常の文字コードがビット化されて並んでいるだけなので、読もうと思えば人力でも読める(はず)。

マスク位置.png

横方向は、左から0→1→2ビット。縦方向は、下から0→1→2ビット。(同じものが2か所に記載ある。)

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5