DESKTOP APP / UBUNTU + WINDOWS
Image Converter
Desktop-приложение для Ubuntu и Windows: пакетная оптимизация изображений, предпросмотр сжатия и сохранение файлов на компьютере.
Исходный код на GitHub01 / CONTEXT
Подготовка изображений на компьютере
При подготовке нескольких изображений нужно выбрать формат, подобрать качество, ограничить размеры и последовательно назвать файлы. Приложение объединяет эти действия в одном интерфейсе и показывает, как настройки влияют на результат.
Приложение построено на Tauri 2: React отвечает за интерфейс, Rust — за нативную обработку WebP и PNG, а плагины Tauri — за системные диалоги и запись файлов. Изображения обрабатываются локально, без отправки на сервер. Дополнительно доступен браузерный режим; текущие скриншоты сняты в нём.
02 / PLATFORMS
Ubuntu и Windows
В проекте настроена сборка desktop-приложения для двух операционных систем. Интерфейс и логика обработки общие, а установщики собираются под каждую платформу отдельно.
- Ubuntu. Пакет .deb для установки и AppImage для запуска приложения.
- Windows. Установщик .exe через NSIS и пакет .msi.
03 / INTERFACE
От загрузки до файлов в выбранной папке
- Загрузить изображения. Добавить файлы через выбор или перетаскивание, посмотреть миниатюры и выбрать изображение для сравнения.
- Подобрать настройки. Выбрать WebP, JPEG или PNG, качество и максимальную ширину. Для PNG настройка качества отключена.
- Оценить результат. Сравнить оригинал и обработанный файл. Прогноз показывает размер всех файлов и экономию либо увеличение объёма.
- Сохранить файлы. Выбрать папку системным диалогом, запустить обработку и записать файлы на компьютер. Для переноса результатов доступен ZIP.

04 / ENGINEERING
Что стоит за интерфейсом
React-интерфейс и нативная обработка на Rust
Tauri связывает React-интерфейс с Rust: WebP и PNG передаются в нативный обработчик бинарным IPC-запросом. Обработка вынесена в spawn_blocking, изменение размера сохраняет пропорции. JPEG в текущем frontend-пути использует Canvas; Canvas также обеспечивает дополнительный браузерный режим.
Несколько способов сохранить результат
Системный диалог Tauri позволяет выбрать папку, а плагин файловой системы записывает обработанные изображения на диск. Результаты получают базовое имя и последовательную нумерацию. ZIP-архив сохраняется через системный диалог; в браузерном режиме предусмотрено скачивание архива.
Один результат для трёх сценариев
Предпросмотр, прогноз общего размера и итоговая конвертация используют общий кеш обещаний обработки. Ключ включает файл, формат, качество и максимальную ширину. Повторный запрос с теми же параметрами переиспользует вычисление, а ошибка удаляет запись из кеша.
Ограниченная параллельность
Загрузка миниатюр и конвертация выполняются с двумя параллельными задачами, прогноз — с одной. Такой подход ограничивает число одновременно декодируемых изображений. Предпросмотр запускается с задержкой 200 мс, прогноз — 600 мс; устаревшие результаты не обновляют интерфейс.