• WEB

pngquant の使い方 画像軽量化ツールのTinyPNGやImageAlphaなどの内部エンジン

  • のん
    のん デザインちーむ
  • このエントリーをはてなブックマークに追加
pngquant の使い方 画像軽量化ツールのTinyPNGやImageAlphaなどの内部エンジン

まずは有名な画像軽量化ツールを確認する

windows対応

mac対応

両方で使える

などなど。

やはり両方のOSで使用できて、簡単にかつ容量もかなり下げてもらえるTynyPngをよく利用してしまうんですが、無料版だと、1回に圧縮できるファイルに制限もありますし、画像の数が多くなると何度もファイルをドラッグ&ドロップするのが辛くなります。

pngquantについて

pngquant は上記にもあるTinyPNG、ImageAlpha、Pngyuなど、有名なGUIツールの内部エンジンとして使用されているもので、結果には同じ効果を期待できます。
また、何度もファイルをドラッグ&ドロップすることもなく、指定した画像フォルダを一括で軽量化でき、その他画質に関わるオプションもあります。

pngquantを使用するにあたり、コマンドプロンプトからの操作が必須となりますが、両方のOSで使用もできますし、今後の作業もはかどるかと思いますので、私自信、コマンドプロンプトに苦手意識をもっていますが挑戦してみました。

目的としては一括で軽量化を図ることができること(作業時間の短縮)。

画像の形式はpngのみ。環境はwindowsです。

インストール

まずは公式サイトからソフトをダウンロードしてインストールします。

ダウンロード後、解凍したフォルダ(pngquant-windows)を任意の場所に配置し、pngquant.exeを実行しましょう。

コマンドプロンプトより作業フォルダへ移動

コマンドプロンプトを開いて、先ほど配置したフォルダへ移動します。
環境によって変わると思いますが、私がスタートするディレクトリはCドライブです。


C:¥>

そして、下記のコマンドを入力します。


C:¥>cd "pngquant-windowsへのパス"

cdはコマンドプロンプト上でディレクトリの移動をする際に、使用するコマンドです。

この”pngquant-windowsへのパス”についてですが、コマンドプロンプトへ直接フォルダをドラッグ&ドロップすれば自動で認識してくれます。

この場合、cd半角スペースと入力した後、pngquant-windowsフォルダをドラッグ&ドロップ。
最後にENTERキーで作業がしたいpngquant-windowsフォルダへ移動します。


C:¥>cd C:¥pngquant-windows
C:¥pngquant-window>

軽量化する画像フォルダを用意

pngquant-windowsフォルダ内に軽量化したい画像フォルダを用意しましょう。フォルダの名前はimgとしました。

軽量化する

準備が整ったので、あとはpngquant側で用意してあるコマンドを入力して軽量化をしていきます。

目的

  1. 指定した画像フォルダを一括で軽量化
  2. 軽量化後のimgファイルは、軽量化前のimgファイルに上書きして出力する。

2の目的を突然追加しましたが、理由は後述します。

では、目的にあたって下記のコマンドを入力します。最後にENTERキーを押せば、imgフォルダ内の画像が全て軽量化されます。


C:¥pngquant-window>pngquant --ext .png --force img/*.png

説明

pngquant

pngquantはこのソフトを動かすために必要なコマンドです。

--ext .png

この--ext .pngで軽量化後のファイルの接尾辞の指定しています。今回はファイルの名前を変更したくないので、元のままの.pngと指定してします。
例えば--ext out.pngとすると、出力されるファイルの名前が~out.pngとなります。

--extの指定をしない場合、デフォルトの接尾辞、-or8.pngまたは-fs8.pngが接尾辞として指定されます。

--force

この--forceで軽量化後のファイルを元ファイルに上書きして出力するのを許可するかどうかを指定します。ここでは上書きをしたいため、--forceを指定することで許可しています。

img/*.png

最後のimg/*.pngで軽量化するファイルを指定しています。

ここではimgフォルダに入っている全てのPNG画像が対象となります。この”全て”という意味は∗で指定してます。このアスタリスクマークをワイルドカードと呼びます。

ちなみに*の部分をtestとすればtest.pngだけが軽量化されます。

目的の2を追加した理由ですが、
上書きをよしとするかの--forceを指定せず、--ext .pngと元ファイルと同じ接尾辞を指定して実行すると、許可がおりていないためにエラーがでるからです。

もし、今回のように軽量化後のファイルの名前を変えたくない場合、--ext .pngと--forceの設定は必須となり、元ファイルに上書きをして出力するという形になります。

オプション


pngquant "オプション" "軽量化するファイル/フォルダ"

こんな感じでオプションが先にきて、軽量化したいフォルダまたはファイルを指定していきます。

先ほどの指定の例では、--ext .pngと--forceはオプションです。
他にもいくつかオプションがあるので、記していきます。

--quality min-max

これはJPEGの画質設定と同じように、最小値0と100の間で画質を指定できるものみたいです。

--quality=0-10と極端に指定してみて、結果を見てみると、指定しなかった場合よりファイルサイズは下がりましたが、画質もその分落ちていました。


使用例
pngquant --quality=65-80 img/*.png

--speed N, -sN

軽量化にかかるスピードを設定します。1がもっとも時間がかかりますが、高品質に仕上がります。

デフォルトは3です。
スピードを一番高速の10に指定すると品質がデフォルトより5%下がるそうです。しかし、スピードはデフォルトの8倍となります。


使用例
pngquant --speed 1 img/*.png
pngquant -s1 img/*.png

まとめ

  • 指定したフォルダを一括変換
  • 時間をかけてもいいから高品質

上記2点を元に、オプションもいくつか分かりましたので、結果的に自分がよく使う設定は下記のものになりそうです。


使用例
pngquant -s1 --ext .png --force img/*.png

また、上書きの指定をしているので、軽量化前の画像フォルダはしっかりとバックアップをとってから実行しましょう。

このエントリーをはてなブックマークに追加

のんが最近書いた記事

WRITERS POSTS もっと見る

他にもこんな記事が読まれています!

  • WEB
  • マーケティング
  • サーバー・ネットワーク
  • ライフスタイル
  • お知らせ