QRコードとは?
QRコードは、情報を2次元のマトリクス状に格納するコードで、URLやテキスト、連絡先情報などを読み取れます。QRという文字はQuick Responseに由来しますが、正式名称はQRコードです。仕様はISO/IEC 18004で規格化されており、利用する形式や文字コードに読み取り側も対応する必要があります。
🔳 基本構造と特徴
QRコードは黒と白のモジュール(セル)で情報を表現する2次元コードです。バーコードと比べて高い情報密度と誤り訂正機能を持ちます。
主な構成要素
- 📌 位置検出パターン:角にある大きな3つのマーカーで向きや位置を検出します。
- 📌 タイミングパターン:モジュールの格子を決定するための線状パターン。
- 📌 形式情報:誤り訂正レベルとマスクパターン情報を保持します。
- 📌 データ領域:実際の符号化データと誤り訂正コードワードが格納されます。
📏 規格と互換性
QRコードは ISO/IEC 18004 で規格化されており、同じ仕様に従う限り生成側・読み取り側のメーカーが異なっても互換性があります。開発元のデンソーウェーブは規格に基づくコードシンボルの作成・読み取りについて、商用も含め無料でライセンス等の手続き不要と案内しています。名称の表記ルールや商標の扱いは商標・ライセンスのまとめを参考にしてください。
主なバリエーション
用途やサイズに応じて複数のバリエーションがあります。名称の使用ガイドラインや商標表記については別記事を参照してください。
| 種類 | 特徴 | 向いている用途 |
|---|---|---|
| モデル1・2 | モデル1は初期の形式。一般的に使われるのはモデル2。 | 一般的な印刷・Web埋め込み |
| マイクロQRコード | 位置検出パターンは1つ。M1〜M4の4バージョンがある。 | 部品・基板の管理など極小スペース |
| フレームQR | 空白領域に図柄やフレームを入れる装飾形式。 | キャンペーンやプロモーション |
🔢 バージョンと容量
QRコードにはバージョン(1〜40)があり、バージョンが大きいほどモジュール数とデータ容量が増えます。必要最低限のバージョンを選ぶと印刷サイズを抑えられます。
容量の目安
容量は符号化モード(数値、英数字、バイト、漢字)と誤り訂正レベルに依存します。下の表は代表的な目安です(モデル2、Mレベル)。
| バージョン | 数値モード | 英数字 | バイト | 漢字 |
|---|---|---|---|---|
| 1 | 34文字 | 20文字 | 14バイト | 8文字 |
| 5 | 202文字 | 122文字 | 84バイト | 52文字 |
| 10 | 513文字 | 311文字 | 213バイト | 131文字 |
🔤 符号化モード
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セル以上確保する。
- ✅ 背景色は淡色、前景は濃色にしてコントラストを確保する。
- ✅ ロゴなどで通常のQRコードを覆うと読み取りを損なう。誤り訂正率から安全な面積を計算せず、配布サイズと対象端末で検証する。
- ✅ 印刷物は曲がり・光沢で反射しないか実機でスキャンテストする。
- ✅ URLは短縮しすぎず、開く前にどんなサイトか分かるようラベルを添える。
⚠️ セキュリティと運用上の注意
QRコード自体は単なるデータ表現ですが、利用者を悪意あるサイトへ誘導する攻撃など運用上のリスクがあります。
対策例
- 🔐 スキャナー側でURLのプレビューを表示する(完全URLを示す)。
- 🔐 短縮URLは注意を喚起するラベルを追加する。
- 🔐 公共掲示物には信頼できる発行者情報を併記する。
💡 活用事例
Webサイトリンク、イベントのチケット、決済、連絡先の共有(vCard)、Wi‑Fi接続情報など、多様な用途で使われます。
仕様と利用条件を確認する
QR Code versions / Error correction / Micro QR / Margins / 商標と利用条件