Локальный инструмент оптимизации изображений в WebP/AVIF
Локальный инструмент для пакетной оптимизации изображений в WebP/AVIF, разработан для себя как удобная, минималистичная и эффективная замена громоздким онлайн-сервисам.
Использую его для подготовки иллюстраций к публикации на разрабатываемых сайтах — чтобы получать современные форматы с максимальным сжатием без потери визуального качества.
В основе — библиотека libvips (через pyvips), которая обрабатывает изображения потоково чанками вместо загрузки в память целиком — это даёт скорость в 5–10 раз выше чем ImageMagick или Pillow, и позволяет работать даже с очень большими файлами.
WebP сжимается с method=6 и smart_subsample, AVIF через AV1-кодек. При недоступности libvips — автоматический fallback на Pillow с поддержкой AVIF через pillow-heif.
Все файлы обрабатываются параллельно через ProcessPoolExecutor.
Интерфейс поддерживает drag & drop, клик, и вставку из буфера обмена (Ctrl+V). Три профиля качества, выбор размеров с умным учётом ориентации (landscape/portrait), автоупаковка в ZIP, автоочистка через 10 минут. Изображения не покидают машину — полностью локальная обработка.
Стек: Python, FastAPI, libvips/pyvips, Pillow, Vanilla JS
Использую его для подготовки иллюстраций к публикации на разрабатываемых сайтах — чтобы получать современные форматы с максимальным сжатием без потери визуального качества.
В основе — библиотека libvips (через pyvips), которая обрабатывает изображения потоково чанками вместо загрузки в память целиком — это даёт скорость в 5–10 раз выше чем ImageMagick или Pillow, и позволяет работать даже с очень большими файлами.
WebP сжимается с method=6 и smart_subsample, AVIF через AV1-кодек. При недоступности libvips — автоматический fallback на Pillow с поддержкой AVIF через pillow-heif.
Все файлы обрабатываются параллельно через ProcessPoolExecutor.
Интерфейс поддерживает drag & drop, клик, и вставку из буфера обмена (Ctrl+V). Три профиля качества, выбор размеров с умным учётом ориентации (landscape/portrait), автоупаковка в ZIP, автоочистка через 10 минут. Изображения не покидают машину — полностью локальная обработка.
Стек: Python, FastAPI, libvips/pyvips, Pillow, Vanilla JS