PNG圧縮ツールpngquant zopflipng

2026年10月14日

pngquant

pngquant — lossy PNG compressor

ファイルサイズが大幅に(多くの場合は70%も)縮小され、完全なアルファ透明度が維持されます。

使用法: pngquant [options] [ncolors] [pngfile [pngfile ...]]

オプション:
  --force 既存の出力ファイルを上書きします (同義語: -f)
  --nofs Floyd-Steinbergディザリングを無効にします
  --ext new.png 出力ファイル名のカスタムサフィックス/拡張子を設定します。
  --speed N 速度/品質のトレードオフ。1=遅い、3=デフォルト、10=速い&ラフ
  --quality min-max 最小以下で保存せず、最大(0-100)未満でより少ない色を使用します
  --verbose 印刷ステータスメッセージ (同義語: -v)
  --iebug Internet Explorer 6のバグを回避するために不透明度を上げます
  ●トランスバグは透明色がパレットの最後に配置されます

1つ以上の32ビットRGBA PNGを8ビット(またはそれ以下)のRGBAパレットに量子化します

pngquant.exe --ext .png --force --verbose   --speed 1 --quality=60-95 num.png

PNGoo — Windows GUI for batch conversion

zopflipng

GitHub – google/zopfli: Zopfli Compression Algorithm is a compression library programmed in C to perform very good, but slow, deflate or zlib compression.

GitHub – garyzyg/zopfli-windows: zopfli for win32 & win64

使用法: zopflipng [オプション]...infile.png outfile.png
       zopflipng [オプション]... --prefix=[ファイルプレフィックス] [files.png]...

出力ファイルが存在する場合、それは前回の実行の結果と見なされ、ファイル・サイズが小さい場合は上書きされません。

オプション:
-m:より圧縮:より多くの反復を使用します(ファイルサイズによって異なります)
--prefix=[fileprefix]: 出力ファイル名に接頭辞を追加します。ディレクトリパスを含めることもできます。プレフィックスを使用すると、複数の入力ファイルを指定することができ、出力ファイル名はプレフィックスを使用して生成されます
 --prefix を値なしで指定した場合は、'zopfli_' が使用されます。
 入力ファイル名に接頭部が含まれている場合、それらは処理されませんが、以前の実行からの出力と見なされます。これは、複数の実行で *.png ワイルドカード展開を使用する場合に便利です。
-y: ファイルの上書きについて尋ねないでください。
--lossy_transparent: アルファ チャネル 0 の背後にある色を削除します。視覚的な違いはなく、隠された情報を削除します。
--lossy_8bit:チャンネルあたり16ビットの画像をチャンネルあたり8ビットに変換します。
-d:ドライラン:ファイルを保存せず、コンソールの出力を見るだけです(ベンチマークなど)
--always_zopflify:アルゴリズムのベンチマークのために、元の画像よりも大きい場合でも、常にZopfliによってエンコードされた画像を出力します。実際の最適化には適していません。
-q:高速ですが、あまり良くない圧縮を使用します(たとえば、PNGフィルターとカラータイプのみを試す場合)
--iterations=[number]: 反復回数、反復回数が多いほど遅くなりますが、圧縮率はわずかに向上します。デフォルト: 小さいファイルの場合は 15、大きなファイルの場合は 5。
--splitting=[0-3]: 無視され、後方互換性のために残されています
--filters=[types]: 試してみるフィルター戦略:
 0-4: すべてのスキャンラインに PNG フィルター タイプ 0-4 を指定します
 m:最小合計
 E:エントロピー
 p: 事前定義済み (入力から保持、これは別の戦略と重複する可能性があります)
 B: ブルートフォース (実験的)
zopflipng.exe -y --lossy_transparent --lossy_8bit --iterations=20 --filters=0me  b.png  num.png

posterize

  image degradation MSE=31.797 (Q=20) exceeded limit of 19.479 (45)
Skipped 1 file out of a total of 1 file.

