← ブログに戻る

写真を100KB未満に圧縮する方法(ビザ・パスポート・オンラインフォーム向け)

やっとビザやパスポート、運転免許のフォームを埋め終えた。写真をドラッグして送信ボタンを押すと、ポータルから返ってくるのは「ファイルは100KB未満にしてください」。写真をじっと見る。これはスマホで撮った普通の証明写真——どうやって100KB未満になるというのか。右クリックしてエディタで開き、「名前を付けて保存」でJPEGにし、品質を最低にして、もう一度試す。でもまだ大きすぎるか、顔がぐちゃぐちゃのボヤケになってシステムに弾かれる。

ここで誰も教えてくれない真実がある。写真を「ぴったり100KBに縮小する」魔法のボタンは存在しない。写真がどれだけ小さくなるかは2つのつまみで決まる——JPEGの品質(どれだけ圧縮するか)と解像度(ピクセル数)だ。多くの人はどちらか一方しか触らず、しかもたいてい間違った方だ。この2つが別々のつまみだと気づけば、問題は退屈なものになり、それこそが望む姿だ。

そこで私は当てずっぽうをやめて実測した。標準サイズの証明写真——2400×3000ピクセル、スマホ直撮りのオリジナル1.8MB——を、実際のブラウザ内コンプレッサでいくつかの品質設定で圧縮し、その都度ツールが表示した実際のファイルサイズを記録した。

品質設定結果のファイルサイズ
90678.5 KB
80(多くのツールのデフォルト)249.5 KB
70109.6 KB
6583.9 KB
6066.9 KB
5048.2 KB
3038.0 KB

まず80の行を読んでほしい。これは多くのコンプレッサが最初に開く品質で、1.8MBの写真を250KBまでしか下げない——100KB上限の2倍以上だ。そして品質はサイズに比例しないことに注意。90から80へ(わずか10ポイントの品質低下)でファイルは678KBから250KBへと崩れ落ち、63%も削れる。さらに下がると70は110KB(ぎりぎりのライン)、65は84KB、60は67KB——100KBを余裕で下回り、顔も髪も証明写真の白い枠もくっきりとシャープなままだ。

同じ1.8MBの証明写真をJPEG品質60で圧縮する前後——67KBに縮小、まだシャープ
実際の1.8MB写真1枚:品質60で67KBに。ビザやパスポートのほとんどのポータルが求める100KBの限界を余裕で下回り、顔も見分けられる。デフォルトの品質80では250KBで、それでも弾かれていた。

最適な設定は品質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にしてボヤケでサイズを隠そうとするより、ずっと確実にハードルを越える。

私が実際に使っている流れ

  1. まず要件を確認する。 フォームにはたいていピクセル寸法とKB上限の両方が書いてある(ビザフォームはよく600×600、≤100KBと書く)。メモしておく。
  2. 写真をコンプレッサにドロップし、品質スライダーを60前後に下げる。
  3. ライブのファイルサイズを見る。 まだ上回る? まず寸法を縮め、あるいは品質を少し下げる。
  4. ダウンロードしてアップロード。 通る。

時間を無駄にする間違い

もう1つのケース:写真がすでにPNGのとき

渡されたファイルがすでにPNGの場合——スキャンした書類や多くの公的ファイルでよくある——JPEGに通すな。シャープな輪郭を失い、サイズでもたいてい得るものがない。PNGには独自のコンプレッサ(パレット/PNG8)があり、ファイルを縮めながら輪郭を正確に保つ。同じブラウザツールがこの経路も扱う。原理は同じ、変わるのはフォーマットだけだ。メカニズムが知りたければ、私のスクリーンショットガイドがPNG側を深掘りしている。

なぜブラウザで行うか

何もインストールする必要はなく、証明写真をサーバーにアップロードする必要もない。ページを開き、写真をドロップし、品質を60にし、ダウンロードする。すべてブラウザ内で完結する——ファイルが端末を出ることはなく、パスポートやビザの写真ならとても重要だ。20KBのような厳しい上限と戦うなら、私の20KB圧縮ガイドがまさにその場合を扱い、メール用の普通の写真の山なら、メールで大きすぎる写真の解決策が欲しいものだ。

30秒バージョン

解決策は1行に収まる。コンプレッサを開き、品質を60前後にし、必要ならポータルのピクセル寸法に縮め、ダウンロードする。インストールするソフトなし、サーバーに送るファイルなし、アカウントなし。それをやればフォームの文句は止む。友人が30秒で頼んだら、こう言うだろう。フォームと戦うな、ファイルと戦え——つまみは2つ、品質とサイズ、それでおしまい。

次にフォームが「大きすぎる」と写真を弾くとき、それは写真が悪かったからではないことを知っているはずだ——ただまだ知らない2つのつまみがあっただけだ。

写真を上限内に収めよう

写真をドロップし、品質を60前後に下げ、シャープな小さなファイルをダウンロード。無料・ブラウザ完結・プライベート——証明写真が端末から出ることはありません。

写真を無料で圧縮 →
著者について:Chuan オンラインフォームが「大きすぎる」と言ってちゃんとした写真を何度も拒否することに疲れた独立系開発者。CompactJPGを作り、画像をブラウザ内でローカルに圧縮し、ファイルが端末を出ないようにした。