[Win] pngquantを右クリックから実行できるようにする方法
2018/04/07
PNGファイルのファイルサイズを、劣化無く劇的に縮小するツール「pngquant」。とても便利なので右クリックメニューから使えるようにしちゃいましょう!
pngquantとは
pngquantとは、PNGを(条件付きで)無劣化圧縮するツールです。ちなにに「quant」はたぶん「quantiative(定量的な)」の略語だと思います。
使われている色数が少ない画像(スクリーンショットなど256色以下のもの)では効果は劇的で、一切の劣化なくファイルサイズを4分の1とかにしてくれます。
ここで例に使ったのは、Yahoo! JAPANのトップページをGoogle Chromeで表示した以下の画像です。(ここではさらにJPEGで縮小してあります)
元のファイルは 1280×1400ピクセル で 1.1MB だったんですが、pngquantにかけただけで 300KB 以下にまで圧縮されました。
使っている方法は、24bitカラーや32bitカラーで作られたPNG画像を、使っている色が256色以内になるように調整して圧縮します。「256色カラー」と違って32bitから256色を選ぶので、色数が少なければ無劣化か、見た目にほとんど変化無く圧縮できます。
PNGはアイコンやロゴ、スクリーンショットなどでよく使われています。多くは少ない色数で構成されているので、効果が出やすいと思います。写真など色数の多い画像の場合は使える色が限られる分目に見えて劣化するのでご注意ください。
問題は使う手間
pngquantで問題となるのは、操作の手間です。一旦PNGで保存したファイルを再びpngquantにかけなければいけません。用途によってはいっそJPEGに圧縮した方がいいかもしれません。
pngquantをもっと気軽に使えるように、ファイルを右クリックしたメニューから圧縮できるようにしましょう!
レジストリで右クリックメニューに登録
右クリックメニューからpngquantが使えるように設定しましょう。
pngquantを入手してどこかに置く
まずはpngquantを入手します。pngquant公式サイトの「Binary for Windows」をクリックしてzipファイルをダウンロードします。
中にある「pngquant.exe」を、どこか移動される心配のない場所に置きます。「ドキュメント」などのユーザー依存フォルダではなく、「C:\pngquant\pngquant.exe」などの方が良いでしょう。
私の場合はこういう直下に置きたいタイプのファイルをすべて「C:\Soft」以下に置くようにしているので、今回もその下に置きました。
レジストリの設定
※ ここから先はレジストリの編集を伴います。作業を間違えるとWindowsが起動しないなど重大な問題を引き起こす可能性があるので十分注意してください。
スタートメニューで「regedit.exe」を検索して開きます。[Win]+[R]に「regedit.exe」と入力して[Enter]でも構いません。
HKEY_CLASSES_ROOT\SystemFileAssociations\.png\shell
とたどります。拡張子が「png」のファイルの右クリックメニューが記述されています。
- [shell]で 右クリック→新規作成→キー として pngquant を作り、さらにその下に command を作ります。
- pngquant を選択して、右側の「(既定)」をダブルクリック。「pngquant で圧縮」と入力します。
- command を選択して、右側の「(既定)」をダブルクリック。実行したいコマンドを入力します。
コマンドには pngquant に適宜オプションを付けて設定します。実行すると「%1」の所に画像ファイルのファイルパスが代入されます。私は以下のように設定しました。
"C:\[pngquantの場所]\pngquant.exe" --skip-if-larger --ext .png --force "%1"
「--ext .png」 としているので、ファイル名は元ファイルと同じになります。さらに「--force」となっているので無確認で上書きします。つまり、元ファイルを残さずに上書き圧縮するということです。
元ファイルを残して圧縮したい場合は、
"C:\[pngquantの場所]\pngquant.exe" --skip-if-larger --ext -quant.png --force "%1"
のようにすれば、「○○-quant.png」というファイルが新たに作成されるようになります。
これで右クリックメニューに「pngquant で圧縮」が追加されました。
使い方
使い方は簡単。PNGファイルを選択して右クリックメニューから「pngquant で圧縮」を選ぶだけです。複数のファイルを選択して一気に圧縮することもできます。
一瞬コマンドプロンプトのウィンドウが表示されて、すぐに圧縮完了します。コマンドプロンプトが出ないようにすることもできるにはできますが、他のプログラム(VBScriptなど)を挟まないといけなくなるので今回は気にしないことにしました。
まとめ
こういうPC系のブログなんかだとスクリーンショットを多用するので、劣化するJPEGではなくPNGのまま掲載できるのはとても助かります。800×400ピクセルくらいでも単純なウィンドウ内容なら10数KBだったりしますからね。
便利なプログラムはこうやって右クリックメニューへの登録を活用することで手軽に利用したいですね!