このページのコードが起動しませんでした。

index.htmlをフォルダから直接開くと、ブラウザがJavaScriptモジュールを読み込めません。そのため画像を選んでも何も起きません。フォルダはhttpで配信してください。

powershell -ExecutionPolicy Bypass -File serve.ps1

そのうえでhttp://localhost:8080/を開いてください。

画像圧縮 — ファイルサイズの上限に収める

サイズを指定するだけ。あとは自動で探します。

言語: 日本語
ソースを見る
画像はブラウザー内で処理されます。処理のためのアップロードはありません。

圧縮を行うのは、お使いのブラウザと手元のハードウェア、そしてブラウザに最初から入っているエンコーダーです。このツールにはネットワーク機能が一切ありません。取りに行く先も、送る先もありません。仮に送ろうとしても、このページの向こう側に画像を受け取るサーバーが存在しません。

いまの通信: 確認中…

オフライン: 確認中…

鵜呑みにする必要はありません。DevToolsの「ネットワーク」タブを開いたまま写真を圧縮してみてください。画像もサムネイルもファイル名も、選んだファイルの1バイトも、どのリクエストにも載りません。回線を抜いてから圧縮してみるのでも構いません。

1 画像を選ぶ

2 上限のサイズを決める

ほかの圧縮ツールが逆にしているのは、この部分です。画質のスライダーだけを渡され、どこに合わせれば指定された上限に収まるのかは、使う側が当てることになります。ここでは上限のほうを先に指定してください。そこに収まる中でいちばん高い画質をツールが探し、余った分まで使い切ります。頼んだ半分のサイズのファイルが返ってくることはありません。

必要なら画像そのものを小さくしてよい 画質だけで対応すると、圧縮のノイズが見え始める点より下まで落とさざるを得ません。そうなったときにだけ縮小します。そこから先は、荒れたピクセルが多いより、きれいなピクセルが少ないほうがよく見えるからです。寸法をそのまま保って、厳しい目標を画質のほうで払いたいときは、ここのチェックを外してください。

そこへ届くまでに何を許すか

3 圧縮する

Markdownで表示

画像を指定サイズに圧縮する手順

  1. 画像を選びます。選択欄にドロップするか、手で選んでください。ブラウザがディスクから直接読み出します。その間に何かがどこかへ送られることはありません。
  2. 指定されたサイズを打ち込みます。写真を何度も突き返してくるアップロード欄なら100KB、応募フォームなら500KB、速く表示したいページなら2MB。よく使う4つはボタンになっています。
  3. 「目標サイズまで圧縮」を押します。収まる範囲でいちばん高い画質へ絞り込みながら、各画像が何度もエンコードされます。すでに目標を下回っているものには、まったく手をつけません。
  4. 代償を確かめて、ダウンロードします。どの結果にも、どの形式で書き出したか、画質はいくつか、寸法が変わったか、測ってみて元とどれだけ一致しているかが表示されます。「比較」を押すと2枚を並べて見られます。

詳しい解説

画像をファイルサイズ上限以下に圧縮する方法 アップロード欄は500KBを求め、手元の写真は4MB。サイズ制限が実際に何を犠牲にするのか、どの設定から動かすべきか、そしてPNGがJPEGのようには縮まない理由。

よくある質問

画像はどこかにアップロードされますか?

されません。読み込みも圧縮も計測も、お使いのブラウザが手元のハードウェア上で、最初から入っているJPEG・PNG・WebPのエンコーダーを使って行います。このツールにはネットワーク機能が一切なく、何も取りに行かず、何も送りません。ページのContent-Security-Policyには接続してよいアドレスがすべて挙がっていますが、そのどれも当サイトのものではありません。

ファイルサイズの上限にどう収めますか?

候補を何度かエンコードして測定し、上限に収まる最高の画質を探します。対応する候補を作れる場合、結果は目標以下になりますが、入力したバイト数と完全に一致するとは限りません。すでに上限以下のファイルは変更しません。画質の調整だけで足りなければ寸法を縮小するので、結果を確認してください。

ここでいう「劣化は最小限」とは具体的に何ですか?

3つあります。1つ目、すでに目標を下回っている画像は再エンコードせず、1バイトも変えずにそのまま通します。2つ目、解像度より先に画質を使い、圧縮のノイズが見え始める下限までしか下げません。そこを超える場合は画像そのものを小さくして画質を戻します。荒れたピクセルが多いより、きれいなピクセルが少ないほうが見た目は良いからです。3つ目、収まる結果が見つかったあとは予算を使い切るまで上へ押し戻すので、500KBと指定して300KBのファイルが返ってくることはありません。

結果に出ているSSIMとPSNRは何の数字ですか?

圧縮の代償を測った数字です。書き出した結果を読み直し、元の画像と比べています。SSIMは局所的な明るさ・コントラスト・構造を比べるもので、変わったピクセルを数えるより、人の目が気にする点にずっと近い指標です。おおむね0.98を超えると、並べても見分けがつきにくくなります。PSNRは昔ながらのデシベル値です。どちらも手元の端末で計算し、どちらも表示します。劣化が小さいという主張を、言いっぱなしにせず確かめられるようにするためです。

読み書きできる形式は何ですか?

ブラウザがデコードできるJPEG、PNG、WebP、GIF、BMP、AVIFなどを読み込みます。新しい符号化にはJPEG、PNG、WebPを使います。目標サイズ以下のファイルは、形式もメタデータも変えずに返します。符号化が必要な場合、自動はブラウザが書き出せる元の形式から始めます。書き出せない場合、GIFはPNG、AVIFやBMP、MIME型が不明な入力はJPEGから始めます。その後、見た目の損失が少なく目標に収まるならWebPを選ぶことがあります。

PNGがあまり小さくならないのはなぜですか?

PNGが可逆だからです。回すべき画質のつまみがありません。PNGを小さくする手はピクセルを減らすか色を減らすかしかないので、PNGを選んだ場合、このツールは縮小だけで目標に近づけます。写真であればJPEGかWebPのほうが、見て問題ないとわかる画質のまま目標にずっと近づきます。ロゴや透過のあるスクリーンショットなら、JPEGが白で埋めてしまう透過をWebPは保ちます。

圧縮するとEXIFやGPSの情報は消えますか?

再エンコードした結果には、元のEXIF、GPS、日時などのメタデータを引き継ぎません。キャンバスは画素だけを持つためです。すでに目標サイズ以下のファイルは、メタデータごと変えずに返します。EXIFビューアー・削除ツールはJPEG、PNG、WebPの画像を再エンコードせずにメタデータを閲覧・編集します。AVIFは抽出できたEXIFの読み取り専用表示に対応し、最初にデコードした画像を新しいPNGへ変換して削除します。色やHDRが変わる場合があります。

無料ですか。アカウントは必要ですか?

無料です。アカウントも、ログインも、試用期間も、透かしもありません。ファイルの数にもサイズにも制限はありません。その費用を払うサーバーが存在せず、処理が手元の端末で起きているからです。このサイトには広告があり、それが費用を賄っています。広告に画像の情報が渡されることはありません。

オフラインでも動きますか?

動きます。ページを一度読み込んでから通信を切っても、そのまま使えます。何もアップロードされていないことを示す、いちばん簡単な方法でもあります。圧縮のために画像をどこかへ送っている道具なら、線を抜いた瞬間に止まるからです。