画像圧縮を効率化できるソフトpngquantの概要や使い方を書いておきます。
※この記事ではWindowsでの使い方について書きますがMacでも使えます。
pngquantを使おうと思った経緯
pngquant以外にも画像圧縮系のソフト、サービスはいろいろあります。たぶん有名なのは、 TinyPNG – Compress PNG images while preserving transparency で、こちらはウェブサービスとして展開されていて、画像ファイルをドラッグ&ドロップすると画像を圧縮してくれるというサービス。わたしもこのサイトを使っていました。
それで、TinyPNGはWordPressのプラグインとしても使えて、名前は「Compress JPEG & PNG Images」という名前で提供されています。
※このあたりの名前が違う理由については重要じゃないので省略します。 | Compress JPEG & PNG Imagesを使うとWordPressの画像アップロード時に画像圧縮が完全自動で行われるようですが気がすすまず、ウェブサービスのほうで画像を圧縮をしていました。その理由は会員登録が必要なためでした。あと月に500枚までしか画像圧縮をできないそうです。(十分かとは思いますが)
そこで代替案としてあがったのがpngquantです。
pngquantを使う準備
pngquantを入手する。ダウンロードする
pngquantは下記で入手できます。
pngquant — lossy PNG compressor
たくさんソフトがありますが、Binary for Windowsを選びます。(※ただほかにもいろいろソフトがありますのでそちらのほうが肌に合う方もいるかもしれません。)今回はとりあえずWindowsのコマンドラインで使用するpngquantを選びました。
pngquantの中身を確認
ダウンロードしたら解凍して、中身を確認します。pngquantの中身は以下のようになっていました。バッチファイルに画像をドラッグ&ドロップするだけで勝手に圧縮をしてくれます。
ドラッグ&ドロップでも画像を圧縮してくれますが、それだとTinyPNGウェブサービスをつかっているときとやっていることが変わらないので、コマンドラインを利用して、画像圧縮できるようにします。
環境変数「Path」にpngquantを設定する。
pngquant.exeが入っているフォルダにパスを通します。「パスを通すとは」環境変数の「Path」に実行ファイルがあるパスを設定することをいいます。こうすることによってコマンドラインから実行ファイルを実行できるようになります。パスの通し方は以下を参考。
- コントロールパネルを開き、システムを選択します(大きいアイコンの状態)
- システムの詳細設定を選択し、詳細設定タブにある環境変数を選択します。
- そこにPathという変数があるので、pngquant.exeがあるパスを新規追加します。
pngquantを使う方法
さきほどはpngquantのパスを通しました。コマンドラインツールを立ち上げると、pngquantというコマンドを使えるようになります。windowsにはコマンドプロンプトとPowerShell、2つのコマンドラインツールが入っているかと思いますが、どっちをつかっても構いません。
基本的な使い方としては
pngquant *png
たったこれだけです。これで圧縮された画像が新に作成されます。しかし新たに画像を作成せず元画像の上書きをしたかったり、圧縮のスピードを変更したり、圧縮画像のクオリティを変更したりするには、オプションや他のコマンドも組み合わせる必要があります。
※基本的な使い方は英語になりますが、ダウンロードしたzipフォルダにReadme.txtが同封されています。
pngquantで使えるコマンドの簡単な説明
コマンド | 説明 |
---|---|
pngquant | pngquantを使うためのコマンド |
–ext .png | 軽量化後の画像ファイルの拡張子の指定 |
–force | 軽量化後の画像ファイルの上書きを指定する |
*.png | 軽量化するファイルの選択ワイルドカードで.pngファイルをすべて指定している |
pngquantで使えるオプション
コマンド(オプション) | 説明 |
---|---|
–quality min-max | 0から100の間で画質指定 |
–spedd N, -sN | 軽量化にかかる時間を指定。デフォルトは3 1から10で1だと遅く10だと速い |
結局どのコマンド使えばいいのよ?
以下のコマンドでよいのではないでしょうか?
pngquant -f --ext .png *png
このコマンドは単に元画像を圧縮した画像で上書きするだけのコマンドになります。とくにクオリティ等のオプション等は指定していません。
画像圧縮を完全自動にするには
画像圧縮を完全自動にするにはフォルダ監視ソフトを使うと実現することができるかと思いますが確認まではやっていません。おそらくフォルダ監視ソフトを使わなくても簡単なバッチで行けそうな気もしますがそれも確認はしていません。Macの場合だとAutomatorというワークフロー構築ソフトを使うことで画像圧縮を完全自動化することができるようです。
まとめ
いままでTinyPngにポチポチドラッグ&ドロップしていましたが、pngquantを使うことで大幅に労力を削減することができそうです。
コメント