確実に読み取れるカラーQRコードを作りたいなら、色ではなく濃度を考えましょう。重要なのは、コードが背景よりどれだけ濃いかだけです。白の上の濃い紺のコードは黒とまったく同じように読み取れますが、同じ白の上の淡い黄色のコードはまったく読み取れないこともあります。コントラストさえ正しければ、ほぼどんな色でも使えます。
色よりもコントラストが重要な理由
スマホのカメラやスキャナーアプリは、慎重に選んだブランドパレットを見ていません。画像をグレースケールに変換し、単一の明るさのしきい値で純粋な白黒に落とし込みます。しきい値より暗いピクセルは黒になり、それ以外は白になります。この処理を経て残るのは色合いではなく濃度、つまりモジュールが背景に対してどれだけ暗いかです。
だからこそ、人間の目にはまったく違って見える2つの色が、スキャナーには同一に見えることがあります。白の上の濃い緑、濃い紺、黒は、すべて同じ「明るい地に暗い」画像に収束します。一方、濃い緑の背景に赤いコードという、どちらも力強いブランドカラーの組み合わせは完全に消えかねません。赤と濃い緑は色合いこそ正反対でも、明るさが似ているからです。
画面上では問題なく見えるデザインが現場で失敗するのも同じ理由です。人間の目は低コントラストの画像も楽に読めますが、デコーダーは各モジュールごとに「はいかいいえか」の単一の判断を下さなければなりません。色合いは人間のため、コントラストは機械のためのものです。QRコードの色に関するすべての判断はここから始めるべきです。
唯一のルール:背景より濃く
公式のQRコード仕様(ISO/IEC 18004)はシンボルを明るい背景上の暗いモジュールと定義しており、すべてのスキャナーはその前提で作られています。したがって実用上のルールはシンプルです。モジュールは背景より明確に濃く、できれば劇的に濃くすること。
見落とされがちな2つのポイント:
- クワイエットゾーンが重要です。コードの周りの余白——仕様では4モジュール幅——は背景色のまま保つ必要があります。暗いページに暗いコードを置いて余白がデザインに溶け込むと、スキャナーはコードの始まりを見つけられません。
- 背景にはコードの背後にあるものも含まれます。写真の上に浮かぶ白いコードボックスは、写真が余白に決して入り込まない場合にのみ機能します。にぎやかな背景は「デザインファイルでは機能した」コードが現場で失敗するよくある原因です。
反転コードが一部のスキャナーで失敗する理由
反転コードはスキームを逆にします。暗い背景上の明るいモジュールです。一部のスキャナーソフトウェアはこれを問題なく処理します。パターンを検出し、画像を反転させ、通常どおりデコードします。多くの最新スマホアプリはまさにこれを行っています。
しかし、対応しないスキャナーも多くあります。一部の内蔵カメラアプリ、古いスマホ、専用ハンディスキャナー、POSリーダーは、明るい面上の暗いマークだけを探します。仕様がそう記述しているからです。反転コードはあなたのスマホでは完璧に読み取れても、顧客のデバイスでは静かに失敗することがあり、どちらなのかを知る術はありません。
これが反転の核心的な問題です。どのスキャナーがコードを読むかを制御できないことです。ポスターは通りかかるどんなスマホにも読み取られます。反転をワンクリックのスタイルオプションとして提供する生成アプリもありますが、デフォルトではなく、手に入るすべてのデバイスでテストすべきスタイルとして扱ってください。ブランドの一貫性が重要なら、より安全な方法はコードを明るい地に暗く保ち、ブランドカラーを害のない暗いモジュール側に使うことです。
読み取りを壊すグラデーションや装飾
グラデーションは最もよくある自業自得の傷です。スキャナーはコード全体に一度に1つのしきい値を適用します。グラデーションが上は濃く下は薄く流れていると、薄い側がしきい値を下回り、モジュールが背景に溶け込みます。結果は半分だけ読めるコードになり、読めない半分にはデコーダーに必要なデータが入っていることがよくあります。画面上では控えめに見えるグラデーションも、印刷サイズでは致命的になりえます。
同じ論理が、一連の装飾を退けます:
- コードの背後の写真やパターン。スキャナーが分離できない中間調を加えます。
- PNGファイルの透明背景。ビューアーによって、あるデバイスでは白、別のデバイスでは黒に表示されます。
- 包装のメタリックやホイルインク。光を予測不能に反射し、照明によってはコントラストを消し去ります。
- 小さな印刷サイズでの極端に細い、あるいは装飾的なモジュール形状。インクの広がりがパターンをぼかします。
フラット、ベタ塗り、高コントラスト、明るい地に暗く。地味ですが、確実に読み取れます。
読み取れるブランドカラーの選び方
ブランディングを諦める必要はありません。その暗い側を選べばいいのです。QR仕様ではなくウェブアクセシビリティガイドラインから借りた実用的な目安は、モジュールの色と背景のコントラスト比を少なくとも4.5対1にすることです。高いほうがよく、最低値近くに留める特典はありません。
実際には:
- ブランドカラーを黒インクに近い濃さまで暗くします。色味は残り、スキャナーにはほぼ黒に見えます。
- 背景は白に近い色を保ちます:白、オフホワイト、クリーム、またはごく薄いブランドカラーの色味。
- 中間色は完全に避けてください。白の上の黄色、オレンジ、ライトブルー、ライトグリーン、ライトグレーは、いずれも判読限界の危険な近くにあります。
- 赤は注意が必要です。白の上の赤いモジュールはスマホのカメラでは通常問題なく読めますが、店舗のレジで使われる種類の赤色レーザースキャナーには見えないことがあります。赤インクは白背景と同じように赤いレーザー光を反射するためです。小売のパッケージやレシートに表示する場合は重要です。
- 画面の色は印刷の色ではないことを忘れないでください。モニターでは合格した濃い青も、インクに変換すると薄く出ることがあります。デザインファイルではなく印刷校正物でテストしてください。
注意:誤り訂正はここでは役に立ちません。QRコードには破損や隠れたモジュールを復元する組み込みの冗長性がありますが、スキャナーがそもそも検出しなかったシンボルは復元できません。
言葉で見る、うまくいく組み合わせ
確実に安全な組み合わせ:
- 白の上の黒。標準であるのには理由があります。
- 白の上の非常に濃いネイビー。スキャナーには黒、人にはブランドカラーに見えます。
- 白またはクリームの上の濃いフォレストグリーン。
- クリームの上の濃いチョコレートブラウン。コントラストを損なわず温かみがあります。
- 白の上の濃いプラムまたはナス色。
可能だが、まずテスト:
- 濃いネイビーまたはチャコールの上の白 — 反転配置のため、多くのスマホでは動作しますが、他のスキャナーでは失敗することがあります。
- 白の上のミッドブルー — 多くの場合合格しますが、1段階明るくなるごとに失敗に近づきます。
問題が予想される組み合わせ:
- 白の上の黄色、オレンジ、ライトグレー。
- 中間色同士の組み合わせ。パステル同士やライトグレーの上の白など。
- 写真、パターン、テクスチャ背景の上に重ねたものすべて。
印刷前の簡単なテスト
テストは数分で、ほぼすべての失敗を検出できます:
- グレースケール確認。コードをスクリーンショットし、任意の写真編集アプリで白黒フィルターを適用します。モジュールと背景が似たグレーに溶け合うなら、コントラストが低すぎます — 色味では修正できません。
- 複数デバイスでスキャン。サードパーティのスキャナーアプリだけでなく、内蔵カメラアプリを使って少なくとも2台の異なるスマホで読み取ります。内蔵スキャナーが最も寛容でないため、正直なテストになります。
- 最終サイズで印刷。実際の印刷物を、実際のユーザーが立つ距離から、設置場所に近い照明でスキャンします。画面では読めるコードも、マット紙、光沢紙、暗いポスター壁では失敗することがあります。
- デザイン変更後は再テスト。色の変更、移動、縮小のいずれも、以前動いていた組み合わせを壊すことがあります。
QRCodeMax.Vipのような無料ツールなら、コードの色を変えて画面上で数秒で再テストでき、このサイクルを実際に回すコストが十分に低くなります。
まとめ
色はブランディングの判断、コントラストは生存の要件です。モジュールを明るい背景より明確に暗く保ち、グラデーションと反転は十分にテストした場合を除いて避け、確定する前に実機で印刷結果をスキャンしてください。それができれば、必要とされるあらゆる場所で動作するコードにブランドカラーを載せられます。