誤り訂正レベルで実際に何が変わるのか
QRコードは、中身と一緒に冗長なデータを持っています。そのため一部が読めなくなっても、読み取り側が元の内容を復元できます。この冗長さをどれだけ持たせるかがL・M・Q・Hの4段階で、それぞれおよそ7%・15%・25%・30%を復元できる、と説明されるのが一般的です。この説明を頼りにする前に、知っておくとよいことが2つあります。
1つめは、この割合が数えているのは面積ではなくコードワードだという点です。コードワードは8モジュールのまとまりで、1モジュールでも汚れるとそのまとまり全体が壊れます。散らばった汚れが、同じ面積の1つの染みより遥かに効くのはこのためです。染みなら隣接する数個のコードワードを壊すだけですが、同じ数の点が散らばると、その点の数だけコードワードが壊れます。下の耐久テストが散らばった破損だけをモジュール個数で示しているのはこの理由で、割合で表すと0%付近に張り付いて何も分からなくなります。
2つめは、3隅にある四角——位置検出パターン——が誤り訂正の対象外だという点です。これは読み取り機がQRの位置と向きを判断するために使うもので、デコードが始まる前に必要になります。1つ失われると訂正のしようがありません。デコード自体が始まらないからです。破れたチラシや断裁のずれたラベルでQRが読めない最大の原因はこれで、誤り訂正レベルをいくら上げても防げません。
実際にどのレベルを選ぶか
- L:画面表示や、汚れる心配のない印刷向き。コードが最も小さく粗くなるため、遠くからや小さいサイズでの読み取りに有利です。
- M:ほとんどの印刷物で妥当な既定値。本ツールもこれで始まります。
- Q / H:商品ラベル、屋外の掲示、手で扱われるもの、そしてロゴを載せる場合。コードから見ればロゴは特別なものではなく「隠された部分」でしかないので、その分を冗長さで払う必要があります。
レベルを上げることには代償があります。同じ内容でも格子が大きく密になり、密な格子は遠くからや小さい印刷では読みにくくなります。離れた場所から読ませる必要があるなら、同じ面積に高いレベルを詰め込むより、低いレベルを大きく印刷したほうが有利なことがよくあります。
色とロゴ
読み取り機はモジュールの明暗で判定しており、色相では判定していません。人の目には全く違う2色でも、明るさが近ければスキャナには区別できません。黄色と白の組み合わせが典型です。本ツールは指定された2色のコントラストを計算し、読み取りが怪しくなる範囲に入ると警告します。また、前景が背景より明るい場合も警告します。多くの読み取り機は反転したコードを扱えないためです。
中央ロゴを設定すると、誤り訂正レベルを自動的にHへ引き上げます。ロゴが覆っている部分のデータを、どこかから復元する必要があるためです。そのロゴの大きさが実際に安全かどうかは経験則で決めるものではありません。耐久テストを実行し、「中央が隠れる」の行を見てください。ロゴの範囲を失われたものとして扱ったうえで実測しています。
入力内容の扱い
すべての処理はブラウザの中で行われます。入力した内容がどこかに送信されることはありません。また本ツールは履歴を一切保存しません。localStorage にも、どこにも残しません。QR作成ツールはWi-Fiのパスワードや連絡先を扱う道具であり、それを共用のパソコンに残すのは実際にリスクになるため、機能そのものを持たせていません。再読み込みすると空のフォームから始まります。
逆向きに注意すべき点が1つあります。QRコードそのものには、入力した内容がそのまま入っています。印刷したWi-FiのQRを撮影できる人は、そこからパスワードを読み取れます。印刷したQRは、同じ紙にその内容を文字で書いた場合と同じものとして扱ってください。