デスクトップ向け画像変換ツール「ImgConverterDesktop」を公開しました

はじめに

20種類以上の画像フォーマットに対応したシンプルなデスクトップ向け画像変換ツール「ImgConverterDesktop」を公開したので、ここではその紹介記事を書くことにする。

GitHub - Yuulis/ImgConverterDesktopgithub.com favicon
キャッチコピー画像
キャッチコピー画像

開発の経緯

大学のレポート課題で LaTeX に画像を挿入する際、配布されたテンプレートではなぜか画像が EPS 形式でしか挿入できなかった。 ネット上には一応 PNG や JPG から EPS へ画像を変換するツールが落ちてはいるのだが、オンラインのサービスはセキュリティ的に不安があるし、1日のアップロード可能枚数が制限されているものが多く、満足できるものがなかった。

また、iPhone で画像を撮影していると、HEIC 形式で保存されることが多いのだが、Windows では HEIC 形式の画像を開くことができないため、HEIC 形式から PNG や JPG などの一般的な画像形式へ変換する必要があった。

そこで、せっかくなら自分で作ってしまおうと思い、この「ImgConverterDesktop」を開発することにしたのである。

機能紹介

GitHub の Release ページから、OS に応じた最新バージョンの zip ファイルをダウンロードして展開し、中にあるImgConverterDesktop.exeを実行すると、以下のような画面が表示される。

スクリーンショット
スクリーンショット

「Target Format」のプルダウンメニューから変換後の画像形式を選択し、「Open File」ボタンを押下して変換したい画像ファイルを選択すると、選択した画像形式へ変換される。

「Open Output Folder」ボタンを押下すると、変換後の画像が保存されているフォルダを開くことができるので、変換後の画像をすぐに確認することができる。

技術的な話

Fletについて

このアプリは、 Python のマルチプラットフォーム向け GUI フレームワークである Flet を用いて開発している。

flet.dev favicon

内部では Flutter が使われており、シンプルなコードで Flutter のモダンな Widget システムをそのまま使うことができる。

また、flet buildコマンド1つで Windows / macOS / Linux 向けのネイティブバイナリをビルドできる点も魅力であった。

Flet については、以前ブログで紹介記事を書いたので、気になる人はそちらも読んでみてほしい。バージョンが古いので、そのうち最新版対応の記事も書きたいと思っている

【Flet v0.26.0】Python + FletでリッチなGUIアプリケーションを手軽に作ってみる ~tkinterはもう古い!?~ - Yuulis.logyuulis.hatenablog.com favicon

現在はまだバージョンが0.85.0ということで、フレームワーク本体のアップデートに合わせて、こちらのアプリも随時更新していく予定である。

.heic形式の変換について

本アプリの核となる画像形式の変換処理は、主にPillowを用いて行っているが、.heic形式の画像を変換するためには、専用のpillow-heifというライブラリを使っている。

かつては Flet でアプリをパッケージ化する際に、pillow-heifが正しく組み込まれずビルドエラーになってしまう問題があり、正式なリリースを見送っていたという経緯がある。

おわりに

今回は自作のデスクトップ向け画像変換ツール「ImgConverterDesktop」を公開したので、その紹介記事を書いた。

しばらくは定期的なアップデートも行っていく予定なので、興味のある方は使ってもらえると嬉しい。