画像圧縮は測定が必要なトレードオフです。同じ品質値でも、画像の 内容、形式、ブラウザーのエンコーダーによってファイルサイズは変わり ます。安全な手順は、元ファイルを残し、見た目の品質かバイト上限の どちらを優先するか決め、設定値ではなくダウンロード結果を確認すること です。
LutrakitのImage Compressor候補は、1ファイル50 MiBまでの静止JPEG・PNG・ WebPを複数処理し、ブラウザー内でJPEGまたはWebPを作成します。ピクセル 寸法は変えません。目標サイズモードは品質を変えて試しますが、幅や高さ を無断で縮小しません。アニメーションPNG・WebPは、1フレームだけを保存 しないよう拒否します。
見た目を優先するときは品質を選ぶ
品質モードは、結果を目視でき、厳密なバイト上限がない場合に向きます。 10%から100%まで選べ、初期値は82%です。この数値はブラウザーの エンコーダーへの要求であり、共通の画質点数ではありません。同じ82%でも JPEGとWebP、別の画像、別のブラウザーでは一致しません。
まず初期値で処理し、細い文字、髪、強い輪郭、グラデーション、反復模様を 100%表示で確認します。重すぎる場合は元画像からやり直して品質を下げ、 劣化が気になる場合は上げます。非可逆圧縮した出力を再び入力にして何度も 保存すると、劣化が重なる場合があります。
バイト上限があるときは目標サイズを選ぶ
フォームやメッセージサービスなどに上限がある場合は目標モードを使い ます。16〜20,480 KBの整数を入力します。この画面では1 KBを1,024バイト として扱います。最大10段階の品質を高い方から等間隔で試します。
検索は各試行で実際に作られたBlobを測定します。品質が下がればサイズも 必ず単調に下がるとは仮定しません。目標以下になった最初の試行を返し、 どれも届かなければ、実測した中で最小の出力を返して未達と明示します。
| 結果 | 意味 | 次の判断 |
|---|---|---|
| 目標達成 | このブラウザーで指定バイト以下になった | 見た目、寸法、提出先での受理を確認する |
| 目標未達 | 10段階のどれも上限に届かなかった | 上限を緩める、別途縮小する、別の方法を使う |
| 元より大きい | 再エンコードで容量を減らせなかった | 変換が不要なら元を使う |
この版はリサイズしないため、目標はベストエフォートです。数字を達成する ためにピクセルを黙って捨てるより、未達を表示する方が正確です。
JPEGとWebPを意図して選ぶ
提出先が対応していれば、WebPはWeb配信用の出発点になります。JPEGは 透明度が不要な写真で広く使われます。どちらも常に最良とは限らないため、 実際の提出先でダウンロード結果を比較します。
JPEGは透明度を保持できません。LutrakitはJPEG描画前にキャンバスを白で 塗るため、透明ピクセルは白になります。透明度が必要ならWebPを選び、 出力のアルファを確認してください。
ブラウザーが要求されたコーデックに対応しない場合、Webプラットフォーム は別形式を返すことがあります。LutrakitはBlobの実MIME型を検査し、PNG にフォールバックしたデータへ誤ったJPEG/WebP拡張子を付けず、エラーを 表示します。
変わるものと変わらないものを知る
デコード後のビットマップの幅と高さは保持されます。保存された向きを反映 するようブラウザーへ要求し、同じ寸法で描画します。圧縮はバイト数と ピクセル値を変える場合がありますが、意図的なリサイズは行いません。
出力はキャンバスから新しくシリアライズされます。元のExif、GPS、ICC プロファイルはコピーされません。一方、ブラウザーのエンコーダーが技術 情報を追加する場合があるため、認証済みメタデータ消去ツールではありま せん。位置、著作者、色管理、プライバシーに関わる場合は、別の検査ツール で出力を確認します。
APNGはacTL、アニメーションWebPはRIFF内のANIM・ANMFチャンクを
使います。Lutrakitはデコード前にこれらを検出して拒否します。全フレーム
を残す必要がある場合はアニメーション対応編集ソフトを使います。
再現できる確認手順
- 元ファイルを別の場所に保存します。
- 画像圧縮ツールを開き、代表的な静止画像を1枚選びます。
- WebP・82%のまま処理し、ダウンロードします。
- 元と出力のサイズ、寸法、実MIME型、100%表示の劣化を記録します。
- 元画像からやり直し、目標モードで提出先の上限を1,024バイト単位のKBで 入力します。
- 達成・未達、実出力サイズ、表示された品質を記録します。
- 実際に使うブラウザーと提出先で繰り返します。
バッチでは、同じ提出条件を持つ画像をまとめます。各画像に個別の出力と 結果が作られます。写真、スクリーンショット、線画では同じ品質値でも見た 目が異なるため、最初の1件だけでなく複数を確認してください。
プライバシー、キャンセル、上限を確認する
ローカル処理では、端末上のブラウザーAPIが選択ファイルをデコード・ エンコードします。現在のビルドを確認するには、開発者ツールのNetworkを 空にし、固有名のコピーを選択して処理し、その名前やバイトを含む通信が ないことを確認します。これは確認したビルドの証拠であり、将来の全変更を 保証するものではありません。
大きな処理をキャンセルし、再開できる安定した状態へ戻ることも確認します。 アニメーションが拒否されること、コーデック非対応時にエラーになることも 確認します。失敗したデータの拡張子だけを変えてはいけません。
圧縮ファイルはデコード後に大きなメモリを使う場合があります。50 MiBの 入力上限に加え、端末に応じたラスタ面積と累積ピクセル上限があります。 巨大画像、RAW、高ビット深度、カラーマネージド印刷、保存用マスターには デスクトップ編集環境を使います。
最終チェック
- 元ファイルを残す。
- 見た目なら品質、バイト上限なら目標を選ぶ。
- 達成・未達メッセージを読む。
- 寸法、透明度、形式、実サイズを確認する。
- 必要ならメタデータを別途検査する。
- アニメーションを誤って静止画化しない。
- 代表画像を実際のブラウザーと提出先で再確認する。
切り抜き、リサイズ、回転には専用の編集ツールを使い、目標サイズモードが 寸法を無断で変えるとは考えないでください。プライバシーの仕組みは ブラウザー内ローカル処理を参照してください。
参照資料
- WHATWG HTML Standard:canvasシリアライズと
convertToBlob()。 - WHATWG HTML Standard:
ImageBitmapとcreateImageBitmap()。 - W3C Portable Network Graphics (PNG) Specification, Third Edition。
- Google WebP Container Specification。