Ccmmutty logo
Commutty IT
0 pv5 min read

QRコード実装時の注意点

https://cdn.magicode.io/media/notebox/blob_V2bQmKz

これは何

QRコードを実装する際に仕組みまでは深く理解する必要はありませんが、正しく読み取れるQRコードを生成・表示するために開発者が把握しておくべき注意点や仕様等がいくつかあるためそのまとめ。

1. 商標

「QRコード」は株式会社デンソーウェーブの登録商標です。
Webサイト、アプリケーション、印刷物などで「QRコード」という文言を使用する場合は商標表記が必要であるため、以下のいずれかの対応が必要です:
  1. 登録商標であることを明記する
    • 例:「QRコードは株式会社デンソーウェーブの登録商標です」
  2. QRコードという表記をせず一般名称を使用する
    • 「二次元バーコード」「二次元コード」などの表現で代替

2. クワイエットゾーン(余白)

QRコードの周囲には、読み取り精度を確保するための余白が必要です。
項目仕様
必要な余白4モジュール以上
マイクロQR2モジュール以上
※ 1モジュール = QRコードの最小単位である1マス = セルサイズ

実装時の注意

  • QRコードの解説文字であったり枠線やデザイン要素は、クワイエットゾーンの外側に配置する
  • 背景色はQRコードの明色(通常は白)と同じにする
  • ライブラリによっては自動で余白が付与されるため、二重に余白が発生しないよう確認する

3. サイズと解像度

3.1 最小モジュールサイズ

読み取り環境推奨モジュールサイズ
スマートフォン(近距離)0.25[mm]以上
一般的な用途0.33[mm]以上
屋外・遠距離用途に応じて拡大

3.2 読み取り距離の目安

読み取り距離はQRコードのサイズに比例します。
読み取り距離 ≒ QRコードの一辺 × 10
※ 「一般的なモジュール数(バージョン)」と「一般的なスマホカメラの分解能」から求められる簡易式
例: 3[cm]角のQRコード → 約30[cm]の距離から読み取り可能

3.3 画面表示時の注意

  • Webやアプリで表示する場合、最低でも120px × 120px以上を推奨
  • 高解像度ディスプレイ対応のため、2倍〜3倍のサイズで生成してCSSで縮小表示するのが望ましい

4. 誤り訂正レベルの選択

レベル復元能力推奨用途
L約7%データ容量を最大化したい場合、画面表示のみ
M約15%一般的な用途(迷ったらこれ)
Q約25%印刷物、多少の汚れが想定される環境
H約30%ロゴ埋め込み、過酷な環境での使用

選択の指針

  • ロゴを中央に配置する場合は H を選択(中央の約30%を覆っても読み取り可能)
  • URLなど短いデータで印刷する場合は M または Q
  • 画面表示のみで汚れの心配がない場合は L でも可

5. データ容量の上限

バージョン40(最大サイズ)、誤り訂正レベル L の場合:
データ種別最大容量
数字のみ7,089文字
英数字(大文字のみ)4,296文字
バイナリ/UTF-82,953バイト
日本語(Shift_JIS)1,817文字

実務上の目安

一般的に使用されるバージョン(1〜10程度)では:
バージョンモジュール数URL目安(レベルM)
225×25約32文字
433×33約78文字
641×41約134文字
1057×57約271文字
QRコード化するURLは短縮サービスを使用するorできるだけ短くすることで、より小さく・読み取りやすいQRコードを生成できる。

6. 色とコントラスト

6.1 基本ルール

  • 明色と暗色のコントラスト比は 4:1 以上を確保
  • 暗色は明色より十分に暗くする(逆転はNG)

6.2 避けるべきパターン

  • グラデーション背景
  • 半透明の重ね合わせ
  • 赤と緑の組み合わせ(色覚多様性への配慮)

7. エンコーディング

7.1 URLの注意点

  • 日本語を含むURLはパーセントエンコーディングされてデータ量が増加
  • https:// より HTTPS:// の方が英数字モードで効率的に格納可能(ただし大文字のみ)
    • ドメイン名は大文字小文字を区別しないため、大文字でも正しく動作する
    • パスやクエリパラメータに小文字が必要な場合(/path/to/Pageなど)は大文字化できない
    • 一部の古いリーダーで互換性の問題が発生する可能性があります

7.2 文字コード

  • バイナリモードではUTF-8が一般的
  • 日本語は漢字モード(Shift_JIS)の方が効率的だが、対応していないリーダーもあるため注意
  • URLでBase64を扱う場合はBase64urlを使用する(URI予約文字の都合上)

8. 印刷時の仕様

8.1 解像度

  • 最低 300dpi を推奨
  • 小さく印刷する場合は 600dpi 以上

8.2 ファイル形式

形式推奨度備考
SVG推奨ベクター形式、拡大縮小に強い
PDF推奨印刷用途に最適
PNG十分な解像度で生成すること
JPEG非推奨圧縮によるノイズで読み取り精度低下

9. 動的QRコードの考慮事項

リダイレクトURLを使用する動的QRコードの場合:
項目注意点
サービス依存リダイレクトサービスが停止するとQRコードが無効になる
レスポンス速度リダイレクトによる遅延が発生
セキュリティ中間サービスでのデータ収集の可能性
HTTPSリダイレクト先もHTTPSであることを確認

参考文献


※「QRコード」は株式会社デンソーウェーブの登録商標です。

Discussion

コメントにはログインが必要です。