sk51.log

The Averageman's web log.

PNG画像のファイルサイズをpngquantで圧倒的に圧縮する


2015年1月10日 Web制作 ,

pngquant」は、PNG形式の画像を圧縮するツールです。
これを使うことで、圧倒的にPNG画像のファイルサイズを圧縮することができます。

PNG画像をなぜ圧縮するのかというと、ファイルにもよりますが、GIFやJPEGと比べると、PNGはファイルサイズが大きくなりやすくなっています。
そのために、圧縮する必要性が出てくるのですが、PNGはJPEGとは違い、自由に圧縮率を設定することができません。
たとえばPhotoshopなどでPNGに書き出す際、画質を下げて書き出すことができません。
8ビットカラーのPNG8で書き出すことでファイルサイズを抑えることができますが、PNG24に比べると画質は大幅に下がってしまいます。

そこで威力を発揮するのが、画像の劣化を最小限に抑えて圧縮することができる「pngquant」です。
pngquantを使用することで、PNG画像を見た目はそのままに、ファイルサイズを大幅に抑えることができます。

1. pngquantとは

pngquantは、24/32ビットのPNG画像を、アルファチャンネルを維持したまま8ビットに変換するソフトです。
減色をしているのにも関わらず、高画質で変換することができ、ファイルサイズも大幅に削減することが可能です。

基本的には、コマンドラインでの操作になります。

2. pngquantのダウンロード

公式サイトからMac用、Windows用のバイナリを入手することができます。

pngquant — lossy PNG compressor

3. pngquantを使用する

初期状態ではパスが通っておらず、そのままでは使用できないので、パスを通します。
もしくは、コマンドプロンプトでpngquant.exeがあるフォルダを開きます。

そして、圧縮したい画像を指定して実行。

$ pngquant 256 test.png

そうすると、同じフォルダにtest-fs8.pngもしくはtest-or8.pngというファイルが作成されます。
これが、変換後のファイルになります。

256は色数の指定部分です。
ここの数値は、2~256の値をとり、省略された場合は、256になります。

また、ワイルドカードが使えるので、*.pngとするとフォルダ内の.pngをすべて変換します。

4. オプションを利用する

よく使用するであろうオプションの一部です。

  • –ext new.png
    出力されるファイルの拡張子を設定します。デフォルトは、-fs8.pngもしくは-or8.pngになっています。
    上書きしたい場合は–ext .pngとしますが、そのままではエラーになるので–forceを付け加えます。

  • –quality min-max
    JPEGのように画質の設定を行います。

  • –speed N, -sN
    書き出しのスピードを指定します。デフォルトは、3で、1が最も遅く(高画質)で、10が最も早い(低画質)となります。

  • –version
    pngquantのバージョンを表示します。

5. よくつかうコマンド

PNG画像を作成する場合、そのほとんどは、.psdや.aiなどからの書き出しなので、pngquantのコマンドは上書き設定で問題ないはずです。
ファイルサイズも通常設定の圧縮率で十分なので、以下のコマンドがシンプルで使いやすいと思います。

$ pngquant --ext .png --force *.png

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

*

CAPTCHA