GitHub – kornelski/mediancut-posterizer: Lossy PNG compressor for RGBA PNGs. Has two modes: lossy averaging filter (blurizer) that denoises the image and optimal posterization using Median Cut quantization to reduce number of unique colors in the image with minimal visual distortion · GitHub

Usage
posterize [ -v ] [ -b ] [ -d ] [ -Q <quality> ] [ levels ] -- [ input.png ] [ output.png ]
-b — Use blurring instead of posterization (recommended). Without this argument posterization is used.
-Q num — Picks minimum number of levels needed to achieve given quality. num is quality 0-100 (100 is best, similar to JPEG). Number of levels is optional if quality is specified.
levels — Number of levels to use (2-255). Lower number gives worse quality, but smaller file.
-d — Enables simple ordered dithering in posterization mode.
-v — Verbose output. Prints mean square error (MSE) caused by posterization.
If input/output files are not specified then stdin/stdout is used respectively.

Posterized images can be further compressed using PNGOUT or similar. Try ImageOptim.



Y:\>"C:\app\PNGoo\posterize.exe" -v 100 "Y:\001_01.png" "Y:\001_0.png"
MSE=5.186 (Q=82, 100 levels)

Y:\>"C:\app\PNGoo\posterize.exe" -v 10 "Y:\001_01.png" "Y:\001_0.png"
MSE=70.644 (Q=4, 10 levels)

oxipng

GitHub – oxipng/oxipng: Multithreaded PNG optimizer written in Rust · GitHub

oxipng の使い方
使用方法: oxipng [オプション] <ファイル>...

引数
<ファイル>...
    圧縮するファイルを指定します(標準入力を使う場合は '-')

オプション
最適化レベル
-o, --opt <レベル>


最適化レベルのプリセットを指定します。

デフォルトの レベル2 は高速で、十分な圧縮効果があります。

低いレベル: 高速
高いレベル: 高圧縮(ただし圧縮率の向上は徐々に小さくなる)
レベル	設定内容0	--zc 5 -f 0,5 --fast
1	--zc 10 -f 0,7 --fast
2	--zc 11 -f 0,1,6,7 --fast
3	--zc 11 -f 0,1,6,7,8,9 --fast --brute-level 1 --brute-lines 3
4	--zc 12 -f 0,1,6,7,8,9 --fast --brute-level 1 --brute-lines 4
5	--zc 12 -f 0,1,6,7,8,9 --brute-level 1 --brute-lines 8
6	--zc 12 -f 0-9 --brute-level 5 --brute-lines 8
max	最大レベルの固定エイリアス

※ --zc や -f などを手動指定した場合は、プリセット値よりそちらが優先されます。

デフォルト:

2

ディレクトリ再帰処理
-r, --recursive


入力にディレクトリを指定した場合、その配下を再帰的に探索し、.png および .apng ファイルを最適化します。

出力先ディレクトリ
--dir <ディレクトリ>


出力先ディレクトリを指定します。

存在しない場合は自動作成されます。

※ --recursive 使用時は元のディレクトリ構造は保持されません。

出力ファイル指定
--out <ファイル>


出力ファイル名を指定します。

標準出力
--stdout


結果を標準出力へ出力します。

ファイル属性保持
-p, --preserve


可能な限りファイルの権限とタイムスタンプを保持します。

ドライラン
-d, --dry-run


ファイルを書き込まず、圧縮結果だけを表示します。

メタデータ削除
安全削除
-s


以下と同じ:

--strip safe

チャンク削除
--strip <モード>


PNGメタデータチャンクを削除します。

モード
safe


以下を除く全ての非必須チャンクを削除:

cICP, iCCP, sRGB, pHYs, acTL, fcTL, fdAT

all


全ての非必須チャンクを削除します。

? 注意:

APNG が通常の PNG に変換されます

bKGD,cHRM


のようにカンマ区切りで指定可能。

自動削除されることがあるチャンク

最適化によって無効になった場合:

bKGD
sBIT
hIST


は削除されます。

特定チャンクだけ保持
--keep <一覧>


指定したチャンク以外を削除します。

