Windows で PNG 画像を最適化するドロップレットを作る
PNG 画像の画質をあまり落とさずにファイルサイズを最適化するサービスとして TinyPNG というものがある。画像形式や内容によって最適な圧縮をかけてくれるところは便利だが、いちいちダウンロードして再配置する必要があるので手間がかかる。
私が主に TinyPNG を使用したい場面は、アルファチャンネルを持つ PNG 画像を PNG-24 から PNG-8 にしたい場合だ (現在の Photoshop ではアルファチャンネルを持つ PNG-8 の出力に対応していないため)。そこでアルファチャンネルを持つ PNG-8 の出力のみに対応したドロップレットを作ることにした。
私が主に TinyPNG を使用したい場面は、アルファチャンネルを持つ PNG 画像を PNG-24 から PNG-8 にしたい場合だ (現在の Photoshop ではアルファチャンネルを持つ PNG-8 の出力に対応していないため)。そこでアルファチャンネルを持つ PNG-8 の出力のみに対応したドロップレットを作ることにした。
ドロップレットの作成
TinyPNG では内部的に pngquant というツールが使われているようなので、これを用いる。
まずこのページから「Binary for Windows (v2.7.2)」をダウンロードし、適当なディレクトリに展開する。
そして pngquant.exe と同じディレクトリに Optimize PNG.bat という名前でファイルを作成する。内容は付属の Drag PNG here to reduce palette automatically.bat を参考にした。
@echo off set path=%~d0%~p0 :start "%path%pngquant.exe" --force --verbose --ordered --speed=1 --quality=50-90 --ext "-new.png" %1 rename %1 "%~n1.orig%~x1" rename "%~d1%~p1%~n1-new%~x1" "%~n1%~x1" shift if NOT x%1==x goto start
最後に使いやすい場所、たとえばデスクトップに、このバッチファイルへのショートカットを作成する。アイコンや名前を変えておくと分かりやすい。