品質を損なわずに画像を圧縮する方法
大きな画像ファイルはウェブサイトを遅くし、メール受信箱を詰まらせ、ストレージを食い尽くします。圧縮はそれを高速化する最も簡単な方法の 1 つで、ソフトウェアをインストールせず、サーバーに何もアップロードせず、通常は目に見える品質低下なしで実行できます。適切な圧縮設定で、通常の表示距離では同じに見えながら、写真のサイズを 80% 削減できます。
画像圧縮の簡単な歴史
圧縮はデジタルの概念としてはウェブよりも古いものです。初期のビットマップフォーマット(1986 年の TIFF、それ以前の PCX)におけるランレングス符号化は、繰り返される色を回数と値に変換することで、スクリーンキャプチャや単純なグラフィックを劇的に縮小しました。1992 年の JPEG 標準は、人間の視覚システムが容易に知覚できない情報を破棄する離散コサイン変換(DCT)を使うことで、可逆ではない圧縮を主流にしました。この発想は 30 年後の今もほとんどの写真圧縮を支えています。
PNG は 1996 年に DEFLATE ベースの可逆圧縮として登場し、JPEG が苦手なスクリーンショットやロゴに最適でした。WebP(Google、2010 年)はより賢い非可逆モードを追加し JPEG を 25〜35% 上回り、可逆モードは PNG を 20〜30% 上回りました。AVIF(2019 年)はさらに大きく改善し、同じ品質で WebP の半分のサイズになることがよくあります。JPEG XL(2021 年)は最新の挑戦者で、可逆、非可逆、アニメーション、さらには既存の JPEG の追加損失なしの再圧縮まで、これらすべてを単一のフォーマットで置き換えることを目指しています。ブラウザの採用が制限要因で、アルゴリズム自体は JPEG をはるかに超える効率です。
画像ファイルサイズが重要な理由
ウェブページのすべての画像は、訪問者のブラウザがダウンロードしなければなりません。携帯電話カメラからの非圧縮の写真 1 枚は 5〜10 MB になります。複数の画像を掛け合わせると、ページの読み込みが高速接続では目に見えて遅く、低速接続では数分かかるようになります。画像を小さくすると以下の利点があります:
- ページ読み込みの高速化: 訪問者がコンテンツをより早く見られます。Google の Core Web Vitals(LCP、最大コンテンツフルペイント)はヒーロー画像に支配されることが多く、そのサイズを半減させると LCP 時間も多くの場合半減します。
- 帯域幅の使用量削減: データプランが制限されているモバイルユーザーや、大量のトラフィックを処理する自分のホスティング費用にとって重要です。
- 共有が容易: メール添付がサイズ制限内に収まり(Gmail は 25 MB が上限)、チャットアプリが写真を裏で勝手にトランスコードするのを止めます。
- ストレージスペースの増加: 携帯電話、クラウドドライブ、サーバーがより多くのファイルを保持できます。5,000 枚の旅行写真が 5 GB ではなく 1 GB になります。
- SEO 向上: ページ速度の信号は Google 検索ランキングに影響するため、すばやく読み込まれる画像の多いページは、同じ内容でも遅いものより上位にランクされます。
画像圧縮の仕組み
圧縮には 2 種類あり、それぞれにトレードオフがあります。
非可逆圧縮(JPEG、WebP、AVIF)は、目が気づきにくい画像データを取り除きます。中程度の品質レベル(約 60〜80%)では、結果は元のものとほぼ同じに見えますが、50〜80% 小さくなります。アルゴリズムは 3 つのステップで動作します: RGB を YCbCr に変換(明るさを色から分離)、色チャンネルをダウンサンプリング(目は明るさよりも色の細部にはるかに鈍感)、DCT を適用して高周波の詳細を破棄。各ステップは知覚品質には影響せず、膨大なデータを節約します。
可逆圧縮(PNG、音声の FLAC)は、何も取り除かずにデータを再編成して空間を節約します。画像はピクセル単位で元と同一ですが、ファイルサイズの節約は小さく、写真では通常 10〜30%、スクリーンショットやロゴでは 30〜60% です。
混合モードのフォーマット(WebP、AVIF、JPEG XL)では、ファイルごとに非可逆か可逆かを選択できます。ほとんどの現代の写真パイプラインは、配信用に非可逆、アーカイブ用に可逆マスターを保持します。
オンラインで画像を圧縮する方法
- 画像をアップロード: 1 つまたは複数の画像(JPEG、PNG、WebP、AVIF、HEIC、GIF、BMP、各最大 50 MB)をツールにドラッグ&ドロップするか、クリックしてファイルを選択します。すべてローカルで処理され、アップロードされません。
- 品質設定の調整: 品質スライダーで圧縮レベルを制御します。値が低いほど、より多くの圧縮で小さなファイルを意味します。最大幅の設定、出力フォーマットの変更、目標ファイルサイズの指定も可能です。
- 結果のプレビュー: ほとんどのツールは、新しいファイルサイズと共に前後のサムネイルを表示します。あなたの用途に対するトレードオフが適切になるまで品質を調整します。
- 結果のダウンロード: 個別の圧縮画像をダウンロードするか、「すべてダウンロード」をクリックしてバッチを ZIP でダウンロードします。
裏では、ファイルは FileReader で読み込まれ、ブラウザの画像パイプラインでデコードされ、オフスクリーンキャンバスに描画され、canvas.toBlob で目標品質に再エンコードされます。WebP、AVIF、MozJPEG エンコーダの WebAssembly バージョンが、ページを離れることなくネイティブに近い圧縮性能を提供します。
実際に機能する品質設定
普遍的な「正しい」品質はありません。以下の表は出発点です。画像が実際にどう見えるかに基づいて調整してください。
| 用途 | 推奨品質 | フォーマット | 注記 |
|---|---|---|---|
| ヒーロー / バナー写真 | 80〜85 | JPEG / WebP | エッジをくっきり保つ |
| ブログ記事内画像 | 70〜80 | WebP / JPEG | ヒーローより小さくて OK |
| サムネイル / プレビュー | 60〜70 | WebP / JPEG | 小さければ品質はあまり問題ない |
| 商品写真 | 80〜90 | JPEG / WebP | 細部が商品を売る |
| UI のスクリーンショット | 90+ または PNG | PNG / WebP 可逆 | JPEG はくっきりしたエッジを台無しにする |
| 図 / チャート | PNG または WebP 可逆 | PNG / WebP | 硬いエッジ、フラットな色 |
| アーカイブ用写真 | 可逆 WebP / FLIF | 可逆 | すべてのピクセルを保持 |
| アバター / プロフィール写真 | 75〜85 | JPEG / WebP | 顔が認識可能なまま |
| 背景パターン | 60〜70 | WebP / JPEG | 地味なので低品質に耐える |
最良の結果を得るためのヒント
- 写真は品質 80、スクリーンショットは 90 から始める: ほとんどの視聴者が結果と元を区別できない地点です。より小さなファイルが欲しければ下げる、細部やテキストが多い画像なら上げる。
- 可能なら WebP を使う: WebP サポートは 2024 年で 97% 超のブラウザに達しています。それを欠く少数のために、
picture要素で JPEG フォールバックを出荷します。AVIF はさらに節約できますが、使うエンコーダが十分速いか確認してください。 - 圧縮前にリサイズ: ウェブで 800px で表示する 4000px の写真は、品質に関係なく帯域幅を浪費します。実際に表示する最大サイズ(網膜画面では多くの場合 CSS ピクセル幅の 2 倍)にリサイズしてから圧縮します。
- オリジナルを保持: オリジナルファイルではなくコピーを常に圧縮します。オリジナルからは再圧縮できますが、圧縮で失われたデータは復元できません。
- 公開時はメタデータを削除: EXIF データには GPS 座標、カメラモデル、名前まで含まれる可能性があります。ブラウザベースの圧縮ツールは通常自動的に削除しますが、プライバシーが重要なら確認してください。
- メール用に目標ファイルサイズを設定: Gmail 添付は 25 MB が上限、多くの企業システムは 10 MB が上限です。安全のため画像 1 枚あたり 1〜2 MB を目標にします。
- ウェブ用にプログレッシブ JPEG を選ぶ: プログレッシブ JPEG は上から下へパスで読み込まれ、シャープになる前にぼんやりしたプレビューを表示します。現代のデコーダはこれを流暢に処理し、ベースラインよりわずかに小さく圧縮されることがよくあります。
- 同じ画像を繰り返し再圧縮することを避ける: 各パスで歪みが追加されます。再編集する可能性があるなら、可逆マスターを保持してそこから毎回再エクスポートします。
どのフォーマットをいつ使うか
| フォーマット | 最適な用途 | 圧縮タイプ | ブラウザサポート(2024) |
|---|---|---|---|
| JPEG | 写真、リアルな画像 | 非可逆 | 普遍的 |
| PNG | スクリーンショット、テキスト付きグラフィック、透明度 | 可逆 | 普遍的 |
| WebP | ウェブ画像(写真とグラフィック) | 非可逆と可逆の両方 | 97%+ |
| AVIF | 現代のウェブ画像、WebP の半分のサイズ | 非可逆と可逆の両方 | 92%+ |
| HEIC | Apple エコシステムの写真 | 非可逆と可逆 | Safari、他では約 60% |
| GIF | シンプルなアニメーション(WebP/MP4 を検討) | 可逆(色制限あり) | 普遍的 |
| JPEG XL | 将来性、JPEG の可逆再エンコード | 両方 | 限定的、増加中 |
2024 年の新コンテンツのベストプラクティスは、サポートされる場所には AVIF、普遍的な現代のフォールバックとして WebP、絶対の最終手段として JPEG または PNG を出荷することです。HTML の picture 要素はこれを綺麗に処理します。
よくある落とし穴
- 既に圧縮された画像を再圧縮する: JPEG を品質 80 で再保存しても節約は倍にならず、別のラウンドの歪みが追加されるだけです。オリジナル(または可逆マスター)から 1 回だけ圧縮します。
- コンテンツに不適切なフォーマット: テキスト付きロゴを JPEG 圧縮すると、文字の周りに目立つリンギングが発生します。4000x3000 の写真を PNG 保存すると 30 MB ファイルになります。コンテンツにフォーマットを合わせます。
- 品質スライダーが 90 で過剰に感じる: JPEG 品質スケールは線形ではありません。90 から 80 への移動は 100 から 90 への移動よりはるかに多く節約し、目に見えるコストはほとんどありません。
- 網膜画面を忘れる: 600px CSS スロットに表示される 600px 画像は、電話や現代のラップトップではぼんやり見えます。CSS ピクセルの 2 倍でエクスポートし、ブラウザに縮小させます。
- カラープロファイルの削除: 埋め込み ICC プロファイルを削除すると、広色域ディスプレイで色が顕著にずれることがあります。現代の圧縮ツールはこれを保持しますが、古いものはそうでないかもしれません。
- すべての PNG を同じビット深度で保存: 白黒テキストのスクリーンショットは PNG-8(256 色)で PNG-24 のごく一部のサイズに収まります。グラフィックの大きな節約に pngquant のような量子化器を使います。
- 悪いフォーマットへの再エンコード: WebP を JPEG に戻すと、品質とサイズの両方の利点が失われます。JPEG フォールバックが必要なら、WebP からではなくオリジナルマスターからエンコードします。
- 小さなサイズで視覚的な差分を信頼する: サムネイルでは見えない歪みも、誰かが拡大した 4K ディスプレイでは明らかです。実際の表示サイズでテストしてください。
- アルファチャンネルを忘れる: JPEG は透明度をサポートしません。透明な PNG を JPEG に圧縮すると、背景が白(またはツールが選ぶ色)で埋められます。
- GIF としてのアニメーション: GIF は MP4 やアニメーション WebP よりも大きく品質が低いです。現代の配信ではほぼ常に変換します。
代替ツールとライブラリ
ウェブ圧縮ツールは、1 つまたは数枚の画像の最速の道です。バッチやスクリプト化されたパイプラインには、コマンドラインツールやライブラリが引き継ぎます。
| ツール | プラットフォーム | 強み | 注意点 |
|---|---|---|---|
| ウェブ画像圧縮ツール | ブラウザ | インストール不要、アップロード不要、バッチ UI | 速度はデバイスに依存 |
| MozJPEG | CLI | 同じ品質で libjpeg-turbo より小さい JPEG | JPEG のみ |
| Guetzli | CLI | 圧倒的に小さい JPEG | エンコードが極端に遅い |
| jpegoptim | CLI | 可逆 JPEG 最適化 | 既に最適化されたファイルでは効果が限定的 |
| OptiPNG / oxipng | CLI | 可逆 PNG 最適化 | 速度はコンテンツによる |
| pngquant | CLI | アルファ付き PNG-8 量子化 | 品質は意図的に非可逆 |
| cwebp / dwebp | CLI | WebP リファレンスツール | フォーマットごとのバイナリ |
| avifenc / avifdec | CLI | AVIF リファレンスツール | WebP エンコーダより遅い |
| Squoosh CLI | CLI | 現代のコーデックをすべて 1 つのツールで | 新しく、オプションが少ない |
| sharp(Node.js) | ライブラリ | 大規模なサーバー側で最速 | Node ランタイムが必要 |
| Pillow(Python) | ライブラリ | Python 的、簡単なスクリプト化 | sharp より遅い |
| ImageMagick / GraphicsMagick | CLI | リサイズ + 圧縮 + 変換を 1 つのツールで | 冗長な構文 |
商品写真パイプラインの自動化には、sharp + MozJPEG + AVIF が 2024 年で最高の速度対品質比を提供します。一回限りのアップロードには、ブラウザツールが利便性とプライバシーで勝ります。
プライバシーと圧縮ツール
画像圧縮ツールは完全にブラウザ内で動作します。選択したファイルは FileReader API で読み込まれ、ブラウザの画像パイプラインでデコードされ、オフスクリーンキャンバスに描画され、canvas.toBlob で再エンコードされます。アップロードもログ記録も共有もされません。機密素材、内部ダッシュボードのスクリーンショット、ID スキャン、画像プルーフとしての契約書ドラフトなどには、このローカルのみのフローが、見知らぬ人のサーバーを信頼するか、誰も信頼しないかの違いです。普通の写真でも、サードパーティに見せたくない EXIF メタデータ(GPS 座標、デバイスのシリアル番号、タイムスタンプ)が含まれることがよくあります。キャンバスベースのパイプラインはデフォルトでほとんどの EXIF を取り除き、アップロードがないため、データはどのみちページを離れません。写真を小さくするほど日常的な作業では、プライバシーのデフォルトは: 何もページを離れない、何も保存されない、何も共有されない、であるべきです。
よくある質問
圧縮は画像品質を低下させますか?
約60%の品質では、ほとんどの画像が元とほぼ同じに見えますが、50〜80%軽くなります。違いは通常、非常に近くにズームしない限り、肉眼では見えません。
どの画像形式を圧縮できますか?
JPEG、PNG、WebP、GIF、BMPなどの一般的なWeb形式はすべて圧縮できます。JPEGとWebPはロッシー圧縮(調整可能な品質)を使用しますが、PNGはロスレス圧縮を使用します。
ブラウザで画像を圧縮するのは安全ですか?
はい。ブラウザ内画像圧縮ツールは、JavaScriptを使ってデバイスで完全にファイルを処理します。画像はサーバーに送信されることはなく、完全にプライベートに保たれます。
複数の画像を一度に圧縮できますか?
はい。ほとんどのブラウザ内ツールはバッチ処理を処理します, 一度に複数のファイルを選択すると、すべて同じ設定で圧縮されます。
What is the difference between compressing and resizing?
Resizing changes the pixel dimensions (a 4000px photo becomes 1200px). Compressing reduces the file size in bytes without changing the dimensions. For the smallest possible file, resize first, then compress.
Will compression strip my EXIF and GPS metadata?
Browser-based compressors built on the Canvas API typically drop all EXIF, including GPS coordinates, camera model, and timestamps. Server-side tools may preserve it. If privacy matters, prefer a Canvas-based tool and verify with a test image.