Windows

WindowsでPNGイメージが圧縮できる「pngquant」を使うには?

WindowsでPNGイメージが圧縮できる「pngquant」を使うには?のサムネイル
YouTubeやWordPressをやっているとサムネイルを作る機会が多く、私は「PNG(Portable Network Graphic)」で扱っています。
PNGは、圧縮による画質の劣化のない可逆圧縮の画像ファイルフォーマット。ゆえにファイルのデータ量を小さくするべく圧縮処理をしているのですが、オンラインだとアップロードできるサイズや枚数に制限があって、少々面倒に感じることもあります。

そこで、自分のパソコンで簡単に圧縮処理をしてくれる「pngquant」を導入しています。これがとても便利なんです。
今回、もっと柔軟にオプションを指定できないか?と思い立ったので、調べてみました。

 

pngquantのインストール方法

step
1
ダウンロードする

公式サイトのリンクから直接ダウンロードできます。
任意のところに保存します。

step
2
zipファイルを解凍する

ダウンロードしたファイルを右クリックして、圧縮を解凍します。
解凍したファイルは使いやすいところに移動させておくと良いでしょう。
私はDドライブに置いています。

 

pngquantの使い方

コマンドプロンプトでコードを実行します。
 

基本のコード

pngquant 【ファイル名】.png

これを実行すると、元データとは別に「【ファイル名】-fs8.png」ができます。
例えば、ファイル名「test1.png」を圧縮したい場合は、次のように書きます。

pngquant test1.png

これを実行すると、元データは残ったまま新たに圧縮された「test1-fs8.png」が作成されます。

 

圧縮後データを圧縮前データに上書きする場合

圧縮前データが要らない場合は、コードにオプションを指定すればよいです。
「--ext .png --force」を追加してあげれば、圧縮した画像ファイルを同じファイル名で上書きしてくれます。

pngquant --ext .png --force test1.png

 

フォルダ内にあるすべてのpngファイルを圧縮したい場合

また、フォルダ内にあるすべてのpngファイルを圧縮したいときは、ファイル名に「*(アスタリスク)」を使います。

pngquant *.png

フォルダを指定することもできます。例えば「Dドライブのtest2」フォルダ内のpngファイルを全部圧縮したいときは、次のように書きます。

pngquant D:\test2/*.png

 

圧縮の品質を指定したい場合

「pngquant」では、JPEGと同様に品質を「0から100」の範囲で指定できます。

pngquant --quality=65-80 test1.png

 

処理速度を変えたい場合

速度は「1(遅い)から10(速い)」の範囲で指定できます。デフォルトは「3」。
速度と品質はトレードオフで「10」は品質が5%低くなりますが、「3」より8倍高速です。
ちなみに、手元のpngファイルで調べたところ、「1」と「2」の方が「3」より圧縮率が高く、「1」と「2」では同じでした。

pngquant -s【スピードの数字(1~10)】 test1.png

 

私が使っているコード

私の場合は、

  • 圧縮前データに上書きしたい
  • フォルダ内のpngファイルを全部圧縮
  • 処理速度より圧縮率

を求めているので、コードは次のようになりました。

pngquant --ext .png --force -s1 *.png

 

コマンドプロンプトに馴染みがない場合

バッチファイルを作って、それをダブルクリックすると簡単です。
作り方は、メモ帳などのテキストエディタでコマンドプロンプトで実行するコードを書いて保存します。
注意点は「pngquant」のフォルダを指定すること。バッチファイルの保存場所によって「pngquant」が起動しません。
例えば、「pngquant」をDドライブに保存している場合は、このように書きます。

cd /d D:\pngquant
pngquant --ext .png --force -s1 *.png

保存する時、拡張子は「.txt」ではなく、「.bat」に書き換えてください。
ちなみに「.cmd」でも構いません。「.bat」と「.cmd」の違いは、起源だったり、ERRORLEVEL環境変数の挙動だったりするそうです。

 

フォルダ名・ファイル名に注意

「pngquant」は、pngファイルのファイル名や保存しているフォルダ名に日本語が入っていると処理してくれません
日本語の名前がついていないフォルダ、ファイル名で保存して、圧縮してからリネームすることになります。

 

まとめ

pngファイルをお手軽に制限なく圧縮することができて、とても便利です。
ちなみに、Macでもターミナルを使えば同様のことができるそうです。

-Windows
-, , , , , , , , , , , , , , , , , , ,