じーろぐ

日々の記録。コンピュータやプログラミングの話題が多め。

画像をドラッグ&ドロップするだけで軽量化するバッチファイル作った

これまで、JPEG/PNG画像の最適化ツール(Mozjpeg, Guetzli, Optipng, Zopfli, Pngquant)の性能と最適パラメータについて調べてきました。

ファイルサイズを小さくする仕組みや最適なパラメータは理解できたのですが、実際に使うとなると(CLIなので)処理ごとにコマンドを入力する必要があり、めんどくさいです。 そこで、ドラッグアンドドロップで簡単に画像が変換できるように簡単なバッチファイルのフロントエンドを作ってみました。

動作デモ

こんな感じで動きます。 この例では、3つの画像ファイル(合計約1MB)を処理して185KB(元ファイルの1/5以下)にまでファイルサイズを削減しています。

f:id:z_logger:20190507003427g:plain

事前準備や動作環境など

制限や注意事項など

  • PNGファイルは日本語ファイル名を扱えません(Pngquantの制限)
  • これまでの検証でGuetzliは、処理に時間がかかりすぎる割にMozjpegとの性能差が小さいこと、 OptipngよりもZopfliのほうが性能で上回っていたので、GuetzliとOptipngは使っていません。
  • パラメータはこれまでの検証結果で最適だと思われるパラメータにチューニングしてありますが(やや画質重視の設定)、使う場合は適宜調整してください
    • この設定でもファイルサイズは元の半分以下になると思います

バッチファイル

Githubにアップロードしたので、以下からダウンロードしてください。

github.com

このエントリに埋め込むため、Gistにもアップしました。拡張子.batとして保存して使用することもできます。

Drag & Drop Image optimizer front end for Windows

おまけ:バッチファイルは罠が多すぎる。参考にしたサイトなど

今回は、windows上でドラッグアンドドロップで動作するようにしたかったので、バッチファイルを使いましたが結構罠が多かったです。 シェルスクリプトだと一行で書けることも異常にめんどくさかったり。以下、記事作成にあたり参考になったサイトを列挙しておきます。