ゆるテックノート

QRコード(Quick Responseコード)とは?

QRコードは、情報を2次元のマトリクス状に格納するコードで、URLやテキスト、連絡先情報などを高速に読み取ることができます。仕様は ISO/IEC 18004 に基づき、相互運用性が確保されています。

🔳 基本構造と特徴

QRコードは黒と白のモジュール(セル)で情報を表現する2次元コードです。バーコードと比べて高い情報密度と誤り訂正機能を持ちます。

主な構成要素

  • 📌 位置検出パターン:角にある大きな3つのマーカーで向きや位置を検出します。
  • 📌 タイミングパターン:モジュールの格子を決定するための線状パターン。
  • 📌 形式情報:誤り訂正レベルとマスクパターン情報を保持します。
  • 📌 データ領域:実際の符号化データと誤り訂正コードワードが格納されます。

📏 規格と互換性

QRコードは ISO/IEC 18004 で規格化されており、同じ仕様に従う限り生成側・読み取り側のメーカーが異なっても互換性があります。開発元のデンソーウェーブは特許をオープン化しており、仕様遵守の範囲なら生成・読み取りはロイヤリティ不要です。名称の表記ルールや商標の扱いは商標・ライセンスのまとめを参考にしてください。

主なバリエーション

用途やサイズに応じて複数のバリエーションがあります。名称の使用ガイドラインや商標表記については別記事を参照してください。

種類 特徴 向いている用途
モデル1・2 現在主流。モデル2が ISO/IEC 18004 で規格化。 一般的な印刷・Web埋め込み
マイクロQRコード 1〜4つの位置検出パターンで小型化。 部品・基板の管理など極小スペース
フレームQR 空白領域に図柄やフレームを入れる装飾形式。 キャンペーンやプロモーション

🔢 バージョンと容量

QRコードにはバージョン(1〜40)があり、バージョンが大きいほどモジュール数とデータ容量が増えます。必要最低限のバージョンを選ぶと印刷サイズを抑えられます。

容量の目安

容量は符号化モード(数値、英数字、バイト、漢字)と誤り訂正レベルに依存します。下の表は代表的な目安です(モデル2、Mレベル)。

バージョン 数値モード 英数字 バイト 漢字
1 約41文字 約25文字 約17バイト 約10文字
5 約134文字 約82文字 約50バイト 約30文字
10 約274文字 約167文字 約122バイト 約75文字

🔤 符号化モード

QRコードは複数の符号化モードをサポートし、データに応じて効率的にビット列を生成します。

主なモード

  • ✔️ 数値モード:0-9 のみ。最も高密度。
  • ✔️ 英数字モード:0-9、A-Z、スペース、記号の一部。
  • ✔️ バイトモード:任意のバイト列(UTF-8等)を格納。
  • ✔️ 漢字モード:Shift JIS ベースの漢字を効率的に格納(日本語向け)。

🛡️ 誤り訂正(ECC)

QRコードはリード・ソロモン符号に基づく誤り訂正を持ち、損傷や汚れによる読み取り誤りに対して復元が可能です。

レベルの違い

  • 🔎 L(約7%):容量重視の低い耐障害性。
  • 🔎 M(約15%):標準的なバランス。
  • 🔎 Q(約25%):耐障害性を高めたい場合。
  • 🔎 H(約30%):最も高い耐障害性。

⚙️ 生成方法と実装例

QRコードはライブラリやオンラインツールで簡単に生成できます。サーバー・クライアント両方の実装が豊富にあります。

よく使われるライブラリ

  • 📚 PHP: chillerlan/php-qrcode, endroid/qr-code など
  • 📚 JavaScript: qrcode.js, QRCode.js など
  • 📚 Python: qrcode, segno など

生成時の注意点

誤り訂正レベルとマージン(余白)を適切に設定し、実際の表示サイズとスキャン環境を考慮してください。背景と前景のコントラストも重要です。

🖨️ 印刷・デザインの実務ポイント

実際に配布・掲示する際のトラブルは印刷品質と周辺環境が原因になりがちです。最低限のチェックポイントを押さえておきましょう。

チェックリスト

  • 静かな余白(クワイエットゾーン)を4セル以上確保する。
  • 背景色は淡色、前景は濃色にしてコントラストを確保する。
  • 意匠を足す場合は検出パターンにかからないようガイドに沿って配置する。
  • 印刷物は曲がり・光沢で反射しないか実機でスキャンテストする。
  • URLは短縮しすぎず、開く前にどんなサイトか分かるようラベルを添える。

⚠️ セキュリティと運用上の注意

QRコード自体は単なるデータ表現ですが、利用者を悪意あるサイトへ誘導する攻撃など運用上のリスクがあります。

対策例

  • 🔐 スキャナー側でURLのプレビューを表示する(完全URLを示す)。
  • 🔐 短縮URLは注意を喚起するラベルを追加する。
  • 🔐 公共掲示物には信頼できる発行者情報を併記する。

💡 活用事例

Webサイトリンク、イベントのチケット、決済、連絡先の共有(vCard)、Wi‑Fi接続情報など、多様な用途で使われます。