QRコードの仕様

QRコードとは、暗い色と明るい色のドットが正方形に配列されたコードです。1つのドット(または「モジュール」)は1ビットの情報に相当します。
QRコードにはさまざまなデータが含まれており、異なるモデル、バージョン、レベルがあります。いずれの場合も必ず、メッセージ、アライメントに関するメタデータ、サイズ、フォーマット、誤り訂正ビットが含まれています。そして、国際規格ISO/IEC 18004(1、2および2005)に準拠しています。

QRコードシンボルは、データや誤り訂正コード語を含む符号化領域と、シンボルのメタデータおよび位置データを含む機能パターンから構成されます。
QRコードは以下の要素によって構成されています:
□ | クワイエットゾーン:QRコードの周囲にある空白の部分 |
□ | ファインダーパターン:QRコードの位置を認識するためのゾーン |
□ | 拡張パターン:QRコードのアライメント用マーカー(モデル1) |
□ | アライメントパターン:QRコードのアライメント用マーカー(モデル2および2005) |
□ | タイミングパターン:モジュールサイズ(ピクセル単位)を決めるデータ |
□ | 形式情報:QRコードレベルを表すゾーン |
□ | 型番情報:QRコードサイズ(例えば25 x 25モジュールなど)を表すデータ(モジュール2および2005) |
□ | データの内容と誤り訂正コード語:シンボルが伝える一次情報と誤り訂正用の追加情報 |
QRコードのモデル、形式、型番に応じて構成は変化します。例えば、モデル1のQRコードにはアライメントパターンはありませんが、拡張パターンはあります。マイクロQRコードにはファインダーパターンが1つだけ含まれ、アライメントパターンはありません。
モデル1のQRコードシンボルの構成
QRコード2005シンボルの構成
マイクロQRコードシンボルの構成

QRコードは以下のサブタイプの一つです:
□ | ベーシック:デフォルトのサブタイプ。 |
□ | ECI (拡張チャンネル解釈):ECIサブタイプは、データの解釈情報をQRコードに埋め込むための一貫した方法を提供します。ECIプロトコルは、AIM Inc.で定義されています。国際技術仕様。 |
□ | GS1:QRコードに含まれるデータは、GS1一般仕様に従ってフォーマットされています。 |
□ | AIM:QRコードに含まれるデータは、以前にAIM Inc.と合意した特定の業界アプリケーションに従ってフォーマットされています。アプリケーションインジケータの値はQRコードデータに埋め込まれています。 |

QRコードは次のデータの組み合わせに対応しています:
□ | 数字データ (0~9) |
□ | アルファベットデータ(0~9、A~Z、/、$、%など) |
□ | バイトデータ (ECIエンコードを想定) |
□ | 漢字 |
バイトデータの解釈
QRコードでは、バイトデータはあらゆる情報を表すことができます。それらの解釈は、QRコードのサブタイプに依存します。
● | ベーシックなサブタイプ: |
□ | QRコードにバイトデータが存在する場合、それらの解釈方法を知る必要があります。 |
□ | EByteInterpretationMode 列挙型を使用して、対応するバイト解釈モードを選択します(詳細については、EByteInterpretationModeの「デコードされたデータの取得」セクションを参照してください)。 |
● | ECIエンコードされたバイトデータ: |
□ | ECIサブタイプは、ECIテーブルインジケータを提供します。 |
□ | このインジケータは、バイトデータの解釈に使用する文字セットを定義します。 |
□ | EasyQRCode は、UTF8変換テーブル(ECIテーブルインジケータ26)を現在サポートしています。 |

□ | モデル1:最初に作られた国際規格のQRコード。型番は1~14。 QRコードの「型番」(version) とはシンボルサイズ(モジュール数で表す)のことですので注意してください。規格のバージョンは「モデル」と呼ばれています。 |
□ | モデル2:モデル1の改良版。1~40の型番があります。歪んだQRコードや曲面に印字されたQRコードの読み取りを改善するためのアライメントパターンが定義されます。 |
□ | モデル2005:モデル2の改良版。黒地に白のQRコード、シンボルのミラー反転に対応。 |
□ | マイクロQRコード:(現時点では未対応)小型のQRコード。型番M1~型番M4まで。印字スペースを小さくするために導入されました。 |

□ | QRコード:型番1(21 x 21モジュール)から型番40(177 x 177モジュール)。+4 x +4モジュールずつ増加(型番2:25 x 25モジュール、型番3:29 x 29モジュール、...、型番39:173 x 173モジュール)。 |
□ | マイクロQRコード:(現時点では未対応)型番M1(11 x 11モジュール)、型番M2(13 x 13モジュール)、型番M3(15 x 15モジュール)、型番M4( 17 x 17モジュール)。 |
QRコード
の例右から左:
マイクロQRコード, バージョンM3, 15 x 15モジュール,
モデル2QRコード, バージョン4, 33 x 33モジュール, 67-114文字,
モデル2QRコード, バージョン40, 177 x 177モジュール, 1852-4296文字,

QRコードには誤り訂正データが含まれています。誤り訂正レベルには以下の4段階あります
□ | L (low):コード語の約7%が復元可能 |
□ | M (medium):15% |
□ | Q (quality):25% |
□ | H (high):30%(マイクロQRコードでは不可) |

QRコードリーダーが、QRコードに適合するかもしれないドット配列を見つけると、そのQRコードの候補の「形状」が返されます。
QR code geometryは、ポイントのセットです。それは、QRコードquadrangleのcornersの座標(左下、左上、右上、右下)と、finder pattern centersの座標(左下、左上、右上)です。
EasyQRCodeでは、画像の左上のピクセルの左上の角を原点(0.0, 0.0)とするフロート座標系が使用されます。
QRコードの形状

QRコードを読み取ると、与えられた検索フィールドで見つけられるすべてのQRコードに関する情報を返します。QRコードの読み取り