圧縮品質を調整できる JPEG 出力

圧縮制御つき QRコード JPG 生成器

URL やテキストをQRコードに符号化し、自分で選んだ幅・品質・余白(クワイエットゾーン)で JPEG として書き出せます。パネルはファイルサイズ(KB)、モジュール数、1モジュールあたりの画素数をリアルタイムで表示するので、ダウンロード前に「この JPG が本当に読めるか」を判断できます。無料、登録不要、画像がサーバーへ送信されることはありません。

1. QRコードの内容

URL、テキスト、Wi-Fi 文字列、vCard など、QRコードに符号化できるものなら何でも入力できます。

2. JPEG 出力設定

この設定が、書き出した QRコード JPG が読めるかどうかを決めます。

誤り訂正レベル

JPEG は透明を持たないため、背景は白に固定されています。

QRコードを JPG にすると何が起きるか

PNG は各モジュールを正確な色の値として書き込みます。JPEG はまったく違う扱いをします。画像を 8×8 のブロックに分け、各ブロックを周波数係数へ変換したうえで、エンコーダーが「目立たない」と判断した係数を捨ててしまうのです。写真ではこのトレードオフは目立ちません。しかし黒と白の急な縁だけでできているコードでは、捨てられる情報がそのまま縁になります。

QRコードを壊す3つの性質

色度のサブサンプリング。 多くのエンコーダーは輝度は全解像度で保ち、色度を半分または4分の1の解像度で保存します(4:2:0 や 4:2:2 モード)。モジュールの形は輝度が担っているので、設定が適切なら JPEG でも持ちこたえます。品質を下げていくと色面が隣のモジュールへ横方向に滲み、低品質のコードに見える淡い色縁が発生します。

急な縁のリンギング。 黒から白への急峻な立ち上がりは量子化のときに両側でオーバーシュートし、全モジュールの周囲に薄い同心円状の帯を残します。品質 0.9 では背景より数グレースケール高い程度ですが、0.5 では1行目の黒モジュールを2つと誤読するほど幅を持ちます。

透明非対応。 JPEG は alpha チャンネルを持たないので、描画していない領域は実色になり、どの色かは記録されません。このページで背景を白に固定し、選択肢として出していない理由がそれです。暗いウェブページに QRコード JPG を置いても白い枠が残るのも同じ理由です。

読めるかどうかを決める数値

圧縮の前に、書き出し幅を総マス数で割ってください。総マス数はモジュール数に余白の2倍を足した値です。バージョン3に余白4モジュールなら 29 + 8 = 37 マス。幅 900 画素なら1マスあたり 24 画素あり、圧縮余地は十分です。111 画素ではちょうど 3 画素になり、品質 0.85 未満ではスキャン失敗が出始めます。プレビュー下の表示がこの数値をそのままの値で示します。

  • 1モジュールあたり 2 画素未満:画面でも読めず、カメラでは安定的に失敗します。
  • 3〜4 画素:画面とフラットベッドでは読めますが、スマホカメラでは不安定です。
  • 5〜8 画素:印刷物を通常の距離からスキャンできます。
  • 10 画素以上:プラットフォームが再度圧縮する SNS でも安全です。

QRコード画像に PNG・JPG・SVG のどれを選ぶか

後で拡大・縮小したり色を変えたり、透明背景に載せたりするなら PNG。書き込み先が写真形式しか受け付けない場合、メールを経由する場合、そもそも固定の白背景なら JPG。サイズが確定していない印刷物なら SVG を選んでください。

形式非可逆か透明か向いている用途主なリスク
PNGいいえはい画面、アプリへのアップロード、後で加工する画像3つの形式の中で最も重い
JPG / JPEGはいいいえメールの署名、白背景のウェブページ、PNG を拒否するフォーム品質を下げるとモジュールの縁が甘くなる
SVGベクターで可逆はい印刷、HTML への埋め込み、ロゴスマホのスキャンアプリが直接開けないことが多い

実際に崩れない組み合わせ

生成からカメラで読み取るまでの往復に耐える設定です。長さはおおむね実際に入力される内容に合わせています。規則ではなく出発点なので、プレビューが1モジュールあたり 5 画素未満なら幅を足してください。

