主にモバイルFlash向けに、PNG画像を減色→最適化するバッチファイルです。
アルファチャネル付きの24ビットPNG画像も減色、最適化できます。
使い方
- pngquant、PNGrewrite、OptiPNG、PNGOUTをそれぞれダウンロードし、解凍します。
- 以下のコードをメモ帳にコピー&貼り付けします。
- 説明にしたがい、設定項目を記入したらお好きなファイル名で保存します。
- 保存したテキストファイルの拡張子を「.txt」から「.bat」に変更します。
- このバッチファイル(.bat)と同じフォルダに最適化したいPNG画像をコピーします。
圧縮したいPNG画像が複数枚ある場合は、すべてコピーしてください。
(同じフォルダにあるすべてのPNGファイルが最適化されます) - バッチファイルを実行すると、最適化処理が始まります。
終了までしばらくお待ちください。 - バッチファイルのあるフォルダに、「result」という名前のフォルダができます。
このフォルダの中に、減色&最適化済みのPNGファイルが色数別に保存されます。
SETLOCAL
::------------------------------------------------ここから設定項目
::何色きざみで減色を行うか、イコール(=)の右側に数値を半角で入力してください。
SET /A color=16
::軽量化処理に使用する各ソフトのファイルパス(それぞれのソフトを解凍した場所)を、イコール(=)の右側に入力してください。
SET pngquant=pngquant-0.95-win32\pngquant.exe
SET pngrewrite=pngrewrite-1.3.0\pngrewrite.exe
SET optipng=optipng-0.6.1-exe\optipng.exe
SET pngout=pngout.exe
::------------------------------------------------ここまで設定項目
md result\fullcolor
copy "*.png" result\fullcolor\
%optipng% result\fullcolor\*.png -o7
for %%V in (result\fullcolor\*.png) do %pngout% /y %%V %%V
for /L %%M in (%color%,%color%,256) do md result\%%Mcolor
:LOOP
SET /A clr+=%color%
IF %clr% GTR 256 GOTO END
%pngquant% %clr% *.png
move "*-fs8.png" result\%clr%color\
for %%R in (result\%clr%color\*.png) do %pngrewrite% %%R %%R
%optipng% result\%clr%color\*.png -o7
for %%V in (result\%clr%color\*.png) do %pngout% /y %%V %%V
GOTO LOOP
:END
ENDLOCAL
利用上の注意
- 変換後のPNGファイルはアルファチャンネル付きインデックスカラーPNGです。
photoshop等の画像編集ツールで正常に開けない場合がございますので、必ずバックアップをとってください。
高圧縮になった分、展開にHeapメモリを消費しないかどうかが若干心配になり
こちらの記事のサンプルデータで比較してみたのですが、全く変わりませんでした。
どの圧縮方式を利用しても変わらないのかな。
このバッチファイルは各種最適化ツールを順番に実行しているだけなので、PNGgauntletやBlastPNGとやってる事は大体同じです。
重ねがけはそんなに意味がないので、最近はこれ1つで全て済ませています。