画像圧縮
無料の画像圧縮:写真を一括で軽量化、JPG・WebP・PNG変換、長辺指定でリサイズ、ZIPで一括保存。登録不要、画像はアップロードされません。
- 一括圧縮
- WebP変換
- 長辺でリサイズ
- アップロード不要
PNGは可逆圧縮のため、品質設定は使われません。
🔒 計算はすべてブラウザ内で行われ、データがサーバーに送信されることはありません。
こんなときに使えます
- Webサイト・ブログ:カメラやスマホの写真を 1920 ピクセルに縮小して WebP に変換すれば、ページの表示が速くなります。
- アップロードにサイズ制限があるとき:応募フォームや役所のサイト、ネットショップの管理画面などで容量が決まっていても、先に圧縮すればアップロードできます。
- メール・チャットアプリ:複数の写真をまとめて圧縮して ZIP にすれば、送信が速くなります。
- スマホ・クラウドの容量節約:古い写真を一括で軽量化し、画質を保ちながら容量を減らせます。
使い方
- 「画像を選択」を押すか、点線の枠に画像をドラッグします。複数枚をまとめて追加でき、処理後にサムネイルと圧縮前後のサイズが表示されます。
- 出力形式(JPG・WebP・PNG)を選び、スライダーで品質を調整します。小さくしたい場合は「長辺の上限」にピクセル数(例:1920)を入力します。設定を変えるとすべての画像が自動で再処理されます。
- 各画像の「ダウンロード」で個別に保存するか、「すべてZIPでダウンロード」でまとめて保存します。「クリア」でやり直せます。
使用例
スマホで撮った4032×3024、3,500,000バイトの写真を、JPG・品質80・長辺の上限1920で出力します。サイズは縦横比を保って1920×1440に縮小されます。ブラウザのエンコード結果が420,000バイトだった場合、カードには「3.34 MB → 410.2 KB」「88%削減」と表示され、新しいファイルは元の12%になります。
120,000バイト(117.2 KB)のPNGスクリーンショットをそのままPNGで出力して156,000バイトになった場合は「117.2 KB → 152.3 KB」「元より30%増加」、WebPで48,000バイトになった場合は「117.2 KB → 46.9 KB」「60%削減」と表示されます。実際のサイズは画像の内容とブラウザによって変わります。ここでのバイト数は仮の値で、表示サイズと割合はツールの計算結果です。
3枚を一括処理:3.34 MB → 410.2 KB、117.2 KB → 152.3 KB、830.1 KB → 207.0 KB。上部の合計は「3枚:4.26 MB → 769.5 KB(82%削減)」になります。合計はすべてのバイト数を足してから比較したもので、3枚の割合の平均ではありません。
結果の見方
- 緑の「N%削減」は新しいファイルが元よりN%小さいことを示します。赤の「元よりN%増加」は再エンコードで逆に大きくなったことを示し、すでに小さいJPGを高品質で保存し直したときや、PNGをPNGで保存したときによく起こります。その場合は元のファイルを使ってください。
- 変化が0.5%未満の場合は「<1%」と表示されます。サイズ欄に矢印がある場合は解像度が縮小されたことを、数値が1つだけの場合は元のサイズのままであることを示します。
- 「この形式はブラウザが対応していないため、PNGで出力しました」と出た場合、お使いのブラウザ(主に古いSafari)はWebPを出力できないため、自動的にPNGで保存され、拡張子も変わっています。
- 1 KBは1024バイトで計算しており、Windowsのエクスプローラーと同じです。MacのFinderは1000バイトで計算するため、表示が少し異なります。
仕組みと計算方法
- 読み込み:ブラウザ内蔵のcreateImageBitmapでデコードし、写真のEXIFの向きに合わせて回転します。デコードできない場合は<img>で読み込みます(SVGなど)。
- 縮小:長辺が上限を超える場合、幅と高さに「上限 ÷ 長辺」を掛けて四捨五入し、短辺は最低1 pxにします。拡大はせず、canvasの高品質スムージングで縮小します。
- エンコード:画像をcanvasに描いてcanvas.toBlob(形式, 品質)を呼び出します。品質10〜100は0.1〜1.0に対応します。JPGは透過がないため透明部分を先に白で塗り、PNGは可逆圧縮なので品質設定は使われません。
- 比較:変化率 = |1 − 新しいサイズ ÷ 元のサイズ| × 100 を整数に四捨五入します。合計は成功したすべての画像のバイト数の合計で計算します。
- ZIP:ブラウザ内でfflateを使って作成します。画像はすでに圧縮済みなので再圧縮せずに格納し、同じ名前のファイルには-2、-3を付けて上書きを防ぎます。
注意点と制限
- 再エンコードによりEXIF(撮影日時、GPS位置、カメラ機種)とカラープロファイルは削除されます。これらを残す必要がある場合には向きません。広色域(Display P3)の写真はわずかに色が変わることがあります。
- アニメーションGIFやアニメーションWebPは最初のフレームだけが残ります。HEICは対応ブラウザ(Safariなど)でのみ読み込め、それ以外では読み込めないと表示されます。
- 圧縮結果はブラウザ内蔵のエンコーダーで決まるため、同じ設定でもChrome・Firefox・Safariでサイズや画質が異なります。「200 KB以下にする」といった目標サイズの指定はできないので、品質を調整してください。
- 非常に大きな画像はブラウザのcanvasのサイズやメモリの制限(特にiPhoneのSafari)により出力できないことがあります。長辺の上限を入力してから再度お試しください。
よくある質問
品質はいくつに設定すればいい?
一般的な写真ならJPGかWebPで品質70〜80にすると、見た目はほぼ変わらずにファイルを大きく減らせます。印刷や加工に使う場合は90以上がおすすめです。文字の多いスクリーンショットや図表はPNGかWebPのほうが鮮明で、JPGは文字の周りにノイズが出やすくなります。
圧縮したのにファイルが大きくなったのはなぜ?
元の画像がすでに強く圧縮されている場合(低品質のJPGなど)、高い品質で再エンコードすると逆に大きくなります。PNGからPNGへの変換も、ブラウザ内蔵のPNGエンコーダーが特に最適化されていないため大きくなりがちです。品質を下げる、WebPにする、または元のファイルをそのまま使ってください。
透過PNGをJPGに変換するとどうなる?
JPGは透過に対応していないため、透明な部分は白になります。透過を残したい場合はWebPかPNGを選んでください。
画像はアップロードされますか?
いいえ。読み込み・圧縮・ZIP作成はすべてブラウザ内で行われ、画像がサーバーに送られたり保存されたりすることはありません。ページを閉じると消えます。
写真を1MB以下や200KB以下にするには?
まず「長辺の上限(px)」に 1600〜1920 を入れ、品質を 70〜80 にします。それでも大きければ、品質かサイズをさらに下げてください。画像ごとに圧縮後のサイズが表示されるので、確認しながら調整できます。
JPG と WebP はどちらを選べばいい?
WebP は同じくらいの画質なら JPG より約 25〜35% 小さくなることが多く、主要なブラウザはすべて対応しています。古いシステムや印刷、JPG しか受け付けないアップロードフォームに使う場合は JPG のほうが確実です。
圧縮後も写真の撮影情報(EXIF)は残りますか?
残りません。書き出し直すときは画像そのものだけを保存し、撮影日時や GPS の位置情報などは削除されるため、写真を共有するときに位置が漏れる心配も少なくなります。
参考資料
- HTMLCanvasElement: toBlob() method — MDN Web Docs
- Image file type and format guide — MDN Web Docs
- HTML Standard — 4.12.5 The canvas element — WHATWG