PNG(Portable Network Graphics)は、ロスレス圧縮を採用した画像フォーマットで、透明度や高品質な画像を保ちながらファイルサイズを抑えられるため、ウェブデザインやグラフィック制作で広く使われています。しかし、画像が大量になるとファイルサイズが肥大化し、ウェブページの読み込み速度やストレージ容量に影響を及ぼします。そこでオフラインでのPNG圧縮が重要になります。この記事では、インターネット接続不要でPNGファイルを効率的に圧縮する方法を、ツールの紹介から実践手順、注意点まで詳細に解説します。
PNG圧縮の基本原理
PNG圧縮は主にフィルタリングとDEFLATEアルゴリズム(ZIPと同じ)によって実現されます。オフライン環境では、これらの仕組みを活用した専用ツールを使うことで、オンラインサービスと同等以上の圧縮効果を得られます。
ロスレス圧縮の仕組み
- フィルタリング:各ピクセル行に対して予測を行い、差分データを圧縮しやすくする(None, Sub, Up, Average, Paethの5種類)。
- DEFLATE:ハフマン符号化とLZ77圧縮を組み合わせたアルゴリズム。
- オフライン圧縮では、これらのパラメータをツール側で最適化します。
圧縮レベルの選択
多くのツールでは圧縮レベル(0〜9)を指定可能:
- レベル0:最速(ほぼ無圧縮)
- レベル9:最高圧縮率(処理時間長め) 実務ではレベル6〜8がバランス良好です。
おすすめオフライン圧縮ツール
以下は、無料かつ高性能なオフライン対応ツールです。すべてWindows/macOS/Linuxで動作します。
1. PNGGauntlet(Windows専用)
- 特徴:GUIベースで直感的。OptiPNG + PNGOUT + DeflOptを内部統合。
- 圧縮率:最高クラス(平均30〜50%削減)
- インストール:
- 公式サイト(https://pnggauntlet.com/)からダウンロード
- インストール後、PNGファイルをドラッグ&ドロップ
- 使用例:
- 圧縮レベル:自動(内部最適化)
- メタデータ削除:チェック推奨
2. ImageOptim(macOS専用)
- 特徴:Finder統合で右クリック圧縮可能。Zopfli対応。
- 圧縮率:PNGGauntletと同等レベル
- 設定例:
- 環境設定 → “PNG” → “Use Zopfli” を有効化
- メタデータ除去:デフォルトでON
3. pngquant(クロスプラットフォーム・CLI)
- 特徴:ロッシー圧縮対応(256色以下に減色)。高圧縮率。
- 注意:品質低下を伴うため、写真よりイラスト向き。
- コマンド例: bash
pngquant --quality=65-80 --strip input.png -o output.png(65〜80%の品質でメタデータ削除)
4. OptiPNG(CLI・全OS対応)
- 特徴:ロスレス専用。Zopfliモードで最高圧縮。
- コマンド例: bash
optipng -o7 -zm1-9 -strip all input.png(レベル7、全フィルタ試行、メタデータ削除)
5. AdvanceCOMP(CLI)
- 特徴:7zの最高圧縮(advpng)を使用。
- コマンド例: bash
advpng -z -4 input.png(レベル4が実用最大)
バッチ処理の実装例
大量のPNGを一括圧縮する場合:
Windowsバッチファイル例
batch
@echo off
for %%i in (*.png) do (
pnggauntlet.exe "%%i" "compressed\%%i"
)
echo 圧縮完了!
macOS/Linuxシェルスクリプト例
bash
#!/bin/bash
mkdir -p compressed
for file in *.png; do
optipng -o7 -strip all "$file" -out "compressed/$file"
done
echo "圧縮完了!"
圧縮効果の測定方法
ビフォーアフター比較
bash
# ファイルサイズ確認(Linux/macOS)
ls -lh before.png after.png
# Windows PowerShell
Get-Item before.png, after.png | Select Name, Length
品質チェック
- SSIM(構造的類似性)測定: bash
# ImageMagick使用 compare -metric SSIM before.png after.png null:(1.0に近いほど高品質)
注意点と最適化テクニック
メタデータの完全除去
- ExifToolで確認: bash
exiftool input.png - 不要メタデータ(作成日時、ソフトウェア情報など)を削除。
色数削減(ロッシー)
- 256色以下のイラストはpngquant推奨。
- 写真はロスレス(OptiPNGなど)で対応。
インターレース解除
- プログレッシブ表示不要な場合は非インターレース化: bash
optipng -i0 input.png
圧縮率向上の高度なテクニック
Zopfli圧縮の活用
- Google開発のDEFLATE改良版(互換性100%)。
- OptiPNGで-zxオプション、またはzopfliPNG使用。
パレット最適化
- pngcrushでパレット再構成: bash
pngcrush -rem alla -reduce input.png output.png
まとめ:最適なオフライン圧縮フロー
- イラスト系 → pngquant(ロッシー)→ OptiPNG(仕上げ)
- 写真・高品質必要 → OptiPNG -o7 -zx(Zopfli)
- Windowsユーザー → PNGGauntlet(GUI最強)
- macOSユーザー → ImageOptim(Finder統合)
これらのツールを組み合わせることで、オンラインサービスを超える圧縮率と完全オフライン環境を実現できます。定期的にバッチ処理を組み込むことで、プロジェクト全体のファイルサイズを劇的に削減可能です。
オフラインPNG圧縮をマスターすれば、速度・品質・プライバシーをすべて手に入れられる——今日から始めよう。





