ReadoutKit

画像圧縮

画像をアップロードせずに軽くします。ファイルは端末から出ていきません。

すべてブラウザ内で動作します。入力した内容はアップロードされません。

仕組みと使い方

まずリサイズ、それから圧縮

最も大きな削減は、たいてい品質スライダーとは関係のないところにあります。最近のスマートフォンで撮った写真は、横4,000画素あることも珍しくありません。ウェブページ上で横800画素で表示するなら、縦横それぞれ4分の1以外の情報はブラウザが捨てています。誰も見ていない画素の転送に、通信量を払っていることになります。

ファイルサイズは幅ではなく面積に比例します。長辺を半分にすれば画素数は4分の1になり、ファイルサイズもおおむねそれに従います。品質を90から75に下げるよりはるかに大きな削減で、しかも小さいサイズで表示するのであれば見た目の代償はありません。

実務的な手順は次のとおりです。

  1. その画像が表示されうる最大サイズを決める。
  2. 高精細ディスプレイを考慮して、長辺をその2倍程度にリサイズする。
  3. そのあとで、品質を調整する。

品質設定は何をしているか

非可逆形式は、人の目が気づきにくい情報を捨てることで小さくしています。とくに細かな色の変化が捨てられます。人の視覚は色相より明るさにはるかに敏感だからです。品質の数値は、その「捨て方」をどれだけ強く行うかを決めています。

品質得られるもの
90〜95元画像と見分けがつかない。ファイルは大きい。保存用・印刷用。
75〜85ウェブでの定番。並べて比べても違いを見つけにくい。
60〜75ファイルは小さい。空のようなグラデーションに劣化が出る。
60未満輪郭のまわりにブロックノイズが見える。サムネイル用途のみ。

圧縮は元に戻せません。非可逆設定で保存するたびに情報が恒久的に失われるため、同じ JPEG を編集しては保存し直すたびに少しずつ劣化していきます。必ず元画像から圧縮してください。圧縮済みのコピーから圧縮してはいけません。

形式の選び方

WebPが最初に手を伸ばすべき既定値です。同じ体感品質で JPEG より小さくなり、透過にも対応し、現行のすべてのブラウザで表示できます。避ける理由があるとすれば、後工程のどこかに WebP を受け付けない仕組みがある場合だけです。

JPEGは最も安全な受け渡し形式です。画像を読めるものはすべて JPEG を読めます。透過を持てないため、このツールでは JPEG に変換する際、透明部分を白で塗ってから描画しています。そうしないと黒く出てしまうためです。

PNGは可逆圧縮です。スクリーンショット、ロゴ、グラフ、線画のように輪郭がはっきりしたものには、これが正解です。非可逆圧縮ではそうした輪郭がにじんで潰れます。逆に写真には向いておらず、置き換えた JPEG の数倍のサイズになることもよくあります。

端末内で処理するほうが理にかなっている理由

多くの圧縮サイトは、ファイルをアップロードし、サーバー上で処理し、ダウンロードリンクを返す仕組みです。それはあなたの画像の複製が他人のマシン上に存在したということであり、その事業者の保存方針、アクセス制御、そして過去の情報漏洩の履歴に委ねられたということです。旅行の写真なら問題にならないかもしれません。しかしパスポートの画像、診断書、未発表の製品写真なら、大いに問題になります。

ブラウザが画像のデコード・リサイズ・再エンコードを自前でこなせるようになって10年以上が経ちます。ファイルを外に送ることは、技術的に必要だったことは一度もありません。単に作る側にとって楽だっただけです。端末内での処理はアップロードの待ち時間も順番待ちもないぶん速く、誰かの通信費に由来するサイズ上限もなく、複数ファイルを一度に扱えます。

よくある質問

本当にアップロードされていませんか?
本当にされていません。圧縮は canvas 要素を通じてブラウザ自身の画像エンコーダで行っています。ウェブ上のあらゆる画像を描画しているのと同じ仕組みです。確認もできます。開発者ツールのネットワークタブを開いた状態でファイルを圧縮し、リクエストが1件も出ないことを見てください。ページを読み込んだあとに通信を切っても動作します。
どの形式を選べばよいですか?
ウェブ用途ならほぼ WebP です。同じ見た目の品質で JPEG より25〜35%小さくなり、実用上どの環境でも表示できます。WebP を受け付けない仕組みが後工程にある場合は JPEG を選んでください。PNG はスクリーンショット、図、透過が必要なもの、輪郭のはっきりしたものに限ってください。非可逆圧縮ではそうした画像に目立つ劣化が出ます。
PNG にしたらファイルが大きくなったのはなぜですか?
PNG は可逆圧縮なので、写真を PNG で保存し直すと全画素をそのまま格納することになり、元の JPEG より大きくなることがよくあります。写真が大きくなった場合は出力形式を WebP か JPEG に変えてください。PNG は平面的な図のための形式で、写真のための形式ではありません。
品質はいくつにすべきですか?
75前後が定番の落としどころです。通常の表示サイズなら元画像との違いはほとんど分からず、ファイルサイズは大幅に下がります。60を下回ると輪郭やグラデーションにブロックノイズが見え始めます。90を超えると、見た目の改善はわずかなのにファイルは急激に大きくなります。
圧縮すると Exif は消えますか?
副作用として消えます。canvas に描き直す処理は画素だけを引き継ぐため、撮影設定、撮影日時、そして重要な点として GPS 座標も残りません。写真を公開する前にはむしろ好都合ですが、メタデータが必要な場合は元ファイルを保管しておいてください。

ほかのツール