バーコードを切り詰める・引き伸ばすと読めなくなる理由
小さなラベルに収めるための切り詰め、見た目を広げるための引き伸ばし、JPEG の拡大縮小 — どれも読み取り可能性を破壊します。高さとスケールが効く理由と、記号を壊さずリサイズする方法を解説します。

バーコードはロゴのようなもので、あるスペースに収めるために縮めたり、潰したり、引き伸ばしたりできる — という信念が根強くあります。そうではありません。バーコードは厳格な寸法規則を持つ機械可読の記号であり、人が「とりあえず収めた」ために行う編集のほとんどが、まさに読み取りを止めてしまう編集です。
このガイドでは、最もよくある 3 つのリサイズのミス — 切り詰め、引き伸ばし、拡大縮小 — を取り上げ、それぞれがなぜ記号を壊すのか、そして正しくリサイズする方法を解説します。
切り詰め:バーを短く切る
1 つ目のミスは切り詰め — 短いラベルに押し込むために、バーコードの高さ(バーの長さ)を削ることです。表面的には無害に見えます。一次元バーコードは、データをすべて_幅_方向に符号化しており、高さは情報を運ばないからです。では、なぜバーを短くすることが問題なのか?
高さはデータの問題ではなく、走査ジオメトリの問題だからです。レーザースキャナーは水平な線を記号の上に走らせます。その線は、上端や下端にそれることなく、すべてのバーとすべてのスペースを上から下まできれいに通過しなければなりません。バーが短いと、スキャナーには縦方向の誤差の余地がほとんどありません。わずかな傾き、湾曲した表面、完全には安定していない手が、走査線をバーの端の外へ押し出し、読み取りが失敗します。
これは特に次の場合に厳しく効きます。
- コンベア上の 固定式レーザースキャナー — 記号がさまざまな角度で到着し、走査線は全高の記号に合わせて位置決めされている。
- 全方向リーダー — 複数の走査線を異なる角度で放つ。短いバーはそのうちの少ない本数しか捉えられない。
- 小さなラベルのハンディ読み取り — 自然な手首の角度がすでに傾いている。
規則は単純です。シンボロジー仕様が明示的に許している場合以外は、バーの高さを削ってはならない。そして許されている場合でも、削る量は最小限にする。小売の UPC/EAN 記号では、GS1 が記号の倍率に対する最小バー高さを規定しており、それを下回ることは仕様違反であり、読み取り保証を無効にします。
引き伸ばし:「広くする」と比率が歪む
2 つ目のミスは、不均一な引き伸ばし — バーコードを高さを比例して大きくせずに幅だけ広げる、またはその逆を行うことです。長いラベルに合わせて「大きくする」ため、あるいはテンプレートのスロットに押し込むために、人はこれをやります。
一次元バーコードは比率で定義されています。X 次元 — 最も細いバーの幅 — が縮尺を定め、他のすべてのバーとスペースはその整数倍です。太いバーは X 次元の 2 倍、3 倍、4 倍であり、スキャナーはパターンをデコードするためにそれらの正確な比率に依存しています。記号を水平方向に非整数倍で引き伸ばすと、その比率を破壊します。2 倍であるべきバーが 2.37 倍になり、スキャナーはそれを有効な数字に対応付けられなくなります。
バーコードを大きくする正しい方法があり、それは引き伸ばしではありません — 倍率です。倍率は X 次元を均一に拡大縮小するため、すべての比率が保たれます。より大きな記号が必要なら、デザインツールで角をドラッグするのではなく、より大きな X 次元 またはより高い 倍率 で再生成してください。この区別は衒学的に聞こえますが、読める記号と読めない記号の違いです。
拡大縮小:JPEG の問題
3 つ目のミスは、ラスターの拡大縮小 — ソフト上でビットマップ画像(たいてい JPEG や PNG)をリサイズすることです。ここでほとんどのバーコードが静かに死にます。
バーコードはシャープで高コントラストなエッジでできています。ビットマップを非整数倍(たとえば 600 px から 782 px)で拡大縮小すると、ソフトは補間を行わねばなりません — 新しい格子を埋めるために中間のピクセル値を推測します。結果はアンチエイリアスされたエッジ、つまり黒でも白でもない、すべてのバーの境界に沿った灰色の階調です。スキャナーの閾値は、すべての遷移で明暗をきれいに判定しなければならず、ぼやけて補間されたエッジはまさに判定境界に位置するため、誤読を引き起こします。
具体的な失敗モードは次の通りです。
- 非整数倍の拡大縮小(150%、73% など)は最も補間ノイズを導入します。整数倍(200%、300%)はピクセルがきれいに写像されるため、はるかに安全です。
- JPEG 圧縮は問題を悪化させます。JPEG は高周波のディテール — まさにバーコードを構成する細かいバー/スペースの遷移 — をにじませるからです。JPEG で保存されたバーコードは、拡大縮小する前からすでに傷ついています。
- 繰り返しの再エンコード(JPEG を開いて保存し直す)は、毎回エッジをさらに劣化させ、昨日は読めた記号が今日は読めなくなるまで追い込みます。
対策は、バーコードのラスター拡大縮小をそもそも避けることです。ベクター(SVG、またはベクターの EPS/PDF)として生成するか、_正確な_最終ピクセル解像度のビットマップとして生成し、プリンタが再サンプリングしなくて済むようにしてください。どうしてもビットマップを拡大縮小するなら、整数倍で拡大縮小し、PNG のような可逆形式を保ってください。QR や Data Matrix のような 2D コードでも、モジュール — 最小の正方形セル — が整数ピクセルに乗らねばならないという同じ論理が当てはまります。
クイックリファレンス:どの編集が何を壊すか
1 枚の表で 3 つのミスを整理できます。それぞれが記号の異なる部分を攻撃し、異なる対策を求めるからです。
| 編集 | 壊すもの | 理由 | 正しい対策 |
|---|---|---|---|
| 切り詰め(バーの高さを削る) | 走査ジオメトリ | 短い記号は走査線に縦方向の余裕を与えない。わずかな傾きや湾曲で線がバーから外れる | 高さを仕様内に保つ。余裕がなければラベルを縮めるか内容を積む。バーは決して削らない |
| 引き伸ばし(縦横不均一) | バー幅の比率 | 2 倍であるべき走査比率が 2.37 倍になり、スキャナーが数字に対応付けられない | 角をドラッグするのではなく、より大きな X 次元や倍率で再生成する |
| 拡大縮小(ラスターのリサイズ) | エッジのシャープさ | 補間がバー/スペースの遷移を、スキャナーが解像できないグラデーションにぼかす | ベクター出力、または正確なピクセル解像度のビットマップ。やむを得ないなら整数倍で |
| バーに合わせて切り抜く | 静区 | 空白の余白を除去すると、スキャナーが記号を背景の一部と見なす | 記号が小さくなっても構わない。静区は必ず保つ |
パターンに注目してください。どのミスも、「小さくする必要がある」あるいは「大きくする必要がある」を_間違った_方法で達成しようとした結果です。正しい方法は常に、既存の画像を変形するのではなく、望むサイズで記号を再生成することです。「バーコードは生成するものであって、編集するものではない」というこの習慣一つで、3 つすべてを防げます。
2 次元コード(QR、Data Matrix、Aztec)は、誤り訂正 — 損傷したりわずかに歪んだ記号を読み手が再構成できる冗長データ — を備えているため、リサイズに対してやや寛容です。QR コードを拡大縮小しても、限界内ならデコードされます。
しかしその寛容さにも下限があります。モジュール — 1 セルの幅 — は、やはりきれいな整数ピクセルのサイズでなければなりません。QR を小さくしすぎればモジュール同士がにじんで一体化し、端数倍で拡大すればセルが不均一になります。そして一次元コードと違い、2D コードの高さ_は_データを運ぶため、QR を 1 行切り落とすと、誤り訂正があろうとなかろうと完全に破壊されます。
両方の系統に同じ教訓があります。リサイズは設計段階で、意図的に、きれいな目標サイズに行うこと — レイアウトツールでの後付けとしては決して行わないことです。
記号を壊さずにリサイズする方法
この順番に従えば、「収める」ことで記号を台無しにすることはありません。
- 最初にスペースを確保する。 バーコードの面積は、ラベルをレイアウトした後ではなく、その前に決めます。ラベルが記号のサイズに合わせるのであって、その逆ではありません。
- 角のドラッグではなく倍率で拡大縮小する。 目標の幅に達するよう、X 次元(一次元)またはモジュールサイズ(2D)を変更します。比率はすべて保たれます。
- 高さを仕様内に保つ。 シンボロジーの最小バー高さを下回って切り詰めない。デザイン上どうしても短い記号が必要なら、仕様が許すかどうかを(検証付きで高さ縮小を認めるシンボロジーも少数あります)確認し、決めつけない。
- ベクターか、ピクセル完全一致に留める。 印刷にはベクター出力、または正確な印刷解像度のビットマップを生成する。レイアウトツールにバーコード画像を再サンプリングさせてはならない。
- 静区を保つ。 どんなリサイズでも、記号の周りの余白である 静区 を保たねばなりません。「スペースを節約」するためにバーに合わせて切り抜くのは、読み取りを殺す最速の方法の一つです。
- リサイズ後に検証する。 最終的なテストは「見た目が正しいか」ではなく「読めるか」です。最終サイズで、検証器または実機のスキャナーでリサイズ後の記号をグレード付けしてください。
最小バー高さ、倍率の範囲、静区の要件といった GS1 の寸法規則は、GS1 一般仕様 で定義され、一般的な小売記号については GS1 バーコードページ に要約されています。
要点
バーコードはロゴではなく、寸法の仕様です。バーを短く切り詰めると、データは無傷でも走査ジオメトリが破壊されます。記号を不均一に引き伸ばすと、スキャナーが依存するバー幅の比率が破壊されます。そしてビットマップを補間で拡大縮小すると、エッジがスキャナーの解像限界を超えてぼけます。正しい方法でリサイズしてください — 倍率で、ベクターかピクセル完全一致で、静区を保ったまま — そして最終サイズで検証する。デザイナーの手を離れた後に記号が失敗する他の理由は バーコードが読めない 12 の原因 を、そしてスケーリングと同じようにエッジをぼかす印刷側の失敗については 印刷速度のぼけガイド を参照してください。
