20KBはピクセルの予算
目標があると、非可逆形式ごとにまず段階の画質(バランスは0.80)でエンコードします。大きすぎれば0.05から0.80の間を8回半分に区切って探し、収まるうちで最も高い画質を残します。PNGは画質の探索をしません。20,480バイト以下の候補のうち、最小のものではなくSSIMが最も高いものが選ばれます。
20,480バイトは163,840ビットです。512 × 512のテスト写真に割り振ると1ピクセルあたり0.63ビットで、WebPでSSIM 0.96になりました。4032 × 3024のスマホ写真なら1ピクセルあたり0.013ビットで、どの画質でも届きません。そのときツールは最も小さい試行結果を「目標サイズに届きませんでした。サイズの縮小を許可してみてください。」と一緒に返します。
「目標に届かない場合はサイズも縮小」をオンにすると、前の幅の55〜85%ずつ、最大5回小さな幅を試します。小さい版は拡大し直してから採点するので、本当に元に近いときだけ勝ちます。テスト写真では435pxのWebPが0.9581、元のサイズが0.9593で、元のサイズが残りました。
- KB
- Nerulioの目標と表示では1,024バイト。1,000で数えるフォームもあります。
- 画質の探索
- ファイルが収まるまで0.05と段階の画質の間を半分ずつ絞り込む処理。
- サイズも縮小
- 任意。目標に届かないとき、より小さな幅を試させます。
NASAの写真を20KBに収める(実測)
バランス、自動形式、Chromium 153、2026-09-28。1ピクセルあたりのビット数は目標から計算した値です。
目標 20KB = 20 x 1,024 = 20,480 バイト
astronaut.png 512 x 512 791,555 バイト
WebP q0.516 20,206 バイト SSIM 0.9593 <- 採用
JPG q0.293 20,117 バイト SSIM 0.9463
PNG 575,694 バイト 目標超過
縮小を許可: 最良の小さい版 435 x 435 WebP、SSIM 0.9581(不採用)
予算 163,840 ビット / 262,144 ピクセル = 1ピクセル 0.63 ビット
163,840 ビット / 12,192,768 ピクセル = 1ピクセル 0.013 ビット(4032 x 3024)
ここで0.96程度になった密度なら、20KBに入るのは約0.27メガピクセル、4:3の写真で約595 × 446です。スマホ写真は先にサイズ変更でその大きさにするか、縮小を許可します。20,206バイトは20,000を超えている点にも注意してください。
フォームの上限ごとの入力値
| フォームの表記 | 入力する目標サイズ | 最大のファイルサイズ |
|---|
| 20KB(1KB = 1,024バイト) | 20(プリセット) | 20,480 バイト |
|---|
| 20KB(1KB = 1,000バイト) | 19 | 19,456 バイト |
|---|
| 20KBでJPG必須 | 20、保存形式JPG | テスト写真でJPG q0.293、20,117 バイト(SSIM 0.9463) |
|---|
| 20KB以下でピクセルサイズも指定(例:証明写真) | そのサイズに縮小してから20 | ピクセルを減らして画質を上げる |
|---|
結果の確認
- アップロード前にファイル管理ソフトで正確なバイト数を確認します。結果一覧では20,206バイトが「20 KB」と丸めて表示されます。
- ファイルを100%で開きます。顔・目・小さな文字に20KBの限界が最初に出ます。
- 拡張子を確認します。自動では
.webp になることがあり、多くのフォームは .jpg を求めます。
トラブルシューティング
| 症状 | 考えられる原因 | 確認方法 | 対処 |
|---|
| 「目標サイズに届きませんでした」 | 画質0.05でも20,480バイトに対してピクセルが多すぎる | ファイルの下の警告 | 「目標に届かない場合はサイズも縮小」をオンにするか、先に幅600px程度に縮小します |
|---|
| フォームが20KBのファイルを大きすぎると言う | フォームが1KBを1,000バイトで数えている | ファイルのプロパティで例:20,206バイト | 目標サイズに19を入力します(最大19,456バイト) |
|---|
| 結果が.webpなのにフォームは.jpgを求める | 点数が高かったため自動がWebPを選んだ | 名前が -min.webp で終わる | 詳細 → 保存形式 → JPG |
|---|
| 顔がブロック状・文字が読めない | このピクセル数で20KBだと画質を大きく下げるしかない | 100%で拡大 | 切り抜きで必要な部分だけ残すかサイズを縮小してから、もう一度圧縮します |
|---|
ほかの方法
| 方法 | こんなときに向いています |
|---|
| 50KB以下に圧縮 | フォームがもっと許す場合。50KBでは同じ写真が画質0.80を保ちました。 |
|---|
| 表示サイズに先にサイズ変更 | フォームが決まったピクセルサイズ(例:小さな証明写真)で表示するなら、それを超えるピクセルは無駄なバイトです。 |
|---|
この方法の限界
- 点数は長辺最大512pxのコピーで計算するため、大きなスキャン画像の小さな文字の劣化を見逃すことがあります。
- エンコーダーはブラウザのものなので、同じ目標でも別のブラウザではバイト数が少し変わることがあります。
バージョンと出典
2026-09-28にPlaywright Chromium 153で、src/task/compress.js が ?kb=20 に渡す設定(画質0.80、自動、背景 #ffffff)のまま、縮小の有無を切り替えて src/compression.js を呼び出し、tests/fixtures/astronaut.png とそのPillow製JPGで計測しました。
参照した公式ドキュメント
画像を20KB以下に圧縮
20KBに収まるまで品質・形式の候補を作り、実際の結果を再度開いて画質(SSIM)を比べ、最良のものを選びます。保存前に実際の容量を確認できます。
解像度は原則そのまま。どうしても収まらない場合だけ、縮小を自分でオンにしてください。
ファイルはサーバーにアップロードされず、このブラウザ内だけで処理されます。
画像を圧縮
目標容量を設定し、実際の結果を確認。
使い方
- 元ファイルを開く
- 処理方式と設定を選ぶ
- 実行して結果を確認し保存
対応形式
PNG / JPG / WebP / AVIF / HEIC → PNG / JPG / WebP — 読み込み・書き出しはブラウザの対応状況によります。 アニメーション入力は非対応です。静止フレームを選択してください。
このツールでできること
Autoが実際のコーデック出力の標本品質を比較し目標容量を探索します。透過を考慮し、任意でサイズを縮小。
処理方式と検証状況
advanced · browser codecs / proxy SSIM candidate search. 品質検証中です。Pro・Flagship水準はまだ実証されていません。
書き出す前に
端末のメモリ・保存容量・コーデック対応によります。テスト例はすべてのファイルの動作保証ではありません。
よくある質問
対応サイズは何で決まりますか?
端末のメモリ・保存容量・コーデック対応によります。テスト例はすべてのファイルの動作保証ではありません。
ファイルはアップロードされますか?
このツールで開いたファイルはアップロードせず端末で処理します。コミュニティの投稿に明示的に添付する画像は別途アップロードされます。一部のエンジンやモデルは外部から取得するため、IPアドレスなどの接続情報は配信元に伝わります。
作業は自動保存されますか?
いいえ。画像と編集状態はこのタブに保持され、メディア出力は端末の一時保存を利用する場合があります。言語を変えても作業は残りますが、再読み込み、タブを閉じる操作、別のページへの移動で失われることがあります。