PNG圧縮ツールpngquant zopflipng
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 – 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.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









ディスカッション
コメント一覧
まだ、コメントがありません