CompressSnap
JPEG、PNG、WebP、AVIF、HEIC をブラウザ内で圧縮します。好きな画質でも、守らなければならないファイルサイズでも指定でき、その代償が数値で分かります。
ここに画像をドロップ、またはクリックして選択
JPEG、PNG、WebP、AVIF、GIF、BMP、TIFF、iPhone の HEIC に対応。極端に大きい画像はブラウザのキャンバスが扱える範囲に丸められます。
このブラウザは AVIF を書き出せないため、選択肢に出していません。
画質を下げるほどファイルは小さくなります。実測した劣化は結果ごとに表示されます。
使い方
写真を入れる
貼り付ける、選ぶ、ドラッグする。いずれも待ち行列に入るだけで、ボタンを押すまで一切エンコードしません。40枚のフォルダでもタブは固まりません。
トレードオフを決める
画質、超えてはならないキロバイト、フォーマット、長辺の上限。PNG には画質スライダーではなくパレットが出ます。
走らせる
エンコードはメインスレッド外で行われるので、まとめて処理している間もページは反応し続けます。
ファイルを持ち帰る
1枚ずつ、まとめて ZIP、あるいはダウンロードせずそのまま次のツールへ。
メインスレッド外でエンコード
OffscreenCanvas を使う Web Worker が処理し、ビットマップはコピーではなく転送されます。スマホ写真の一括処理でタブが固まることはもうありません。
勘ではなくサイズで圧縮
キロバイトの上限を与えると、収まるまで画質を二分探索します。どの画質に落ち着いたか、何回試したかも表示されます。
劣化は数値
結果はデコードし直して SSIM で元と比較されます。「画質70」は感覚ではなく、得られたファイルサイズの隣に並ぶ 0.981 になります。
本当に小さくなる PNG
median cut によるパレット削減と任意のディザリング。PNG に用意された唯一のつまみで(画質引数はどのエンコーダも無視します)、スクリーンショットやロゴ、ベタ塗りで効きます。PNG で保存された写真は JPEG や WebP に変換したほうが小さくなり、本ツールは大きいファイルを返す代わりにそう伝えます。
実際に手元にあるフォーマット
iPhone の HEIC と TIFF は入力時に変換し、AVIF と WebP はブラウザが対応していれば出力時に使い、EXIF の回転を適用するので横倒しになりません。
タブの外には出ない
デコードもエンコードもパレットも計測も、すべてブラウザ内で動きます。API もアップロードもアカウントも不要です。
圧縮の代償まで教えてくれる画像圧縮ツール
CompressSnap は JPEG、PNG、WebP、AVIF、GIF、BMP、TIFF、そして iPhone が生成する HEIC を読み込み、JPEG・PNG・WebP・AVIF として書き出します。収まる画質を探索してバイト上限を満たし、PNG は画質スライダーが効くふりをせずパレットを削って小さくし、結果を毎回元と比較するので、選んだトレードオフが目に見えます。
推測ではなく実測
圧縮したファイルは毎回デコードし直し、入力と比較します。数値は SSIM ——人が実際に気づく差に追随する指標——で、ファイルサイズのすぐ隣に並ぶため、両者を天秤にかけられます。
画像を圧縮するメリットとは?
iPhone から出たばかりの HEIC、回転が EXIF タグに入った縦位置の写真、JPEG を通すと逆に太るスクリーンショットの PNG、キャンバスに収まらない 4800万画素のフレーム——どれも普通に起きることで、それぞれ変換され、回転され、印を付けられ、あるいは上限で丸められます。黙って失敗することはありません。
このページの裏に API はありません。デコーダも、エンコーダも、パレット削減も、画質計測も、すべてタブ内で動く JavaScript です。未公開のクライアント写真が端末から出ることはありません。
よくある質問
Qデータはサーバーに送信されますか?+
いいえ。デコード、エンコード、パレット削減、画質計測はすべてブラウザ内で動きます。ここで開いた画像がタブの外へ出ることはありません。
QPNG を圧縮しても何も起きないのはなぜ?+
PNG が可逆で、どのエンコーダも画質引数を無視するからです。以前のように PNG で画質スライダーを見せるのは誤解を招きました。小さくするのは色数を減らすことなので、PNG にはパレットの操作を用意しています。スクリーンショット、ロゴ、ベタ塗りなら 64 色や 128 色に落としても見分けはつかず、ファイルが半分になることも珍しくありません。
Q特定のサイズまで圧縮できますか?+
できます。サイズ上限をオンにしてキロバイトで数値を入れると、収まるまで画質を二分探索します(最大8回)。結果ごとに、落ち着いた画質と要したエンコード回数が表示されます。
QSSIM とは何で、なぜ気にすべきですか?+
構造的類似性——圧縮画像が元にどれだけ近いかを 0 から 1 で表した数値で、人の視覚に合わせた重み付けがされています。結果をデコードし直して画素ごとに比較して求めます。0.98 を超えるとほとんど誰も違いに気づかず、0.95 を下回るとノイズが見え始めます。「画質70で大丈夫か?」を画面で読める値に変えるものです。
QiPhone の写真も受け付けますか?+
はい。HEIC と HEIF は入力時に変換し、TIFF も同様です。iPhone が EXIF タグに記録する回転も適用するので、縦位置の写真が横倒しで出ることはありません。以前のバージョンはファイル選択の時点で HEIC を弾いていました。
Q画像の1枚が変わらずに戻ってきたのはなぜ?+
圧縮すると逆に大きくなるからです。高画質の JPEG を通したスクリーンショットやベタ塗りのグラフィックでよく起こります。悪くなったファイルを渡す代わりに、印を付けて元のファイルを保持します。
QEXIF データは削除されますか?+
はい。キャンバス経由の再エンコードで、GPS 座標やカメラ情報を含むメタデータのブロックはすべて失われます。視覚的に意味のある唯一の項目である回転タグだけは先に画素へ適用するので、画像は正しい向きのままです。
Q大量の一括処理でページは固まりますか?+
固まりません。エンコードは OffscreenCanvas を使う Web Worker で走り、画像データはコピーではなく転送されるため、キューが進む間もページは反応し続けます。同時に2枚ずつ処理するので、フル解像度のフレームを何枚もメモリに抱えずに済み、それでいて高速です。