Image Converter своё GTK4-приложение на Python для пакетной конвертации
Мне часто приходится обрабатывать папки с фотографиями, чтобы выложить их на сайт. Какого-то сверхкачества там не нужно: 1024 пикселей по ширине и webp формат — этого более чем достаточно для веба.
Раньше я обычно использовал проверенную консольную команду:
mogrify -format webp -resize 1024 -quality 90 *.jpg && rm -rf *.jpgМетод быстрый, но «слепой» — автоматизировать рутину удобно, но, честно, я всегда забываю эту команду и вспоминаю её каждый раз, когда нужно обработать папку фоток. К тому же при ручной зачистке всегда есть риск случайно снести лишние исходники.
Мне надоело каждый раз набивать эти параметры в терминале, и я решил завернуть привычный функционал в простую, красивую графическую оболочку, которая всегда под рукой. Так родилось моё десктопное приложение на Python — Image Converter.

Что получилось
Это легковесное GUI-приложение, написанное на Python с использованием GTK 4 и libadwaita (через PyGObject). Интерфейс максимально линейный: выбираешь папку, исходный и целевой форматы, при необходимости вводишь нужные цифры размера/качества и жмешь одну кнопку.
- Поддерживаемые форматы: JPG, JPEG, PNG, WebP, TIFF, BMP.
- Безопасное удаление: исходники стираются только после успешной конвертации.
- Наглядная статистика: вместо пустого терминала приложение выводит размер «до», «после» и точный процент сжатия для каждого файла.
Как это устроено внутри
Никакого Electron или тяжелых веб-технологий. Приложение выглядит нативным в Linux и почти не потребляет ресурсов.
Саму обработку графики я не стал изобретать с нуля. Раз уж консольный стек меня полностью устраивал, конвертация внутри приложения делегирована всё тому же ImageMagick (mogrify). Python-код просто собирает параметры из GUI, генерирует правильные аргументы и запускает утилиту в подпроцессе.
Упаковка во Flatpak
Чтобы приложение запускалось на любом дистрибутиве без ручной установки зависимостей, я упаковал его во Flatpak. Манифест com.aab.ImageConverter.json базируется на runtime GNOME 45 и сам в изолированном окружении собирает нужную версию ImageMagick.
Готовый пакет image-converter.flatpak можно перенести на любую машину и развернуть двумя командами:
flatpak install image-converter.flatpak
flatpak run com.aab.ImageConverterНикаких конфликтов с системным pip или версиями библиотек — всё работает из коробки в песочнице.
Исходники
Проект полностью открыт под лицензией MIT и опубликован на платформе ALT Linux Space .