使い先幅品質復元レベル補足
メールフッターのリンク600 px0.90Mメールクライアントが縮小するので余裕を残す
自サイトのページ900 px0.92Mレティナでくっきり、短い内容なら 10 KB 未満
Instagram・LinkedIn の投稿1200 px0.95QSNS がアップロード時に再圧縮する
A5 チラシ 300 dpi1500 px0.95M約 4 cm 角で印刷しても余裕あり
ポスター・バナー2000 px1.00L遠目に見るので密度よりモジュールサイズが重要
クエリ文字列が長い URL1600 px0.95L長い内容はバージョンが上がりモジュールが小さくなる

一般的な印刷解像度での寸法

印刷解像度は 1インチあたりのドット数なので、画素数を dpi で割ると実寸が出ます。幅 900 画素の QRコード JPG なら、300 dpi のチラシで 3インチ、150 dpi のポスターで 6インチ、大型出力機の一般的な 100 dpi なら 9インチです。逆に印刷から逆算するほうが実用的です。使える寸法をインチで測り、プリンターの dpi を掛けて、その幅かやや上で書き出してください。

印刷で注意が一つ。小さく書き出した JPEG を拡大するのは、すでに非可逆なファイルを再リサンプリングする動作で、プリンター側でさらに量子化されます。必ず最終サイズで書き出してください。2000 画素を超えて拡大必要があるなら、メインの QRコード画像生成器 で SVG ルートを使ってください。

QRコード JPG の質問

JPG に保存した QRコードは読めますか?
圧縮後も各モジュールの輪郭が立っていれば読めます。品質 0.9 以上、1モジュールあたり最低 3 画素で書き出した QRコード JPG は、ほぼ初回でスキャンできます。品質を 0.5 まで落とすか画像を小さくしすぎると、エンコーダーが検出パターン(ファインダーパターン=3つの四角い目印)を探すために使う境界そのものをならしてしまいます。
QRコード JPG は PNG より小さいですか?
多くの場合、小さくなりません。QRコードは黒と白だけの平面画像なので、PNG は可逆なままほぼ完璧に圧縮できます。JPEG は写真としてのディテールが何も含まれない縁に対して、ブロック符号化のコストを払うだけです。画素数が大きいときだけ JPG が有利になります。PNG は画素数に比例して重く、JPEG はディテールに比例して重くなるためです。
QRコード JPG に必ず白い余白が付くのはなぜですか?
JPEG には alpha チャンネルがなく、透明を保存できません。描画していない領域は必ず実色になり、しかもその色を記録する場所がフォーマットにありません。白い背景が最も安全です。カメラは黒いモジュールと背景の明暗差で読み取るため、白い余白がその差をいちばん大きくできます。
印刷するなら JPEG 品質をいくつにすべきですか?
0.95 以上を使い、後で拡大せず印刷解像度のまま書き出してください。300 dpi で 3×3 インチ印刷するなら 900 画素が必要です。300 画素で書き出してプリンターに拡大させると、可逆でない JPEG を再度リサンプリングすることになり、モジュールの縁が二重にぼやけます。
画像サイズはどれくらい必要ですか?
モジュール数に余白の2倍を足し、そこに 3〜4 を掛けてください。バージョン3は1辺29モジュール、四方に4モジュールの余白を取ると 37 マスなので、111〜148 画素が実用上の下限です。このページのプレビュー下には実際のモジュール数と1モジュールあたり画素数が表示されるため、見積もりは不要です。
QRコード JPG に色を付けられますか?
白に対して十分濃い色なら前景色に変更できます。コントラスト比は 4:1 以上を確保してください。深い緑・紺・黒に近い色は使えますが、明るい黄色や薄い灰色は不可です。JPEG は輝度と色度を分けて保存するため、品質を下げると縁の画素の彩度も落ちます。黒一色よりカラーコードのほうが早く読めなくなるのはこのためです。
JPG と JPEG は同じものですか?
同一フォーマットです。JPEG は策定委員会の名前、JPG は初期 Windows が拡張子を3文字に制限していたために生まれた別表記です。qr-code.jpg と qr-code.jpeg は中身が完全に同じで、この生成器は .jpg でダウンロードします。

次に行うこと