例:

--keep eXIf,display

eXIf を保持
表示に影響するチャンクを保持
その他を削除
アルファチャンネル最適化
-a, --alpha


完全透明ピクセルの色値を変更して圧縮率を向上させます。

通常は推奨
見た目は変わらない
技術的には非可逆圧縮(Lossy)

用途によっては注意が必要です。

インターレース設定
-i, --interlace <モード>

モード
off


インターレース解除

on


Adam7インターレースを付与

keep


元の設定を保持

デフォルト:

off


注意:

通常 25~50% サイズが増える

16bit → 8bit変換
--scale16


16bit PNG を強制的に 8bit PNG に変換します。

非可逆
ファイルサイズ大幅削減可能

例:

0x00FF → 0x01

ログ出力
-v, --verbose


詳細情報表示。

複数指定可能:

-vv
-vvv

サイレント
-q, --quiet


メッセージを表示しません。

JSON出力
-j, --json


結果を JSON 形式で出力します。

PNGフィルター指定
-f, --filters <一覧>


使用する PNG フィルターを指定します。

例:

-f 0-3


↓

-f 0,1,2,3

固定フィルター
値	フィルター0	None
1	Sub
2	Up
3	Average
4	Paeth
ヒューリスティックフィルター
値	内容5	MinSum
6	Entropy
7	Bigrams
8	BigEnt
9	Brute

特に

0 (None)


は推奨されています。

高速評価モード
--fast


各フィルターを高速評価して最良のものだけを本圧縮します。

レベル5以上ではデフォルト無効です。

Deflate圧縮レベル
--zc <レベル>


libdeflate による圧縮レベル。

範囲:

0~12


高いほど高圧縮・低速。

色変換無効化
ビット深度変更禁止
--nb

カラータイプ変更禁止
--nc

パレット変更禁止
--np

インデックスカラーへ変換しない
パレット編集しない
グレースケール変換禁止
--ng

すべての変換禁止
--nx

色変換しない
インターレース解除しない
再圧縮禁止
--nz


IDAT を再圧縮しません。

--nx --nz


を併用すると実質最適化が無効になります。

壊れたPNG救済
--fix


PNGチャンクのチェックサム検証を行いません。

破損PNGでも処理できる場合があります。

出力ファイルのチェックサムは正常になります。

強制出力
--force


入力ファイルよりサイズが大きくなっても保存します。

Zopfli圧縮
-z, --zopfli


非常に遅い代わりに高圧縮。

推奨:

-o max --fast --zopfli

Zopfli反復回数
--zi <回数>


デフォルト:

15

改善停止回数
--ziwi <回数>


指定回数改善しなければ Zopfli を終了します。

Brute設定
圧縮レベル
--brute-level <レベル>


推奨:

1~5

走査ライン数
--brute-lines <数>


推奨:

2~16

タイムアウト
--timeout <秒>


最適化に使用する最大時間。

指定時間を超えると以降の試行を停止します。

最大画像サイズ制限
--max-raw-size <サイズ>


展開後サイズが指定値を超える画像をスキップします。

例:

--max-raw-size 128MB


利用可能な単位:

k
KB
m
MB


など。

計算例:

1920×1080
24bit
? 6MB

スレッド数
-t, --threads <数>


最大使用スレッド数。

デフォルト:

論理CPU数


メモリ使用量やCPU負荷を抑えたい場合は小さめに設定します。

順次処理
--sequential


複数ファイルを並列ではなく順番に処理します。

--threads 1


とほぼ同様です。

ヘルプ
-h, --help


ヘルプ表示

バージョン
-V, --version


バージョン表示

実用的な使用例

最高圧縮(時間重視しない):

oxipng -o max --zopfli *.png


高速かつ十分な圧縮:

oxipng -o 2 *.png


フォルダ内を再帰的に圧縮:

oxipng -r images/


メタデータを全削除:

oxipng --strip all *.png


圧縮結果だけ確認:

oxipng -o max -d *.png

etc,windows,画像

Posted by eightban