こんにちは。だいちゃんです。
昔、LPをガンガン作ってた時代に先輩から「Webに使う画像はとりあえず ImageOptim を使うように」と言われていて、今でも副業などで Web ページを作る時には無意識に ImageOptim を通すレベルで習慣化されています。
ただ、後少しだけ機能がほしいなぁと前々から思っていたので、ChatGPT と共に開発してみました。いままで Web アプリばっかり作っていたので、僕史上初のデスクトップアプリ制作となりました。
ソースコードやビルドしたものは Github に無料で公開しているので、使ってみてください。フィードバックもお待ちしています。
まずは、ImageOptim を使うことをここまで習慣化できた理由を探ってみます。そこにアイディアのヒントがあるはず。
ImageOptim のいいところは、何と言ってもシンプルな使い勝手にあります。Mac だと Dock に固定しておいて、画像をドラッグ・アンド・ドロップするだけで勝手に処理が完了する手軽さ。
そもそもなんで ImageOptim を通すのかというと、画像のメタ情報などの削除と、画像の圧縮によって、ファイルサイズを最適化してくれるからです。
とはいえ、どんな処理が行われているかなんて気にせずにとりあえず通す!を習慣付けられたのは ImageOptim の単純明快な使い勝手のおかげだと思います。
そんな快適な使い心地の ImageOptim ですが、良くも悪くも画像ファイルサイズの最適化に特化した結果、それ以外の機能がごっそり削ぎ落とされてしまっているのが残念ポイントでもありました。
例えば、画像のファイルサイズを小さくする一番効果的な方法は、画像自体のサイズを小さくすることです。でも、ImageOptim では画像のサイズを変更できないので、別のアプリで一旦画像サイズを変更した後に ImageOptim を通す必要が生じます。
また、ファイル形式(PNGやJPEG)の変換もできないので、こちらも別のアプリや Web ツールを利用する必要があります。
こういった、ちょっとした機能を追加しつつ、ImageOptim のサクッと使える心地よさを残したアプリがほしいなと思って開発したのが ImgPolisher です!
裏では Python の画像処理ライブラリ Pillow を使って、画像のサイズ変更や、メタ情報の削除などを行っています。GUI は PySide6 を利用しました。
そのため、比較的かんたんにマルチ OS 対応のデスクトップアプリが作成できました!(そもそも OS 依存の機能が無いから簡単だったってのもあるけど)
Github のリリースページ からお使いの OS に対応したアプリをダウンロードしてください。
ダウンロードした ZIP ファイルを解凍すると使うことができます。
Mac の場合は、署名が無く実行がブロックされてしまうと思うので、解凍した .app ファイルがある階層で以下のコマンドを実行してください。
xattr -dr com.apple.quarantine ImgPolisher.app
.app や .exe 形式のアプリケーションファイルをダブルクリックで起動することもできますが、Dock などに固定しておいて、ImgPolisher のアイコンに向かって画像ファイルをドラッグ・アンド・ドロップすることでも起動できます。Dock に固定して D&D で使うのがおすすめの使い方です。

単純にファイルサイズを最適化したいだけなら、この状態で右下の スタート をクリックすれば、元ファイルが最適化された状態になります(ファイルは上書きされます)。
さらに、この画面では画像の横幅を変更したり、画像形式を変更することが可能です。上書きしないようにしたい場合、上書き欄のチェックを外すことで別名保存になります。
ちなみに、よく使う横幅は設定画面から名前とともに保存することが可能です。

スマートフォンで撮影した写真をブログ用に一括で 1024px に揃えたい、みたいな使い方もできます。
1つ1つが劇的に小さくなる!ってわけではないです。

ただ、ドラッグ・アンド・ドロップするだけの手間でこれくらいの容量圧縮が出来れば、Webページ全体の容量としてはそれなりに小さくなるのではないかな、と思ってます。思いたいです。
初めてのデスクトップアプリでしたが、AI のサポートのおかげで簡単に公開までたどり着くことができました。
最初の仕様書と小さく作ることが大事だなぁと思ったので、その辺りは別記事でまとめようと思います!
