QRコードの解像度:実際に必要なピクセル数とDPIはどれくらいか
KoloQRチーム印刷

印刷用のQRコードは、最終的な印刷サイズで300DPIになるよう書き出すべきです。つまり、幅はセンチメートル÷2.54×300ピクセルです。3cmのテーブルスタンドのコードならおよそ354ピクセル、10cmのポスターのコードならおよそ1,181ピクセル、30cmの大判のコードならおよそ3,543ピクセルになります。画面用なら、1モジュールあたり4ピクセルで足ります。
要点
- 印刷用のQRコードには、最終的な印刷サイズで300DPIが必要です。ピクセル幅はセンチメートル÷2.54×300なので、5cmのコードならおよそ591ピクセル、20cmのコードならおよそ2,362ピクセルになります。
- SVG、PDF、EPSといったベクターファイルには、そもそも解像度がありません。コードを図形として保存するので、同じファイルが2cmでも2mでもぼやけずに印刷できます。
- 解像度はQRコードをスキャンできるようにはしません。それを決めるのは物理的なサイズとコントラストです。解像度が決めるのは、モジュールの輪郭がグレーににじまず、くっきり保たれるかどうかだけです。
- ラスターのQRコードがきれいに印刷できるのは、およそピクセル幅÷300×2.54センチメートルまでです。1024×1024のPNGならおよそ8.7cmまで届き、それを超えると輪郭がぼやけます。
- QRコードをJPEGで保存してはいけません。JPEGの圧縮は、まさにQRコードを形づくっている白黒のくっきりした輪郭の周りに、リンギングのノイズを加えます。
QRコードの解像度はどれくらいにすべきか
この計算式が当てはまるのはラスターファイルです。ベクターのQRコードには選ぶべきピクセル寸法がありません。SVG、PDF、EPSはコードをピクセルの格子ではなく図形として保存するからです。コードを印刷するなら、ベクターで書き出すことで解像度の問題は丸ごと消えます。印刷所がベクターの入稿データを求めるのは、そのためです。
つまずきやすいのが、ファイルに書き込まれたDPIの数字です。PNGはメタデータにDPIの値を持ちますが、その値が1ピクセルでも変えることはありません。大事なのは実効解像度、つまりピクセル幅を、レイアウトの中でコードが実際に配置されたサイズで割った値です。InDesignで10cmに配置された600ピクセルのコードは、メタデータが何と言おうと152DPIのコードです。
解像度とサイズは別の問題で、スキャンできるかを決めるのは一方だけ
QRコードをスキャンできるかどうかを決めるのは、物理的なサイズです。解像度が決めるのは、印刷された輪郭がくっきりしているかどうかです。4,000ピクセルで書き出した1cmのコードは、腕を伸ばした距離でも失敗しますし、400ピクセルで書き出した20cmのコードは、輪郭が目に見えて甘くても3mからきちんとスキャンできます。
スマホのカメラは、データを運ぶ小さな白黒の正方形、つまり個々のモジュールを解像することでQRコードをデコードします。目安として、撮影された画像の中でモジュール1つあたりカメラ側の2〜3ピクセルが必要になるので、距離と物理的なサイズが支配的になります。印刷の解像度が左右するのは、それぞれのモジュールの境界が紙の上でどれだけ鋭く再現されるかだけです。
実際の結論はこうです。まずサイズを決め、それから解像度を決めます。印刷するQRコードはスキャン距離10cmあたり幅約1cmが必要で、近距離で読むなら2×2cmが実用上の下限です。物理的なサイズが決まれば、ピクセル数は計算式から自然に出てきます。その逆ではありません。
印刷の計算式を、両方向から
300DPIでは、1ピクセルは0.0847mmです。印刷サイズからピクセル数を出すには、センチメートルに118.1を掛けます。逆方向なら、ピクセル幅を118.1で割ります。
| 印刷サイズ | 300DPIでのピクセル数 | 600DPIでのピクセル数 |
|---|---|---|
| 2cm | 236px | 472px |
| 3cm | 354px | 709px |
| 5cm | 591px | 1,181px |
| 10cm | 1,181px | 2,362px |
| 20cm | 2,362px | 4,724px |
| 30cm | 3,543px | 7,087px |
| 50cm | 5,906px | 11,811px |
QRコードでは、300DPIを超えても印刷の結果が変わることはめったにありません。QRコードには繊細なグラデーションも細い線もなく、塗りつぶされたブロックの格子でしかないので、600DPIが生むのは主に重いファイルです。例外はおよそ1.5cm未満のとても小さなコードで、この場合は解像度を倍にすることで、モジュールの輪郭を作るわずかなピクセルが不揃いに丸められるのを防げます。
測るときはクワイエットゾーンを含めてください。クワイエットゾーンとは、スキャナーが記号のどこが始まりでどこが終わりかを判別するためのQRコードの周囲の空白の余白で、規格は四辺すべてに4モジュールと定めています。レイアウト上の5cmが黒い図版だけを指しているなら、実際の設置面積はもっと大きく、ピクセル数はその全体を賄わなければなりません。
手元のPNGはどこまで大きく印刷できるか
ラスターのQRコードがきれいに印刷できるのは、およそピクセル幅÷300×2.54センチメートルまでです。それを超えると、モジュールの輪郭を再現するドットの数がプリンターの望む数を下回り、黒から白への切り替わりがにじみ始めます。
| PNGの書き出し | 300DPIでの最大サイズ | 150DPIでの最大サイズ(大判) |
|---|---|---|
| 512×512 | 4.3cm | 8.7cm |
| 1024×1024 | 8.7cm | 17.3cm |
| 2048×2048 | 17.3cm | 34.7cm |
| 4096×4096 | 34.7cm | 69.4cm |
| 8192×8192 | 69.4cm | 138.7cm |
この上限があるからこそ、ホスティング型のQRサービスにある無料プランの解像度制限が問題になります。最大1024×1024ピクセルまでしか書き出せないツールは、コードの中身が何であれ、印刷物としてはおよそA6のポストカード程度で止まるツールだということです。
輪郭の甘さは、目に見える一段階で穏やかに悪くなるわけではありません。輪郭がにじんだコードは、たいてい真っ白な紙の上で良い照明ならまだスキャンできますが、吸い込みやすい紙の上、薄暗い場所、斜めからでは動かなくなります。そして本刷りが出会うのは、まさにその状況です。
本当の最小はモジュールのサイズで、単位はミリメートル
印刷したQRコードで最小の安全な単位は、ピクセルではなくモジュールです。目安として、スマホで近距離からスキャンするなら印刷されたモジュールを0.4mm以上に、非コート紙、段ボール、レシートのように吸い込みやすくインクのにじみで暗いモジュールが太る紙では0.5mm以上に保ちましょう。
モジュールの数はシンボルバージョンで決まり、それはコードが運ぶデータ量で決まります。バージョン1は21×21モジュールで、1段階ごとに1辺あたり4モジュールずつ増え、バージョン40の177×177まで上がります。URLの文字数が増えるとバージョンが上がり、同じ印刷サイズならモジュールは小さくなります。
| バージョン | モジュール | クワイエットゾーン込み | モジュール0.5mmでの設置面積 |
|---|---|---|---|
| 1 | 21×21 | 29 | 14.5mm |
| 2 | 25×25 | 33 | 16.5mm |
| 3 | 29×29 | 37 | 18.5mm |
| 4 | 33×33 | 41 | 20.5mm |
| 5 | 37×37 | 45 | 22.5mm |
| 6 | 41×41 | 49 | 24.5mm |
| 10 | 57×57 | 65 | 32.5mm |
印刷するQRコードによく言われる2cmという最小値は、慣習ではなくこの算数です。短いURLに中程度の誤り訂正なら、だいたいバージョン3か4に落ち着き、モジュール0.5mmのバージョン4の記号は、クワイエットゾーンを含めて幅20.5mmになります。URLを短くすれば記号は1つか2つバージョンが下がり、同じ印刷サイズで実際のミリメートルを取り戻せます。
1モジュールあたりのピクセル数は整数で書き出す
書き出す幅を、クワイエットゾーンを含むモジュール数で割ってください。結果が整数でないなら、一部のモジュールだけが1ピクセル広く描かれ、すべてのモジュールの輪郭にグレーのアンチエイリアスの縁が付きます。割り切れる書き出し幅を選べば、どちらの問題も消えます。
具体例です。バージョン3のコードは、クワイエットゾーンを含めて幅37モジュールです。5cmを300DPIで印刷するときのちょうどの数字である591ピクセルで書き出すと、1モジュールあたり15.97ピクセルになります。代わりに592ピクセルで書き出せばちょうど16になり、すべてのモジュールが同一になって、印刷サイズの変化は0.3mmほどです。
グレーの縁が問題になるのは、スキャナーがデコードの前に画像を2値化するからです。すべてのピクセルが、しきい値に対して黒か白かに振り分けられます。くっきりした輪郭は、どんな照明でもしきい値の同じ側に落ちます。甘いグレーの輪郭は、光が変わると側を変え、モジュールの境界が見かけ上動いて、デコーダーの誤りに対する余裕を削ります。
これはラスターだけの心配ごとです。ベクターの書き出しにはピクセルの格子がないので、モジュールの輪郭はどのサイズでも数学的に正確で、この問題はそもそも起こりません。
どのファイル形式で書き出すか
| 形式 | 種類 | 解像度の上限 | 使いどころ |
|---|---|---|---|
| SVG | ベクター | なし | あらゆるサイズの印刷、大判、印刷所への入稿、IllustratorやFigmaでの編集 |
| ベクター | なし | 印刷所へ送るとき、書類のレイアウトに配置するとき | |
| EPS | ベクター | なし | これを求める旧来の印刷の作業手順 |
| PNG | ラスター、可逆 | ピクセル幅÷300×2.54cm | 画面、メール、スライド、SNS、サイズの分かっている小さな印刷物 |
| JPEG | ラスター、非可逆 | 適さない | なし。圧縮のノイズがモジュールの輪郭を傷める |
コードを印刷するときは必ずベクターを、画面に表示するときは必ずラスターを選びましょう。この1つの原則が、たいていの解像度の問題を起こる前に片付けます。解像度の上限が害をなすのは印刷の側であり、画面の側では、そもそも固定されたピクセルサイズこそがその媒体の求めるものだからです。
JPEGには厳しい原則がふさわしいものです。JPEGは高周波の細部を捨てることで圧縮しますが、QRコードはほとんど高周波の細部そのもの、つまり黒から白への急な切り替わりが何千とあるものです。結果として、すべてのモジュールの周りにかすかなリンギングが生まれ、それが印刷にも残って、デコーダーが測るまさにその場所でコントラストを下げます。円形やカスタムの形のQRコードを作れる無料のQRコード作成ツールであるKoloQRがSVGとPNGを書き出し、JPEGをまったく用意していないのは、このためです。
PNGで書き出すときの透明な背景にも気をつけてください。透明なクワイエットゾーンは、白いクワイエットゾーンではありません。暗い背景や柄のある背景の上に置くと余白は消え、スキャナーは記号の境界を見失います。レイアウトが本当に明るく平らな面にコードを置く場合を除き、白の不透明な背景で書き出しましょう。
画面、スライド、動画の解像度
画面では、1モジュールあたり少なくとも4CSSピクセルを目指し、高密度ディスプレイのためにその倍のサイズで書き出します。クワイエットゾーンを含めて37モジュールのバージョン3のコードなら、表示はおよそ150CSSピクセル、書き出しは2倍の端末でも鮮明なままになるよう300ピクセルということです。
- ウェブサイトとメール: 300〜600pxのPNGを、150〜300pxで表示します。これより小さいと、標準密度の画面ではモジュールの区別が失われ始めます。
- プレゼンのスライド: コードのサイズはスライドではなく部屋に合わせます。10m離れて読むコードは、距離の目安に従えば投影幅で約1m必要になり、たいていは現実的ではありません。スライドにURLも併記しましょう。
- 動画と放送: コードは配信の圧縮に耐え、スキャンされるだけの時間を画面に残らなければなりません。大きく保ち、少なくとも8〜10秒は静止させ、動き補償の圧縮で甘くなることを見込んでおきましょう。
- 画面から画面へのスキャン: スマホに表示したコードを別のスマホで読むことはできますが、失敗の原因になるのは解像度より反射とリフレッシュレートの縞です。まずは画面の明るさを上げましょう。
サーマルプリンター、彫刻、刺繍の解像度
DPIを選ぶのではなく、モジュールのサイズを機械のドットピッチに合わせましょう。サーマルレシート(感熱紙のレシート)のプリンターはふつう203DPIで印刷し、1ドットは0.125mmなので、ちょうど4ドットのモジュールは0.5mmになり、どのモジュールも整数のドットに収まります。3ドットなら0.375mmで、これはレシート用紙では実用上の下限を割ります。
レシート用紙は、QRコードにとって身近な素材の中で最も過酷です。吸い込みやすく、コントラストが低く、熱の伝わりが不均一で、しかも色が消えます。レシートのコードは2cm以上に保ち、記号のバージョンを低く保つためにURLはできるだけ短くし、その下にURLを文字でも印刷しましょう。色の消えたコードに逃げ道がなければ、客にとっては行き止まりです。
レーザー彫刻、ドットピーンによる刻印、刺繍では、制約はDPIではなく加工ヘッドです。ベクターのデータを送り、その機械が保てる最小の形状のサイズを確認し、モジュールは余裕を持ってそれ以上に保ちましょう。彫刻や刺繍のコードは、鮮明さよりコントラストを失うので、そのコードが実際に読まれる照明の下で実物の見本をテストしてください。
大判印刷:300DPIが無駄になるとき
大判のプリンターは、出力が離れた場所から読まれるためふつう100〜150DPIで動きますが、QRコードも同じ理屈に従います。300DPIで書き出した60cmのコードは7,087ピクセルのファイルになり、どのバナー用プリンターもその忠実さで再現しませんが、同じコードを150DPIにすれば3,543ピクセルで、仕上がりは変わりません。
およそ30cmを超えるものには、ベクターを送りましょう。その大きさになるとラスターファイルは扱いにくいほど大きくなりますし、印刷所はどのみちSVG、PDF、EPSを求めるのがふつうです。ベクターは、バナーのサイズが制作の終盤で変わったときの作り直しにも耐えますが、ラスターの図版は耐えません。
大きなコードのサイズは、最も遠い位置ではなく、現実に最も近づかれる位置に合わせましょう。人はポスターに歩み寄ります。3mで読めるサイズにしたコードは1mでもスキャンできますが、1m向けのサイズにしたコードは3mからは読めません。ですから、近いほうの数字が安全な誤りです。
印刷したQRコードがぼやけて見える理由と、実際にスキャンを壊す原因
| 見た目 | 原因 | スキャンを壊すか |
|---|---|---|
| モジュールの輪郭が甘く、ぼやけている | ラスターファイルを解像度の上限を超えて印刷した | ときどき。デコーダーの余裕を削る |
| モジュールごとにグレーの輪郭が出ている | 1モジュールあたりのピクセル数が整数でない、または拡大して書き出した | ときどき。照明が悪いとき |
| 輪郭に粒や輪が見える | 作業のどこかでJPEGとして保存した | ときどき。他の欠点と重なると悪い |
| モジュールが互いににじんでつながっている | 吸い込みやすい紙でのインクのにじみ、またはモジュールが0.4mm未満 | しばしば |
| 鮮明なのに読み取れない | 物理的なサイズが小さすぎる、コントラスト不足、クワイエットゾーンがない | 必ず |
大事なのは最後の行です。現場で失敗するQRコードのほとんどは、完璧に鮮明です。距離に対して小さすぎるか、十分なコントラストのない色の組み合わせで刷られているか、余白が必要だったデザイナーにクワイエットゾーンを削られてレイアウトされているかです。解像度は目に見える問題であって、実際の原因であることはまれです。
色の分解も、解像度をいくら上げても直らない関連した落とし穴です。リッチブラックや特色で刷った暗いコードの版がわずかにずれると、CMYKではモジュールの輪郭に色の縁が出ます。単一のフラットな暗い色を使い、背景は本当に明るく保ちましょう。
手元にあるQRコードを拡大できるか
拡大するのではなく、作り直しましょう。ラスターのQRコードを拡大すると、既存のピクセルから新しいピクセルが補間され、くっきりしたモジュールの輪郭がグラデーションに変わります。これこそがスキャンの余裕を下げる欠陥です。元のデータは失われていて、どんなフィルターでも取り戻せません。
実際の場面は、2つの原則で足ります。
- コードを作り直せるなら、そうしてベクターで書き出します。作り直しはどんな修復よりも短時間で済み、結果には上限がありません。KoloQRならSVGの書き出しは無料で透かしも付かないので、迷う理由がありません。
- 作り直せないなら、たとえばクライアントや仕入先、古い印刷データから来たコードなら、最近傍補間で整数倍に拡大します。バイキュービックや「スマート」なAIによる拡大は決して使わないでください。最近傍補間の2倍や4倍はピクセルを複製して輪郭をくっきり保ちますが、なめらかにするアルゴリズムは輪郭をぼかし、記号に元からなかった細部を作り出すことがあります。
既存のコードを手作業でベクター化するのは最後の手段ですが、聞こえるより確実です。QRコードは同じ正方形の格子だからです。整数倍でトレースし、モジュールの格子が均一であることを確かめ、印刷に回す前に結果をiPhoneとAndroidの両方でスキャンしてください。
古いコードをデコードして、そのURLから作り直すほうが、どちらよりも優れています。既存のコードをスキャンしてリンク先を読み出し、その文字列から新しい記号を生成します。新しいコードは数学的にきれいですし、古いコードが実際にどこを指していたかも確かめられます。刷り直す前に、それは知っておく価値のあることです。
印刷前の解像度チェックリスト
- 物理的なサイズを決める. 物理的なサイズはスキャンする距離から決めます。距離10cmあたりコードの幅を約1cm、2cmを下回ってはいけません。
- モジュールのサイズを確かめる. 印刷幅÷クワイエットゾーンを含むモジュール数です。0.4mm以上、非コート紙なら0.5mmを目指します。
- 形式を選ぶ. 印刷にはベクター、画面にはラスターで書き出します。
- ピクセル数を計算する. ラスターで書き出すならピクセル数を計算します。cm÷2.54×300で求め、1モジュールあたりのピクセル数が整数になるよう切り上げます。
- 実効DPIを確認する. 画像のメタデータにあるDPIの値ではなく、レイアウトのファイルで確認します。
- クワイエットゾーンがレイアウトで残っているか確かめる. 四辺すべてに4モジュール分の空白を。
- ファイル形式を確かめる. ファイルがPNGかベクターで、決してJPEGではないこと、そして作業のどこかで誰かがJPEGとして保存し直していないことを確認します。
- 校正を印刷してスキャンする. 最終サイズで実際の紙に校正を1枚印刷し、そのコードが置かれる照明の下で、iPhoneとAndroidの両方でスキャンします。
計算で拾えないものを捕まえるのが、この最後の手順です。インクのにじみ、ラミネートの光沢、素材の色、周囲の光は、いずれも画面では見えず、いずれもそのコードが現場で機能するかどうかを決めます。
Questions? Answered
最終的な印刷サイズで300DPIです。これはオフセット印刷とデジタル印刷の標準です。離れた場所から読む大判の出力なら150DPIで足り、ファイルははるかに小さくなります。ファイルのメタデータに書かれたDPIは単なる値にすぎず、印刷の品質を実際に決めるのは、配置したサイズにおけるピクセル数です。
300DPIならおよそ591ピクセルで、5÷2.54×300から求まります。1モジュールあたりのピクセル数が整数になるよう切り上げてください。37モジュールの記号なら592ピクセルでちょうど16ピクセルになり、アンチエイリアスの輪郭がなくなります。600DPIなら同じ5cmのコードは1,181ピクセルですが、このサイズで必要になることはめったにありません。
画面用なら十分ですし、印刷でも300DPIでおよそ8.5cmまでなら十分です。それを超えるとモジュールの輪郭が甘くなり始めます。1000×1000のPNGは、ポスター、ウィンドウ用のステッカー、バナーには足りません。これらにはベクターのファイルか、印刷の計算式からサイズを決めたラスターの書き出しが必要です。
いいえ。モジュールの輪郭がすでにくっきりしている段階を超えれば、それ以上は変わりません。スキャンを左右するのは、ピクセル数ではなく物理的なモジュールのサイズ、コントラスト、クワイエットゾーンです。4,000ピクセルのコードでも1cmで印刷すれば腕を伸ばした距離で失敗しますし、400ピクセルのコードでも20cmで印刷すれば部屋の反対側からスキャンできます。
印刷するものにはSVG、画面に出すものにはPNGです。SVGはコードを図形として保存するので、どんなサイズにも数学的に正確な輪郭のまま拡大でき、解像度の上限がありません。PNGは書き出したときのピクセル寸法で固定されます。それは画面が求めるものであり、印刷の仕事がいずれ限界を迎えるものでもあります。
たいていは解像度ではなく、サイズ、コントラスト、クワイエットゾーンです。最も多い原因は、レイアウトに収めるために縮められたコード、吸い込みやすい紙で0.4mmを下回ってつながったモジュール、削られたクワイエットゾーン、カメラへ光を返すグロスラミネート、そして暗い色どうしの組み合わせです。鮮明なコードでも、これらのどれかがあれば失敗します。
ベクターであれば可能です。ラスターのQRコードは拡大すると輪郭の精度を失います。補間が中間のピクセルを作り出し、くっきりした境界をグラデーションに変えるからです。どうしても拡大が必要でベクターがないなら、最近傍補間で整数倍に拡大するか、古いコードをスキャンしてそのURLから新しいコードを作りましょう。
技術的には可能ですが、実際にはやめてください。JPEGの圧縮は高周波の細部を捨てますが、QRコードは高周波の細部でしかないので、すべてのモジュールの周りにかすかな輪が現れ、デコーダーが測るまさにその輪郭でコントラストを下げます。ラスターにはPNGを、印刷にはSVGかPDFを使いましょう。作業のどこかでファイルが黙ってJPEGとして保存し直されていないかも確認してください。
DPIを選ぶのではなく、プリンターのドットピッチに合わせます。203DPIのサーマルプリンターのドットは0.125mmなので、4ドットのモジュールは0.5mmになり、格子にきれいに収まります。レシートのコードは2cm以上に保ち、記号のバージョンを低く保つために短いURLを使い、感熱印刷は色が消えるので、その下にURLを文字でも印刷しましょう。
いいえ。ただし誤り訂正のレベルが変わり、それがシンボルバージョン、ひいてはモジュールのサイズを変えます。中央のロゴには誤り訂正のレベルHが必要で、Hは記号のおよそ30%を復元用のデータに充てるため、バージョンが上がります。同じ印刷サイズなら、バージョンが高いほどモジュールは小さくなります。ですからロゴ入りのコードは、ピクセル数を増やして書き出すのではなく、少し大きく印刷する必要があることがよくあります。
関連ページ
このページの続きになるページ - 同じ場面、同じ種類のコード、あるいは次に決めることについて。
イベント
1回のスキャンで、チケット・スケジュール・道順・出欠確認へ。招待状、ポスター、会場サインで使えます。
小売店
棚札・店頭のガラス・レジのサインから、商品情報や在庫、レビューのリンクへ。
URL QRコード
1回のスキャンで、ウェブページやランディングページ、任意のリンク先へまっすぐ案内できます。
テキストQRコード
スキャンした瞬間に表示される文章を、QRコードの中に保存できます。オフラインのメモ、ラベル、手順書に最適です。
ブランドQRコード
ロゴ・色・カスタムの形でQRコードをブランドに合わせつつ、確実にスキャンできる状態を保ちます。
QRコードとバーコード:何が違い、どちらをいつ使うか
容量、読み取り機器、印刷サイズ、損傷への強さ、コスト。1次元バーコードとQRコードを並べて比較し、選び方の基準まで示します。
KoloQRを選ぶ理由
- ウェブサイト、メニュー、Wi-Fi、PDF、名刺用のQRコードを作成
- 色・ロゴ・オリジナルの形をカスタマイズ
- 高品質なPNG・SVGファイルをダウンロード
- 印刷にもデジタルにも対応
