QRコード生成ページ
このページでは設定された情報に対するQRコードを生成して表示します。
QRコード生成はサーバ側で行っており、入力された情報はPOSTで送信されURLの形では残っていませんが、ネットワーク上に送信されることにはご留意ください。
なお、QRコード生成リクエストはPOSTでなくGETでも出せますが、URLパラメータがログに残ります。(現状でリンクを自動提供するコードは入れていません。)
モード選択・情報入力
生成されたQRコード
以下に生成されたQRコードが表示されます。
エラー訂正レベル4種類に対応したQRコードが表示されます。
それぞれLが7%、Mが15%、Qが25%、Hが30%の欠損が生じても読み取れる仕様となっています。
QRコードの概説
上のサンプルQRコードの画像において、色枠で囲った部分がデータの再現のキーとなる領域となる。
サンプルはQRコードモデル2で、エラー訂正レベルH (30%)、サイズを示すバージョンは6 (41x41セル)となっている。
赤 (3箇所): finder patternで、7x7の正方形の中に3x3セルの中心の黒、外周1セル幅の枠で構成され、縦横斜の3方向を検出する(外周のquite zoneから1セル分を含んでどの方向から読んでも白黒が1:1:3:1:1で出現する)ことで方向と全体の位置を検出する。必ず右下を除く3隅に配置される。
橙 (1箇所): alignment patternで、モデル2の場合のみ、全体のゆがみを補正するために配置され、サイズが大きくなると配置数が増える(サンプルでは1つ)。なお、右下隅から4セルずつ入ったところに必ず一つ入る。
緑 (外周): quite zoneで、QRコードを周囲のイメージから区別するために離すための領域で規格上は4セル分の幅が要求される。
黄 (2箇所): timing patternで、白黒が交互に配置される直線領域となり、セルの座標を確定するために利用される。
青・薄青 (各2-3箇所): フォーマット情報で青(左上のfinder pattern周辺で、上端から時計回りに並ぶtiming patternを除くセル)と薄青(右上・左下のfinder pattern周辺で、左下領域上端の必ず黒のセル以外の、右上の右端から反時計回りに並ぶセル)の2領域で同じパターンが埋め込まれる。
quite zoneは、finder patternの検出のために白の外周1セル分が必ず必要となるのと、さらに周囲との区別をつけるための空白部分の確保が必要となるために、規格上は4セル分の幅が必要とされている。
削るとfinder patternの検出が困難となりQRコードの読み取りエラーにつながる。
フォーマット情報は、エラー訂正レベル(2bit)と、適用されているマスクパターン(3bitで8種類からの選択)の合計5bitのデータを、BCH(15,5)符号化したうえで全てが0(白)にならないように固定パターンとXORをしたデータとなる。
全てが0になった場合finder patternの外周の1セルの白と区別がつかなくなるためにこの変換が行われている。
なお、BCH(15,5)符号化の上でXORなので、先頭5セルが確実に読めればエラー訂正レベルとマスクパターンの5bitの情報は確定する(もしくはXOR後の5bitのパターンと直接比較することも可能である)。
これ以外の領域はすべてデータとエラー訂正レベルに合わせた量のデータが埋め込まれる。
なお、これらのデータ領域は、その白黒の分布が一番ランダムになるように選択されたマスクパターンによって、XORをかけて変換されており、マスクパターンはフォーマット情報に書き込まれている。
コードを利用する上での要配慮点
中心部をアイコンなどの画像とリプレースする場合は、エラー訂正のセル数を喰うことになるので、十分なエラー訂正レベルを確保することが必須となる。単純に画像へリプレースした領域のセル数分より多いエラー訂正のセル数があればいいという話でなく、その倍やパターン次第ではより多いエラー訂正用のセル数が必要となるので注意。
LCDの画面上だけで利用する場合は、エラー訂正については特段の配慮は不要(Lでもいける)が、QRコードとして認識するためにquite zoneの最低1-2セルの確保は必須。
紙に印刷するなどの場合、ゆがみなどの補正を考慮してできるだけQ(かH)のエラー訂正レベルを利用することが望まれる。
LCDでなくLEDの球が並んだ種類の大画面モニターパネルに出す場合、モアレやLED制御のちらつきなどとの相互関係もあるため、可能な限りのマージンを確保しておく。特にLEDの球数が少ないパネルに出す場合、表示される際のセル当たりのLEDの数に合わせた画像の調整も重要となる。