再エンコードで残るもの、捨てられるもの
画像ファイルは、ピクセルと、それに関するいくつかの情報でできています。その数値がどの色空間で測られているか、アルファチャンネルがあるか、カメラがEXIFに記録した内容(機種、露出、日時、そしてしばしばGPS座標)、そしてGIF・WebP・AVIFでは複数のフレームがあるかどうか。ここにあるほぼすべての処理はファイルをデコードして新しいファイルを書き出すため、それぞれの情報がどうなるかは個別に決まります。
最初の分かれ道は、非可逆か可逆かです。 PNGとBMPはピクセルを正確に保存するので、100回保存し直しても何も変わりません。JPG、AVIF、通常のWebPは目が気づきにくい細部を捨て、捨てた部分は失われます。JPGをPNGに変換しても元には戻らず、それ以上の劣化を止めるだけです。JPEGを2回保存すると1回より悪くなるのはこのためです。2回目のエンコードはすでに量子化されたピクセルを再び量子化し、間にトリミングやサイズ変更を挟むと新しい8×8のブロックの格子が古い格子と揃わなくなるので、誤差が同じ形で繰り返されるのではなく積み重なっていきます。元のファイルが手元にあるなら、常にそれを使って作業してください。
クロマサブサンプリングこそ、JPGのスクリーンショットがおかしく見える具体的な理由です。JPEGは通常、明るさをフル解像度で、色を半分の解像度で保存します。写真では分かりませんが、赤い文字や細い色付きの線でははっきり分かります。スクリーンショット、ロゴ、図なら、PNGかWebPが正しい選択で、JPGは不適切です。
透過部分には何かを入れる必要があります。 JPGにはアルファチャンネルがまったくないので、PNG JPG変換とAVIF JPG変換では、透過ピクセルを知らないうちに白や黒で塗りつぶすのではなく、どの色で置き換えるかを選べるようにしています。PNG、WebP、AVIFはすべて完全なアルファチャンネルを持つので、PNG WebP変換や背景削除で切り抜いた画像は、柔らかい輪郭がそのまま残ります。
EXIFは残りません。 再エンコードを行うツール(変換、圧縮、サイズ変更、回転、トリミング)はすべて、EXIFを含まないきれいなファイルを書き出すため、カメラの機種、撮影日時、GPSの位置情報は削除されます。写真を公開する前なら、まさに望ましい動作です。見た目に影響するEXIFは向きの情報だけで、画像回転は実際のピクセルを動かすことでこれを回避しています。そのため、向きのフラグを無視するビューアーでも、尊重するビューアーでも、正しい向きで表示されます。
カラープロファイルは引き継がれず、変換されます。 ブラウザは表示のためにDisplay P3やAdobe RGBのファイルをsRGBにデコードし、書き出されるファイルにはプロファイルが埋め込まれません。一般的な画面では何も変わりませんが、広色域の画面では最も鮮やかな色が切り詰められています。TIFF JPG変換も同じ経路をたどるため、CMYKの制作用TIFFはRGBになります。色校正をするなら、プリプレスソフトで扱い続けてください。
アニメーションは静止画になります。 アニメーションGIF・WebP・AVIFは、最初のフレームだけが変換されます。GIF PNG変換で求められるのはたいていそれですが、12秒のループをドロップする前に知っておくとよいでしょう。
ブラウザが本当に適さない場面
これらのツールは、ファイルを外部に出さないことを目的に作られており、それには代償もあります。作業の途中で気づくより、ここで先にお伝えしておきます。
非常に大きな画像。 すべてのピクセルが展開された状態でお使いの端末のメモリに保持されます。1億画素の画像は、処理を始める前の生のRGBAだけで約400 MBになります。それを超えるどこかでタブのメモリが足りなくなり、4×のアップスケールではさらに早く、一般的なノートパソコンで出力が約6000×6000のあたりで上限に達します。ディスクからタイル単位で読み込むデスクトップのツールには、こうした制限はありません。
カメラのRAW。 CR2、NEF、ARW、DNGファイルは、センサーのデータと現像の設定であって、完成した画像ではありません。ここではどのツールでも開けません。まずカメラのソフトからJPEGやTIFFを書き出すか、darktableやRawTherapeeを使ってください。どちらも無料で、どんなWebページよりもはるかにこの作業に向いています。
印刷の色。 特色、CMYKの色分解、ICCのレンダリングインテント、ソフトプルーフはプリプレスソフトの領域です。ブラウザで表示できるよう色をsRGBに変換しますが、色の管理は行いません。
一括処理と自動化。 これらのツールは、人がクリックしたときに動きます。4万枚の商品写真を定期的にサイズ変更するなら、サーバー上のコマンドラインツールの出番で、無料のものが優秀です。ほぼ何にでも使えるImageMagick、巨大なファイルを高速かつ省メモリで扱えるlibvips、最後の1バイトまで絞り出すmozjpegとoxipng、フレームを持つものなら何でも扱えるffmpegがあります。
背景削除には本当の限界があります。 初回に40〜85 MBをダウンロードするだけで、髪や毛並みも含め、被写体がはっきりしていれば本当に優秀です。しかし、はっきりした被写体がない雑然とした場面では本当に迷います。これは端末の処理能力をいくら上げても解決せず、手法そのものの限界で、有料サービスにも同じ限界があります。
似た名前のツールの選び方
画像圧縮と画像サイズ変更。圧縮はサイズ(縦横)を保ったまま、1ピクセルあたりのバイト数を減らします。サイズ変更は縦横のサイズを変え、ピクセルそのものを減らします。4000pxの写真を200 KBにしたいなら、先にサイズ変更してから圧縮するほうが、圧縮だけより必ず良い結果になります。しかも、サイズ変更は大事な意味でロスレスです。残るピクセルは劣化するのではなく、適切にリサンプリングされるからです。
画像サイズ変更と画像アップスケール。どちらも縦横のサイズを変えますが、調整の方向が逆です。サイズ変更は小さくするためのもので、縮小しても細部が残るようLanczosフィルターを使います。アップスケールは2×・4×に拡大するためのもので、拡大すると必ずぼやけるため、後から輪郭を考慮したシャープ処理を加えます。どちらも細部を作り出すことはなく、出てくるものは元の画像にあったものです。
ICO変換とファビコン作成。ICO変換は、16・32・48・256pxの各サイズを含む1つの.icoファイルを作ります。Windowsのアプリケーションやショートカットに必要なのはこれです。ファビコン作成は、.ico、個別のPNG、Apple touch icon、Webマニフェスト、HTMLタグという最新の一式をZIPにまとめて作ります。Webサイトに必要なのはこちらです。
PNG WebP変換とJPG AVIF変換。どちらもWeb用の画像を元より小さくしますが、向いている元画像が異なります。WebPは透過を保ち、一瞬でエンコードできるので、スクリーンショット、ロゴ、UIの画像に適しています。AVIFは写真をより強く圧縮でき、同等のJPGより通常40〜60%小さくなりますが、AV1のエンコードは重いので、大きな写真では1枚あたり数秒かかります。
画像ぼかしと背景削除。ぼかしは、指定した範囲の情報を破壊します。顔、ナンバープレート、口座番号などです。背景削除は被写体と背景を分け、背景を完全に削除します。目的が切り抜きではなく隠すことなら、ぼかしを使ってください。文字には粗いモザイクを使いましょう。弱いモザイクは、公開された研究で復元されたことがあるからです。