やっとビザやパスポート、運転免許のフォームを埋め終えた。写真をドラッグして送信ボタンを押すと、ポータルから返ってくるのは「ファイルは100KB未満にしてください」。写真をじっと見る。これはスマホで撮った普通の証明写真——どうやって100KB未満になるというのか。右クリックしてエディタで開き、「名前を付けて保存」でJPEGにし、品質を最低にして、もう一度試す。でもまだ大きすぎるか、顔がぐちゃぐちゃのボヤケになってシステムに弾かれる。
ここで誰も教えてくれない真実がある。写真を「ぴったり100KBに縮小する」魔法のボタンは存在しない。写真がどれだけ小さくなるかは2つのつまみで決まる——JPEGの品質(どれだけ圧縮するか)と解像度(ピクセル数)だ。多くの人はどちらか一方しか触らず、しかもたいてい間違った方だ。この2つが別々のつまみだと気づけば、問題は退屈なものになり、それこそが望む姿だ。
そこで私は当てずっぽうをやめて実測した。標準サイズの証明写真——2400×3000ピクセル、スマホ直撮りのオリジナル1.8MB——を、実際のブラウザ内コンプレッサでいくつかの品質設定で圧縮し、その都度ツールが表示した実際のファイルサイズを記録した。
| 品質設定 | 結果のファイルサイズ |
|---|---|
| 90 | 678.5 KB |
| 80(多くのツールのデフォルト) | 249.5 KB |
| 70 | 109.6 KB |
| 65 | 83.9 KB |
| 60 | 66.9 KB |
| 50 | 48.2 KB |
| 30 | 38.0 KB |
まず80の行を読んでほしい。これは多くのコンプレッサが最初に開く品質で、1.8MBの写真を250KBまでしか下げない——100KB上限の2倍以上だ。そして品質はサイズに比例しないことに注意。90から80へ(わずか10ポイントの品質低下)でファイルは678KBから250KBへと崩れ落ち、63%も削れる。さらに下がると70は110KB(ぎりぎりのライン)、65は84KB、60は67KB——100KBを余裕で下回り、顔も髪も証明写真の白い枠もくっきりとシャープなままだ。
最適な設定は品質60~65
「100KB未満」という目標なら、品質60~65が最適な設定だ。それより下げるとサイズはほとんど動かない——50で48KB、30で38KB——その代わり写真が崩れ始める。輪郭が緩み、肌のトーンがむらになる。だから「安全のため」にスライダーをゼロに引っ張るな。60前後で十分で、写真のように見える(絵のようにならない)。
なぜポータルは100KBのような限界を設けるのか
この限界がなぜあるかを知ると役立つ。それはフォームが実際に何をチェックしているかを教えてくれるからだ。ビザやパスポートのポータルは何百万枚もの写真を受け取り、申請者每人から3MBのアップロードに備えたサーバーではなく、控えめなサーバーで検証している。固定の上限があると、弱い回線のスマホでもフォームを速く保てる——多くの人がまさにそこから送信する。この数字は適当ではないが、スマホの写真には意図的な圧縮が必要で、期待を込めた「名前を付けて保存」ではないことを意味する。50KB、あるいは20KBを求めるポータルもある。同じスライダーで対応できる、ただ少し早めに止めるだけだ。
品質だけでは足りないとき:解像度のつまみも使う
オリジナルが1.8MBではなく、フル解像度のスマホ写真で3~4MB、あるいはフォームの上限が厳しい(50KB、あるいは20KBを求める)場合、品質だけでは届かないかもしれない。品質60で3MBのオリジナルはまだ約110KBになり、ラインを超える。そこで解像度も下げる。ポータルが求める寸法(多くは600×600か800×800)に写真を縮め、それから品質60で圧縮すれば、楽に限界内に収まる。品質と解像度は独立した2つのつまみだ——両方使おう。
まだ大きい?たいていの原因は元の解像度
品質60とサイズ縮小をしてもまだ大きいなら、ボトルネックはたいてい元の解像度だ。1200万画素のスマホ写真は、どの証明写真フォームが必要とするよりはるかに大きい。必要なフレーム(頭と肩、部屋全体ではない)にトリミングしてから縮めよう。余分な背景はすべて無駄なバイトだ。タイトなトリミングと品質60の組み合わせは、品質を20にしてボヤケでサイズを隠そうとするより、ずっと確実にハードルを越える。
私が実際に使っている流れ
- まず要件を確認する。 フォームにはたいていピクセル寸法とKB上限の両方が書いてある(ビザフォームはよく600×600、≤100KBと書く)。メモしておく。
- 写真をコンプレッサにドロップし、品質スライダーを60前後に下げる。
- ライブのファイルサイズを見る。 まだ上回る? まず寸法を縮め、あるいは品質を少し下げる。
- ダウンロードしてアップロード。 通る。
時間を無駄にする間違い
- JPEGを何度も上書き保存する。 毎回の「名前を付けて保存」で再圧縮され、ダメージが蓄積するのにファイルはたいていあまり小さくならない。一度だけ、目標に合わせて圧縮しよう。
- オンラインコンプレッサを使う。 写真は他人のサーバーに送られる——証明書類にとってプライバシーの問題——しかも多くはローカルのMozJPEGより下手に圧縮する。
- PNGの証明写真を無理やりJPEGにする。 透明やシャープなテキストを持つPNGはPNG8パレット圧縮のもので、JPEGにするとただボヤけるだけだ。(スクリーンショットも同じ話——私のスクリーンショット圧縮ガイドを参照。)
- 「品質%」が「サイズ%」だと思い込む。 表を見てほしい。90→80でサイズは63%減ったが、60→50はわずか28%減だ。関係は曲がっている。
もう1つのケース:写真がすでにPNGのとき
渡されたファイルがすでにPNGの場合——スキャンした書類や多くの公的ファイルでよくある——JPEGに通すな。シャープな輪郭を失い、サイズでもたいてい得るものがない。PNGには独自のコンプレッサ(パレット/PNG8)があり、ファイルを縮めながら輪郭を正確に保つ。同じブラウザツールがこの経路も扱う。原理は同じ、変わるのはフォーマットだけだ。メカニズムが知りたければ、私のスクリーンショットガイドがPNG側を深掘りしている。
なぜブラウザで行うか
何もインストールする必要はなく、証明写真をサーバーにアップロードする必要もない。ページを開き、写真をドロップし、品質を60にし、ダウンロードする。すべてブラウザ内で完結する——ファイルが端末を出ることはなく、パスポートやビザの写真ならとても重要だ。20KBのような厳しい上限と戦うなら、私の20KB圧縮ガイドがまさにその場合を扱い、メール用の普通の写真の山なら、メールで大きすぎる写真の解決策が欲しいものだ。
30秒バージョン
解決策は1行に収まる。コンプレッサを開き、品質を60前後にし、必要ならポータルのピクセル寸法に縮め、ダウンロードする。インストールするソフトなし、サーバーに送るファイルなし、アカウントなし。それをやればフォームの文句は止む。友人が30秒で頼んだら、こう言うだろう。フォームと戦うな、ファイルと戦え——つまみは2つ、品質とサイズ、それでおしまい。
次にフォームが「大きすぎる」と写真を弾くとき、それは写真が悪かったからではないことを知っているはずだ——ただまだ知らない2つのつまみがあっただけだ。