Guetzli: программа для сжатия JPEG
Guetzli — это специализированный JPEG-энкодер от Google, созданный для плотного сжатия изображений с сохранением высокого визуального качества. Программа не похожа на привычные графические оптимизаторы, где есть окно, кнопка Добавить файлы, ползунок качества и предпросмотр. Guetzli работает через командную строку: пользователь передаёт исходный PNG или JPEG, задаёт параметры качества, а на выходе получает новый .jpg.
Скачать Guetzli
Для сжатия и оптимизации файлов
Главная идея Guetzli — не просто уменьшить размер файла любой ценой. Программа использует психовизуальный подход: она учитывает, какие артефакты JPEG человек замечает сильнее, а какие могут быть менее заметны при обычном просмотре. Поэтому Guetzli интересен не как универсальный конвертер, а как точный инструмент для тех случаев, где нужно получить совместимый JPEG меньшего размера без перехода на WebP, AVIF или другой современный формат.
Название Guetzli часто встречается в контексте оптимизации изображений для сайта, сжатия JPEG без смены формата, уменьшения размера JPG, perceptual JPEG encoder, Butteraugli и сравнения с libjpeg или MozJPEG. При этом важно сразу понимать границы программы: Guetzli не редактирует фотографии, не меняет размер изображения, не удаляет EXIF по выбору пользователя, не делает пакетную обработку через собственную панель и не показывает визуальное сравнение до и после. Это консольный энкодер, который решает одну задачу: создаёт оптимизированный JPEG.
Guetzli особенно хорошо раскрывается на статичных изображениях, где скорость обработки не является главным требованием. Например, вебмастер готов подождать несколько минут ради сжатия ключевой фотографии на лендинге, иллюстрации в статье или крупного баннера. Для автоматической обработки пользовательских загрузок в реальном времени Guetzli подходит хуже: программа требовательна к процессору и памяти, а время кодирования заметно выше, чем у обычных JPEG-энкодеров.
Содержание
- 1 Для каких задач подходит Guetzli
- 2 Что Guetzli представляет собой как программа
- 3 Установка Guetzli на macOS
- 4 Сборка Guetzli на Linux и других POSIX-системах
- 5 Установка и сборка на Windows
- 6 Первый запуск Guetzli
- 7 Параметр --quality: управление визуальным качеством
- 8 Параметр --verbose: подробный вывод процесса
- 9 Параметры --memlimit и --nomemlimit
- 10 Работа с PNG: что происходит с прозрачностью
- 11 Работа с JPEG: когда перекодирование имеет смысл
- 12 Качество результата и психовизуальная модель
- 13 Почему Guetzli работает медленно
- 14 Практический сценарий: сжатие фотографии для сайта
- 15 Практический сценарий: обработка JPEG
- 16 Пакетная обработка через shell-скрипт
- 17 Работа в пайплайне сайта
- 18 Что Guetzli делает хорошо
- 19 Что в Guetzli неудобно
- 20 Таблица возможностей Guetzli
- 21 Типичные ошибки при работе с Guetzli
- 22 Сравнение фрагментов и визуальная проверка
- 23 Почему сначала нужен ресайз, а потом Guetzli
- 24 Guetzli и metadata
- 25 Guetzli и sequential JPEG
- 26 Когда Guetzli действительно стоит использовать
- 27 Сравнение с аналогами
- 28 Общая таблица сравнения
- 29 Как выбрать настройки Guetzli
- 30 Guetzli для фотографий, скриншотов и графики
- 31 Работа с большими изображениями
- 32 Использование Guetzli в автоматизации
- 33 Безопасность и лицензия
- 34 Практические советы по работе
- 35 Пример полного рабочего процесса
- 36 Итоговая оценка Guetzli
- 37 Стоит ли использовать Guetzli сегодня
Для каких задач подходит Guetzli
Guetzli стоит рассматривать как инструмент точечной JPEG-оптимизации. Его используют там, где важно сохранить совместимость с обычным JPEG и при этом выжать из формата больше, чем дают стандартные методы сохранения в графическом редакторе.
Программа подходит для следующих задач:
-
сжатие фотографий для сайта без перехода на WebP или AVIF;
-
уменьшение размера JPG при сохранении высокого визуального качества;
-
подготовка статичных изображений для лендингов, блогов, каталогов и документации;
-
сравнение качества JPEG-энкодеров в рабочем пайплайне;
-
ручная оптимизация важных изображений перед публикацией;
-
обработка исходных PNG-файлов с последующим получением JPEG;
-
перекодирование качественного JPEG в более компактный JPEG;
-
интеграция в shell-скрипты, Makefile, CI-процессы и локальные утилиты.
Guetzli не является программой для обычного пользователя, который хочет открыть папку с фотографиями, нажать одну кнопку и сразу получить результат. Здесь нет интерфейса с миниатюрами, шкалой прогресса, настройками ресайза, водяными знаками, кадрированием и выбором папки. Пользователь работает с файлами через терминал, поэтому Guetzli ближе к инструментам разработчика, администратора сайта или технического редактора.
Сильная сторона Guetzli — сохранение стандартного JPEG. Это важно для сайтов, старых CMS, почтовых рассылок, документации и любых систем, где поддержка современных форматов ограничена. Полученный файл открывается обычными браузерами, просмотрщиками изображений и редакторами, потому что Guetzli не создаёт отдельный нестандартный формат.
Что Guetzli представляет собой как программа
Guetzli — это исполняемый файл guetzli. После установки или сборки пользователь запускает его в командной строке. Базовый синтаксис выглядит так:
guetzli [flags] input_filename output_filename
На практике команда чаще всего выглядит так:
guetzli original.png output.jpg
или так:
guetzli --quality 95 original.jpg output.jpg
В этой программе нет вкладок, выпадающих меню и кнопок. Главными элементами интерфейса выступают аргументы командной строки:
| Элемент | Назначение |
|---|---|
guetzli |
запуск энкодера |
input_filename |
исходный PNG или JPEG |
output_filename |
итоговый JPEG-файл |
--quality Q |
целевое визуальное качество |
--verbose |
подробный вывод процесса кодирования |
--memlimit M |
ограничение памяти в мегабайтах |
--nomemlimit |
отключение лимита памяти |
Guetzli принимает на вход PNG и JPEG. На выходе всегда получается JPEG. Это принципиальный момент: если пользователь подаёт PNG с прозрачностью, программа не создаст PNG, WebP или JPEG с альфа-каналом. JPEG не поддерживает прозрачность, поэтому прозрачные области накладываются на чёрный фон. Для логотипов, иконок, скриншотов интерфейса и изображений с альфа-каналом это может быть критично.
Ещё одна важная особенность — Guetzli создаёт sequential JPEG, а не progressive JPEG. Такой файл декодируется стандартными средствами и совместим с обычными JPEG-декодерами, но он не загружается на веб-странице постепенно от размытого к чёткому, как progressive JPEG. Для некоторых сайтов это минус: progressive JPEG часто воспринимается пользователем комфортнее при медленном соединении.
Установка Guetzli на macOS
На macOS самый удобный способ установки — Homebrew. После установки Homebrew достаточно выполнить:
brew install guetzli
После завершения установки команду можно проверить так:
guetzli
Если программа установлена корректно, она выведет справку по использованию. В этой справке перечислены основные параметры: --verbose, --quality Q, --memlimit M, --nomemlimit, а также обязательные имена входного и выходного файла.
Пример рабочего запуска на macOS:
cd ~/Pictures/testguetzli --quality 95 original.png original-guetzli.jpg
Здесь cd ~/Pictures/test переводит терминал в папку с изображением, а команда guetzli --quality 95 original.png original-guetzli.jpg создаёт JPEG-файл с заданным качеством. Если изображение большое, терминал может долго не возвращать приглашение командной строки. Для Guetzli это нормальное поведение: программа выполняет тяжёлый подбор параметров кодирования.
Сборка Guetzli на Linux и других POSIX-системах
На Linux Guetzli можно собрать из исходного кода. Типовой порядок действий выглядит так:
git clone guetzlimake
Для сборки нужен libpng. На Ubuntu обычно устанавливают пакет разработки:
sudo apt-get install libpng-dev
На Fedora используется другой пакетный менеджер:
sudo dnf install libpng-devel
После выполнения make исполняемый файл появляется в каталоге:
bin/Release/guetzli
Запустить его можно напрямую:
./bin/Release/guetzli input.png output.jpg
Если нужно сделать команду доступной из любой папки, бинарный файл переносят в каталог, который входит в PATH, например /usr/local/bin. Это уже не особенность Guetzli, а стандартная логика работы с CLI-утилитами в Unix-подобных системах.
Установка и сборка на Windows
На Windows Guetzli не выглядит как привычное приложение с установщиком setup.exe. Для работы доступны готовые бинарные файлы в релизах проекта и сборка через Visual Studio. В репозитории есть файлы проекта Visual Studio, включая guetzli.sln и .vcxproj.
Базовая схема для сборки на Windows:
-
получить исходный код Guetzli;
-
установить Visual Studio;
-
установить
libpngчерезvcpkg; -
выполнить интеграцию
vcpkg; -
открыть проект Visual Studio;
-
собрать исполняемый файл.
Команды для vcpkg выглядят так:
.vcpkg install libpng.vcpkg integrate install
После сборки пользователь получает консольную программу. Запуск в PowerShell или Command Prompt выглядит так:
guetzli.exe --quality 95 input.png output.jpg
Windows-пользователю важно учитывать, что Guetzli всё равно остаётся CLI-инструментом. У программы нет отдельного окна, куда можно перетащить изображения. Если нужен именно графический интерфейс, лучше смотреть в сторону ImageOptim, FileOptimizer, Squoosh или других оболочек, а Guetzli использовать как отдельный энкодер.
Первый запуск Guetzli
Самый простой сценарий — взять PNG-файл и получить JPEG:
guetzli original.png output.jpg
Эта команда делает несколько вещей:
| Часть команды | Что происходит |
|---|---|
guetzli |
запускается энкодер |
original.png |
читается исходный файл |
output.jpg |
создаётся итоговый JPEG |
| параметры не указаны | используется качество по умолчанию |
Если исходным файлом является JPEG, команда почти не меняется:
guetzli original.jpg output.jpg
Guetzli не изменяет исходный файл, если входное и выходное имя разные. Это правильный сценарий работы: оригинал нужно сохранять отдельно, а итоговый JPEG проверять визуально и по размеру. Перезаписывать единственную копию фотографии не стоит, потому что JPEG — формат с потерями, а повторное перекодирование всегда несёт риск ухудшения изображения.
Для проверки результата удобно посмотреть размер файлов:
ls -lh original.png output.jpg
или для JPEG-исходника:
ls -lh original.jpg output.jpg
На Windows аналогичную проверку можно сделать через свойства файла в проводнике или командой PowerShell:
Get-Item original.jpg, output.jpg | Select-Object Name, Length
Параметр --quality: управление визуальным качеством
--quality Q — главный параметр Guetzli. Он задаёт целевое визуальное качество в шкале, похожей на качество JPEG в libjpeg. Значение по умолчанию — 95.
Пример:
guetzli --quality 95 photo.png photo-guetzli.jpg
Для более сильного сжатия можно использовать качество 90:
guetzli --quality 90 photo.png photo-guetzli-q90.jpg
Для минимально допустимого стандартного сценария часто используют 84:
guetzli --quality 84 photo.png photo-guetzli-q84.jpg
Guetzli ориентирован на высокое качество. Это не та программа, которой стоит пытаться агрессивно давить изображение до состояния маленькой превьюшки с заметными квадратами и шумом. Если задача — получить очень маленький JPEG любой ценой, проще использовать другой инструмент. Смысл Guetzli именно в том, чтобы сохранить визуально приятный результат на высоких значениях качества.
Важно не сравнивать цифры качества механически между разными энкодерами. --quality 90 в Guetzli, -quality 90 в ImageMagick, качество 90 в Photoshop и качество 90 в MozJPEG не обязаны давать одинаковый размер и одинаковую картинку. У разных энкодеров разные таблицы квантования, разные стратегии оптимизации и разные представления о том, что значит качество 90.
Практический подход такой:
-
взять исходное изображение высокого качества;
-
сделать несколько вариантов Guetzli: 95, 92, 90, 84;
-
сравнить размер файлов;
-
открыть изображения рядом;
-
проверить проблемные зоны;
-
выбрать минимальный размер, при котором артефакты не мешают.
Проблемные зоны для проверки:
-
ровное небо;
-
мягкие градиенты;
-
волосы;
-
шерсть;
-
текст на фотографии;
-
тонкие линии;
-
границы контрастных объектов;
-
мелкие детали ткани, кожи, металла;
-
тени и полутени.
Параметр --verbose: подробный вывод процесса
--verbose включает подробный вывод процесса кодирования. Этот параметр не делает изображение качественнее и не ускоряет Guetzli. Он нужен для диагностики и понимания того, что программа действительно работает, а не зависла.
Пример команды:
guetzli --quality 95 --verbose original.jpg output.jpg
При обычном запуске Guetzli может долго ничего не писать в терминал. На больших изображениях это раздражает: пользователь не понимает, идёт обработка или процесс остановился. --verbose помогает увидеть, что энкодер выполняет попытки, подбирает параметры и продолжает работу.
Использовать --verbose удобно в трёх случаях:
-
при первом знакомстве с программой;
-
при тестировании разных значений
--quality; -
при запуске Guetzli на сервере или в скрипте, где нужен лог.
Для финальной автоматизации подробный вывод не всегда нужен. Если Guetzli запускается в batch-скрипте для десятков изображений, --verbose создаёт много технического текста. В таком случае лучше логировать только факт начала и завершения обработки каждого файла.
Параметры --memlimit и --nomemlimit
Guetzli требователен к оперативной памяти. Для ограничения памяти используется параметр --memlimit M, где M — лимит в мегабайтах.
Пример:
guetzli --quality 95 --memlimit 6000 original.jpg output.jpg
Если Guetzli не сможет уложиться в заданный лимит, обработка завершится ошибкой. Это полезно на сервере, где нельзя позволять одному процессу занять всю память и уронить другие службы.
Параметр --nomemlimit отключает лимит:
guetzli --quality 95 --nomemlimit original.jpg output.jpg
Этот вариант стоит использовать осторожно. Если изображение крупное, а памяти мало, процесс может быть завершён операционной системой. На VPS с 1–2 ГБ RAM Guetzli легко сталкивается с нехваткой памяти при обработке больших фотографий.
У программы есть характерная оценка: примерно 300 МБ памяти на 1 мегапиксель входного изображения. Для 12-мегапиксельной фотографии это уже около 3,6 ГБ. Для 24 Мп — около 7,2 ГБ. Это не ошибка, а свойство алгоритма.
Работа с PNG: что происходит с прозрачностью
Guetzli принимает PNG на вход, но результатом всегда становится JPEG. Это удобно, если исходник подготовлен в PNG, но финальный файл нужен для сайта как .jpg.
Пример:
guetzli --quality 95 hero-image.png hero-image.jpg
Такой сценарий хорошо подходит для фотографий, которые были сохранены в PNG без необходимости. Например, дизайнер выгрузил большой баннер как PNG, хотя изображение представляет собой обычную фотографию. Guetzli может создать из него компактный JPEG.
Но PNG с прозрачностью требует осторожности. JPEG не поддерживает альфа-канал. Если в PNG есть прозрачные области, Guetzli накладывает их на чёрный фон. Для логотипа, иконки, интерфейсного элемента или изображения товара на прозрачном фоне это часто неприемлемо.
Перед запуском Guetzli для PNG нужно определить тип изображения:
| Тип PNG | Подходит ли для Guetzli | Причина |
|---|---|---|
| Фотография без прозрачности | Да | JPEG хорошо подходит для фотографий |
| Баннер без прозрачности | Да | Можно получить меньший файл |
| Логотип с прозрачностью | Нет | Прозрачность будет потеряна |
| Иконка | Обычно нет | PNG или SVG чаще лучше |
| Скриншот интерфейса | Зависит от содержимого | Текст и тонкие линии могут пострадать |
| Иллюстрация с плоскими цветами | Чаще нет | PNG/WebP могут быть лучше |
Guetzli не заменяет оптимизатор PNG. Если нужно сохранить прозрачность, лучше использовать PNGOptimizer, OptiPNG, ZopfliPNG, ImageOptim, Squoosh с PNG/WebP или другой инструмент, который сохраняет альфа-канал.
Работа с JPEG: когда перекодирование имеет смысл
Guetzli можно использовать для уже существующего JPEG:
guetzli --quality 95 source.jpg source-guetzli.jpg
Но лучший результат получается, когда исходник максимально качественный. Если файл уже был несколько раз пережат, Guetzli не восстановит потерянные детали. Он может сделать новый JPEG меньше, но артефакты исходника останутся, а иногда станут заметнее.
Хороший исходник для Guetzli:
-
JPEG с высоким качеством из камеры или редактора;
-
PNG, полученный из RAW-обработки;
-
экспорт из Photoshop, Affinity Photo, Lightroom или другого редактора без сильного сжатия;
-
финальный мастер-файл перед публикацией.
Плохой исходник:
-
JPEG, скачанный из мессенджера;
-
картинка из соцсети после автоматического сжатия;
-
старый файл, пережатый много раз;
-
скриншот с мелким текстом;
-
изображение с уже заметными JPEG-квадратами.
Главное правило: Guetzli стоит запускать ближе к концу обработки, но не поверх испорченного файла. Сначала выполняют цветокоррекцию, ретушь, кадрирование, ресайз и подготовку композиции. Потом экспортируют качественный исходник. И только затем запускают Guetzli.
Качество результата и психовизуальная модель
Guetzli отличается от простых JPEG-сжимателей тем, что ориентируется на восприятие изображения человеком. JPEG-компрессия работает через преобразование цвета, дискретное косинусное преобразование, квантование и энтропийное кодирование. Самые заметные потери обычно появляются на этапе квантования: часть информации отбрасывается, и изображение становится меньше.
Обычный энкодер может быстро применить таблицы квантования и сохранить файл. Guetzli действует тяжелее: он ищет такие параметры, при которых файл становится меньше, а визуально важные детали страдают меньше. В этом процессе используется Butteraugli — психовизуальная метрика, связанная с оценкой заметности искажений.
На практике это означает, что Guetzli пытается аккуратнее обращаться с теми областями, где человек легко замечает дефекты:
-
контрастные края;
-
тонкие линии;
-
переходы цвета;
-
участки с небом;
-
области вокруг резких объектов;
-
мелкие детали на однородном фоне.
JPEG часто создаёт ringing artifacts — ореолы и волнообразные искажения рядом с контрастными границами. Guetzli специально интересен тем, что стремится уменьшить заметность таких дефектов при сопоставимом или меньшем размере файла.
На таких фрагментах видно, почему Guetzli нельзя оценивать только по размеру файла. Важны не только килобайты, но и характер артефактов. Два JPEG одинакового размера могут выглядеть по-разному: один сохраняет края чище, другой даёт заметный шум вокруг линий.
Почему Guetzli работает медленно
Guetzli не стоит запускать с ожиданием скорости обычного JPEG-экспорта. Программа выполняет сложный поиск вариантов кодирования, поэтому кодирование может занимать минуты даже на одном изображении. Для больших фотографий время легко становится существенным.
Ориентир — около одной минуты CPU-времени на 1 мегапиксель входного изображения. Это приблизительная оценка, потому что реальное время зависит от процессора, настроек, качества, размера изображения и конкретного содержимого кадра.
Примерная оценка:
| Размер изображения | Мегапиксели | Ориентировочное CPU-время |
|---|---|---|
| 1000 × 1000 | 1 Мп | около 1 минуты |
| 2000 × 1500 | 3 Мп | около 3 минут |
| 3000 × 2000 | 6 Мп | около 6 минут |
| 4000 × 3000 | 12 Мп | около 12 минут |
| 6000 × 4000 | 24 Мп | около 24 минут |
Это не значит, что каждое изображение будет обрабатываться ровно столько. Но таблица хорошо показывает масштаб проблемы: Guetzli не предназначен для мгновенного массового сжатия огромных каталогов.

На слабом ноутбуке Guetzli может заметно нагружать систему. На сервере он может конкурировать за CPU и RAM с веб-сервером, базой данных и другими процессами. Поэтому запускать Guetzli прямо на рабочем продакшен-сервере нужно осторожно. Лучше обрабатывать изображения локально, на отдельной машине или в отдельной задаче, где высокая нагрузка не мешает пользователям сайта.
Практический сценарий: сжатие фотографии для сайта
Представим, что есть исходная фотография photo-original.png, которую нужно подготовить для публикации на сайте. Цель — получить JPEG с хорошим визуальным качеством и меньшим размером.
Сначала лучше создать отдельную папку для теста:
mkdir guetzli-testcp photo-original.png guetzli-test/cd guetzli-test
Затем запустить Guetzli:
guetzli --quality 95 photo-original.png photo-guetzli-q95.jpg
После завершения обработки проверить размер:
ls -lh photo-original.png photo-guetzli-q95.jpg
Если файл всё ещё слишком большой, можно сделать вариант с качеством 90:
guetzli --quality 90 photo-original.png photo-guetzli-q90.jpg
Затем сравнить:
ls -lh photo-original.png photo-guetzli-q95.jpg photo-guetzli-q90.jpg
Дальше начинается самая важная часть — визуальная проверка. Нельзя просто выбрать самый маленький файл. Нужно открыть варианты рядом и проверить:
-
не появились ли ореолы вокруг контрастных линий;
-
не испортилось ли лицо человека;
-
не поплыло ли небо;
-
не сломались ли мелкие детали;
-
не появился ли грязный шум на градиентах;
-
не пострадали ли надписи и логотипы;
-
не стала ли фотография визуально мягкой.
Для сайта обычно разумно хранить три файла:
| Файл | Роль |
|---|---|
photo-original.png |
исходник или мастер-файл |
photo-guetzli-q95.jpg |
вариант с высоким качеством |
photo-guetzli-q90.jpg |
более компактный вариант |
После сравнения выбирают тот, который даёт лучший баланс размера и качества. Исходник удалять не стоит: он пригодится для повторной обработки, перехода на AVIF/WebP или подготовки другой версии изображения.
Практический сценарий: обработка JPEG
Если исходный файл уже JPEG, команда выглядит так:
guetzli --quality 95 photo-source.jpg photo-guetzli.jpg
Для сравнения можно сделать несколько вариантов:
guetzli --quality 95 photo-source.jpg photo-guetzli-q95.jpgguetzli --quality 92 photo-source.jpg photo-guetzli-q92.jpgguetzli --quality 90 photo-source.jpg photo-guetzli-q90.jpg
После этого удобно вывести размеры:
ls -lh photo-source.jpg photo-guetzli-q95.jpg photo-guetzli-q92.jpg photo-guetzli-q90.jpg
Если исходный JPEG уже был оптимизирован хорошим энкодером, Guetzli может не дать драматического выигрыша. Иногда размер уменьшается заметно, иногда почти не меняется, а иногда другой инструмент показывает более практичный результат. Это нормальная ситуация: Guetzli не является магическим сжимателем любого файла.
Особенно осторожно нужно работать с фотографиями из интернет-магазинов. На белом фоне, коже, ткани, обуви, украшениях и мелких бликах пользователь легко видит дефекты. В таких случаях качество 95 или 92 часто безопаснее, чем агрессивное снижение до 84.
Пакетная обработка через shell-скрипт
В Guetzli нет встроенного режима пакетной обработки папки. Но это CLI-программа, поэтому её легко использовать в shell-скриптах.
Пример для PNG-файлов:
for file in *.png; do guetzli --quality 95 "$file" "${file%.png}.jpg"done
Эта команда проходит по всем PNG в текущей папке и создаёт рядом JPEG с тем же именем.
Пример для JPEG-файлов:
mkdir guetzli-outputfor file in *.jpg; do guetzli --quality 95 "$file" "guetzli-output/${file%.jpg}-guetzli.jpg"done
Так безопаснее: результаты складываются в отдельную папку, а исходники остаются нетронутыми.
Для файлов .jpeg можно использовать отдельный цикл:
for file in *.jpeg; do guetzli --quality 95 "$file" "guetzli-output/${file%.jpeg}-guetzli.jpg"done
Перед запуском на большой папке лучше протестировать команду на 2–3 изображениях. Guetzli медленный и прожорливый по памяти, поэтому пакетная обработка сотен фотографий может занять часы. Параллелить процессы нужно осторожно: если запустить сразу 8 экземпляров Guetzli на крупных изображениях, оперативная память может закончиться быстрее, чем процессор успеет обработать файлы.
Более аккуратный подход — запускать обработку последовательно или ограничивать количество параллельных задач. Например, для небольшой папки последовательный цикл надёжнее, чем агрессивный параллельный запуск.
Работа в пайплайне сайта
Guetzli хорошо вписывается в ручной или полуавтоматический пайплайн подготовки изображений. Например:
-
дизайнер готовит изображение в редакторе;
-
редактор экспортирует мастер-файл в PNG или JPEG высокого качества;
-
Guetzli создаёт оптимизированный JPEG;
-
файл проверяется визуально;
-
изображение загружается на сайт;
-
оригинал сохраняется отдельно.
Для сайта на CMS это может выглядеть так:
guetzli --quality 92 banner-source.png banner.jpg
После этого banner.jpg загружается в медиатеку или размещается в папке темы.
Guetzli не стоит использовать как обработчик каждого пользовательского upload в реальном времени. Если посетитель загружает изображение, а сервер сразу запускает Guetzli, пользователь может ждать слишком долго. Кроме того, при нескольких одновременных загрузках сервер получает высокую нагрузку. Для пользовательских загрузок лучше использовать более быстрые инструменты, а Guetzli оставить для финальных статичных материалов.
Оптимальное место Guetzli — этап предпродакшен-подготовки: когда набор изображений уже утверждён, размеры подобраны, композиция финальная, а задача сводится к получению качественного JPEG меньшего размера.
Что Guetzli делает хорошо
Главное достоинство Guetzli — качество сжатия на высоких настройках. Программа была создана именно как perceptual JPEG encoder, поэтому её смысл раскрывается на изображениях, где важна визуальная чистота.
Сильные стороны Guetzli:
-
создаёт обычный совместимый JPEG;
-
принимает PNG и JPEG на вход;
-
хорошо подходит для фотографий и веб-графики без прозрачности;
-
использует психовизуальный подход к сжатию;
-
может давать меньший размер при сопоставимом визуальном качестве;
-
имеет простой синтаксис запуска;
-
легко встраивается в скрипты;
-
не требует изменения формата на сайте;
-
распространяется как open source;
-
подходит для точечной оптимизации важных изображений.
Guetzli особенно полезен, когда сайт по разным причинам должен отдавать именно JPEG. Например, старый шаблон, старый движок, внешняя система или рекламная платформа не позволяют удобно использовать WebP/AVIF. В такой ситуации Guetzli помогает улучшить существующий JPEG-процесс без изменения клиентской совместимости.
Что в Guetzli неудобно
Guetzli требует технической дисциплины. Это не компрессор для всех, а инструмент с явными ограничениями.
Главные минусы:
-
нет графического интерфейса;
-
нет предпросмотра результата;
-
нет встроенного сравнения изображений;
-
нет кнопки Сжать папку;
-
нет управления размерами изображения;
-
нет поддержки WebP, AVIF, JPEG XL;
-
нет сохранения PNG;
-
нет поддержки прозрачности в итоговом файле;
-
нет progressive JPEG;
-
высокая нагрузка на CPU;
-
высокий расход оперативной памяти;
-
проект не развивается как активный современный продукт.
Отсутствие GUI — не просто вопрос удобства. В графических оптимизаторах пользователь видит изображение, размер, параметры, иногда даже разницу между исходником и результатом. В Guetzli всё нужно проверять самому: открыть файлы, сравнить, измерить размер, принять решение.
Высокий расход памяти тоже нельзя игнорировать. Если на компьютере 8 ГБ RAM, а пользователь запускает Guetzli на 24-мегапиксельной фотографии, система может начать активно использовать swap, замедлиться или завершить процесс. На сервере это ещё опаснее.
Таблица возможностей Guetzli
| Возможность | Есть ли в Guetzli | Комментарий |
|---|---|---|
| Сжатие JPEG | Да | Главный сценарий работы |
| PNG на входе | Да | Итоговый файл всё равно будет JPEG |
| JPEG на входе | Да | Лучше использовать качественный исходник |
| Выходной WebP | Нет | Guetzli создаёт только JPEG |
| Выходной AVIF | Нет | Современные кодеки не поддерживаются |
| Прозрачность | Нет | Альфа-канал PNG накладывается на чёрный фон |
| Графический интерфейс | Нет | Работа только через командную строку |
| Предпросмотр | Нет | Сравнение выполняется вручную |
| Пакетная обработка | Через скрипты | Встроенной панели batch-обработки нет |
| Параметр качества | Да | Используется --quality Q |
| Подробный вывод | Да | Используется --verbose |
| Лимит памяти | Да | Используется --memlimit M |
| Отключение лимита памяти | Да | Используется --nomemlimit |
| Progressive JPEG | Нет | Создаётся sequential JPEG |
| Интеграция в пайплайн | Да | Удобно через shell, Makefile, CI |
Типичные ошибки при работе с Guetzli
Команда guetzli не найдена
Ошибка вида command not found: guetzli означает, что программа не установлена или исполняемый файл не находится в PATH.
На macOS после установки через Homebrew стоит проверить:
brew list guetzliwhich guetzli
Если Guetzli собран вручную, нужно запускать его по относительному пути:
./bin/Release/guetzli input.png output.jpg
или перенести бинарный файл в каталог, доступный из PATH.
Перепутан порядок файлов
Правильный порядок такой:
guetzli input_filename output_filename
Сначала входной файл, затем выходной. Если перепутать их, можно получить ошибку или не тот результат. Безопаснее всегда использовать новое имя для результата:
guetzli photo.jpg photo-guetzli.jpg
Нехватка памяти
Если Guetzli сообщает о превышении лимита памяти или процесс завершается без результата, причина часто в размере изображения. Большая фотография требует много RAM. Решения:
-
уменьшить размер изображения до нужного веб-размера перед запуском Guetzli;
-
обработать файл на машине с большим объёмом памяти;
-
задать адекватный
--memlimit; -
не запускать много процессов Guetzli параллельно.
Слишком долгая обработка
Guetzli медленный по своей природе. Если изображение большое, ожидание в несколько минут не является признаком ошибки. Для контроля можно использовать --verbose:
guetzli --quality 95 --verbose input.jpg output.jpg
Если обработка неприемлемо долгая, лучше использовать MozJPEG, jpegoptim, ImageOptim, Squoosh или другой более быстрый инструмент.
PNG с прозрачностью получил чёрный фон
Это ожидаемое поведение: JPEG не поддерживает альфа-канал. Если нужен прозрачный фон, Guetzli использовать нельзя. Для таких файлов лучше оставить PNG, SVG или использовать WebP/AVIF с поддержкой прозрачности.
Результат почти не уменьшился
Причины могут быть разными:
-
исходный JPEG уже хорошо оптимизирован;
-
изображение содержит сложные детали;
-
выбрано слишком высокое качество;
-
исходник уже содержит артефакты;
-
файл не подходит для JPEG-компрессии;
-
другой энкодер лучше справляется с конкретным изображением.
В этом случае нужно сравнить Guetzli с MozJPEG и обычным экспортом из редактора, а не пытаться любой ценой добиться выигрыша именно Guetzli.
Качество стало хуже, чем ожидалось
Если результат выглядит плохо, стоит увеличить качество:
guetzli --quality 95 input.jpg output-q95.jpg
Также нужно проверить исходник. Guetzli не восстанавливает детали, потерянные при предыдущем сжатии. Если исходник плохой, итоговый JPEG тоже будет ограничен его качеством.
Сравнение фрагментов и визуальная проверка
Guetzli нужно оценивать на конкретных изображениях. Универсального значения --quality, которое идеально подходит для всех фотографий, не существует. Фотография с мягким фоном, портрет, предметная съёмка, скриншот и баннер ведут себя по-разному.
При проверке результата нужно смотреть не только на общий вид, но и на увеличенные фрагменты. JPEG-дефекты часто незаметны на масштабе 50%, но проявляются при 100% или 200%. Особенно важно проверять области вокруг глаз, волос, текста, контрастных границ и плавных цветовых переходов.
Практичный порядок сравнения:
-
открыть исходник и результат рядом;
-
установить масштаб 100%;
-
проверить лицо, глаза, линии, текст, фон;
-
увеличить до 200%;
-
найти зоны с артефактами;
-
вернуться к обычному масштабу;
-
оценить, заметны ли дефекты в реальном размере отображения;
-
сравнить размер файла;
-
принять решение.
Для сайта не всегда нужен идеальный вид на 200%. Если изображение показывается в блоке шириной 800 пикселей, а исходник имеет 3000 пикселей по ширине, правильнее сначала сделать ресайз, а уже потом кодировать. Guetzli не должен компенсировать неправильный размер изображения.
Почему сначала нужен ресайз, а потом Guetzli
Guetzli не изменяет геометрию изображения. Если у пользователя есть фотография 6000 × 4000 пикселей, а на сайте она показывается в размере 1200 × 800, запускать Guetzli на полной версии часто бессмысленно. Сначала нужно уменьшить изображение до реального размера публикации.
Правильный порядок:
-
открыть исходник в редакторе;
-
выполнить кадрирование;
-
сделать цветокоррекцию;
-
уменьшить размер до нужного веб-размера;
-
экспортировать качественный PNG или JPEG;
-
запустить Guetzli;
-
проверить итоговый JPEG.
Неправильный порядок:
-
взять огромную фотографию с камеры;
-
запустить Guetzli;
-
ждать десятки минут;
-
получить большой JPEG;
-
потом уменьшить его в CMS.
Во втором сценарии Guetzli тратит время и память на пиксели, которые всё равно не будут использоваться. Для веба размер изображения часто важнее, чем выбор энкодера. Хороший ресайз плюс аккуратное JPEG-сжатие обычно дают лучший практический результат.
Guetzli и metadata
Guetzli ориентирован на изображение и JPEG-вывод, а не на управление metadata. Программа не является менеджером EXIF, IPTC или XMP. Если в рабочем процессе важно сохранять, удалять или редактировать metadata, нужно использовать отдельные инструменты.
Для сайта часто наоборот полезно удалить лишние metadata, потому что они увеличивают размер файла. Но Guetzli не стоит воспринимать как замену ExifTool, ImageMagick или специализированных оптимизаторов metadata. Его задача — JPEG-кодирование.
Отдельно важен цветовой профиль. Guetzli исходит из sRGB с gamma 2.2 и игнорирует metadata цветового профиля. Для веба sRGB является стандартным практическим выбором, но при работе с Adobe RGB, Display P3 или нестандартными профилями лучше заранее привести изображение к sRGB в редакторе. Иначе результат может выглядеть не так, как ожидалось.
Guetzli и sequential JPEG
Guetzli создаёт sequential JPEG. Это обычный вариант JPEG, который загружается и декодируется последовательно. В браузере такой файл часто появляется сверху вниз по мере загрузки.
Progressive JPEG работает иначе: сначала показывается грубая версия всего изображения, затем она постепенно уточняется. Для веб-страниц progressive JPEG часто удобен, потому что пользователь быстрее видит общий контур изображения. MozJPEG и некоторые другие инструменты умеют делать progressive JPEG, а Guetzli — нет.
Это не делает Guetzli плохой программой, но ограничивает сценарии. Если для сайта принципиально важна progressive-загрузка, Guetzli может уступать MozJPEG, даже если отдельные изображения после Guetzli выглядят хорошо.
Когда Guetzli действительно стоит использовать
Guetzli оправдан, если совпадает несколько условий:
-
нужен именно JPEG;
-
изображение статичное и важное;
-
есть качественный исходник;
-
скорость обработки не критична;
-
пользователь готов проверять результат вручную;
-
файл будет много раз скачиваться посетителями;
-
экономия размера имеет значение;
-
есть достаточно RAM и CPU.
Примеры хороших сценариев:
-
главная фотография на лендинге;
-
иллюстрации в большой статье;
-
обложка раздела;
-
изображение товара, которое часто просматривают;
-
статичные баннеры;
-
документация с фотографиями;
-
сайт, где нельзя внедрить WebP/AVIF.
Плохие сценарии:
-
обработка тысяч пользовательских загрузок на лету;
-
маленькие иконки;
-
PNG с прозрачностью;
-
скриншоты интерфейса с мелким текстом;
-
изображения, где важна мгновенная обработка;
-
слабый shared-хостинг;
-
массовая оптимизация без визуальной проверки.
Сравнение с аналогами
Guetzli нужно сравнивать не с абстрактными программами для сжатия картинок, а с конкретными инструментами, которые решают похожие задачи.
Guetzli и MozJPEG
MozJPEG — один из главных практических конкурентов Guetzli в веб-оптимизации JPEG. Это тоже JPEG-энкодер, но он больше ориентирован на реальное массовое использование в веб-пайплайнах. MozJPEG поддерживает progressive JPEG, работает значительно быстрее и хорошо подходит для автоматической обработки больших наборов изображений.
Guetzli выигрывает там, где важен психовизуальный подход и можно позволить себе долгий расчёт. MozJPEG выигрывает там, где нужно быстро и стабильно обрабатывать много файлов.
| Критерий | Guetzli | MozJPEG |
|---|---|---|
| Тип | CLI JPEG encoder | CLI JPEG encoder |
| Основной акцент | Визуальное качество и плотность сжатия | Веб-оптимизация и практичность |
| Скорость | Низкая | Значительно выше |
| Progressive JPEG | Нет | Да |
| Пакетная обработка | Через скрипты | Через скрипты |
| Лучший сценарий | Точечная обработка важных JPEG | Массовая оптимизация для сайта |
Для современного сайта MozJPEG часто практичнее. Но Guetzli интересен как инструмент для тех изображений, где можно потратить время и вручную сравнить качество.
Guetzli и jpegoptim
jpegoptim — лёгкая CLI-утилита для оптимизации JPEG. Она удобна для удаления лишних данных, оптимизации таблиц и быстрой обработки файлов. Главное преимущество jpegoptim — скорость и простота.
Guetzli работает глубже: он перекодирует изображение с психовизуальной моделью. Но за это приходится платить временем и памятью. Если нужно быстро пройтись по папке с изображениями, jpegoptim будет удобнее. Если нужно получить качественный JPEG для одного важного изображения, Guetzli может быть интереснее.
| Критерий | Guetzli | jpegoptim |
|---|---|---|
| Скорость | Медленная | Быстрая |
| Расход памяти | Высокий | Низкий |
| Сценарий | Качественное перекодирование | Быстрая оптимизация |
| GUI | Нет | Нет |
| Подходит для cron-задач | Ограниченно | Да |
| Подходит для слабого VPS | Плохо | Хорошо |
jpegoptim хорошо использовать в автоматизации, где Guetzli слишком тяжёлый.
Guetzli и ImageOptim
ImageOptim — удобный графический оптимизатор для macOS. Пользователь перетаскивает изображения в окно, а программа применяет набор оптимизаторов. Это гораздо дружелюбнее, чем Guetzli в терминале.
Guetzli выигрывает прямым контролем над конкретным энкодером: пользователь точно знает, что запускает guetzli --quality 95. ImageOptim удобнее для повседневной работы: не нужно писать команды, можно быстро обработать разные форматы, проще работать с папками.
| Критерий | Guetzli | ImageOptim |
|---|---|---|
| Интерфейс | Командная строка | Графическое окно |
| Простота для новичка | Низкая | Высокая |
| Контроль Guetzli-параметров | Прямой | Зависит от настроек и используемых оптимизаторов |
| Форматы | Выход только JPEG | Разные форматы |
| Пакетная работа | Через скрипты | Через GUI |
| Лучший сценарий | Точная CLI-обработка | Быстрая ручная оптимизация на macOS |
ImageOptim лучше для редактора, дизайнера или контент-менеджера. Guetzli лучше для технического пользователя, которому нужен конкретный алгоритм.
Guetzli и FileOptimizer
FileOptimizer — Windows-программа для массовой оптимизации файлов разных типов. Она работает не только с изображениями и не ограничивается JPEG. У неё есть графический интерфейс, список файлов, настройки и пакетная обработка.
Guetzli узкий: он делает только JPEG. FileOptimizer универсальнее, но менее сфокусирован как отдельный perceptual JPEG encoder. Если пользователю нужно оптимизировать папку с разными файлами на Windows, FileOptimizer удобнее. Если нужно изучить и применить именно алгоритм Guetzli, отдельный запуск Guetzli понятнее.
| Критерий | Guetzli | FileOptimizer |
|---|---|---|
| Специализация | JPEG-энкодер | Универсальный оптимизатор |
| Интерфейс | CLI | GUI |
| Форматы | PNG/JPEG на входе, JPEG на выходе | Много типов файлов |
| Скорость | Низкая | Зависит от выбранных оптимизаторов |
| Контроль одного энкодера | Высокий | Ниже |
| Лучший сценарий | Точечная JPEG-компрессия | Массовая оптимизация на Windows |
Guetzli и Squoosh
Squoosh — веб-приложение для сжатия изображений с предпросмотром. Оно удобно тем, что пользователь сразу видит изображение, меняет параметры и сравнивает результат. Squoosh поддерживает разные кодеки и форматы, поэтому подходит для экспериментов с WebP, AVIF и JPEG.
Guetzli не имеет визуального интерфейса, но работает локально как CLI-программа и легко встраивается в скрипты. Squoosh удобнее для ручного подбора параметров, Guetzli — для воспроизводимого командного запуска.
| Критерий | Guetzli | Squoosh |
|---|---|---|
| Тип | CLI-программа | Веб-приложение |
| Предпросмотр | Нет | Да |
| Форматы | JPEG | JPEG, WebP, AVIF и другие |
| Автоматизация | Хорошая через скрипты | Ограниченная |
| Удобство ручного сравнения | Низкое | Высокое |
| Лучший сценарий | Локальный CLI-пайплайн | Визуальная настройка качества |
Для современного веба Squoosh часто полезнее как инструмент подбора параметров. Guetzli остаётся интересным там, где нужна именно локальная команда и стандартный JPEG.
Guetzli и libjpeg / libjpeg-turbo
libjpeg и libjpeg-turbo — базовые JPEG-библиотеки, на которых строится огромное количество программ. Их главное преимущество — скорость, стабильность и распространённость. libjpeg-turbo особенно силён за счёт высокой производительности.
Guetzli не пытается быть самым быстрым. Он пытается создать более плотный JPEG при высоком визуальном качестве. Поэтому прямое сравнение с libjpeg показывает философию Guetzli: меньше скорость, больше вычислений, больше внимания к восприятию.
| Критерий | Guetzli | libjpeg / libjpeg-turbo |
|---|---|---|
| Скорость кодирования | Низкая | Высокая |
| Массовое использование | Нишевое | Очень широкое |
| Психовизуальный подход | Да | В меньшей степени |
| Простота внедрения | Средняя | Высокая |
| Цель | Качество и размер | Скорость, совместимость, универсальность |
Если задача — быстро сохранять JPEG в приложении, libjpeg-turbo предпочтительнее. Если задача — выжать качественный результат из конкретного файла, Guetzli может быть полезен.
Общая таблица сравнения
| Программа | Тип | GUI | Главная сильная сторона | Где Guetzli лучше | Где Guetzli слабее |
|---|---|---|---|---|---|
| Guetzli | CLI JPEG encoder | Нет | Психовизуальное JPEG-сжатие | Точечное качество | Скорость, память, удобство |
| MozJPEG | CLI JPEG encoder | Нет | Практичная веб-оптимизация | Иногда лучше визуальная плотность | Нет progressive JPEG |
| jpegoptim | CLI optimizer | Нет | Быстрая оптимизация | Глубже перекодирует изображение | Гораздо медленнее |
| ImageOptim | GUI-оптимизатор | Да | Удобство на macOS | Прямой контроль команды | Нет удобного GUI |
| FileOptimizer | GUI/пакетный оптимизатор | Да | Массовая оптимизация | Уже и точнее по JPEG-задаче | Менее универсален |
| Squoosh | Веб-приложение | Да | Предпросмотр и современные кодеки | Легко автоматизировать локально | Нет визуального сравнения |
| libjpeg-turbo | JPEG-библиотека | Нет | Скорость | Визуальная компрессия | Очень медленный |
Как выбрать настройки Guetzli
Для практической работы можно использовать простую схему.
Для важных изображений:
guetzli --quality 95 input.png output-q95.jpg
Для баланса размера и качества:
guetzli --quality 92 input.png output-q92.jpg
Для более сильной компрессии:
guetzli --quality 90 input.png output-q90.jpg
Для нижней границы стандартного применения:
guetzli --quality 84 input.png output-q84.jpg
Рекомендации:
| Ситуация | Стартовое значение |
|---|---|
| Портрет, лицо, кожа | 95 |
| Предметная фотография | 92–95 |
| Фото для статьи | 90–95 |
| Большой фон на лендинге | 90–92 |
| Тест максимального сжатия | 84 |
| Скриншот с текстом | Лучше проверить другой формат |
Не стоит сразу ставить 84 для всех файлов. Это может дать меньший размер, но не всегда лучший результат. Guetzli ценен не только компрессией, но и качеством, а качество нужно проверять глазами.
Guetzli для фотографий, скриншотов и графики
JPEG лучше всего подходит для фотографий и сложных изображений с множеством оттенков. Guetzli наследует это свойство. На фотографиях программа может показать хороший результат: портреты, предметная съёмка, природа, городские кадры, интерьерные изображения.
Со скриншотами всё сложнее. Скриншоты интерфейса часто содержат мелкий текст, тонкие линии, ровные заливки и резкие границы. JPEG-компрессия может сделать буквы грязными, а линии — размазанными. Для таких файлов PNG или WebP lossless часто лучше.
Для логотипов и иконок Guetzli обычно не нужен. SVG, PNG или WebP справляются лучше, особенно если есть прозрачность. Guetzli можно использовать только если логотип встроен в фотографический баннер и итоговый файл должен быть JPEG.
| Тип изображения | Оценка Guetzli |
|---|---|
| Фотография | Хороший сценарий |
| Портрет | Хороший сценарий при высоком качестве |
| Фото товара | Хороший сценарий, но нужна проверка |
| Скриншот интерфейса | Риск артефактов |
| Логотип | Обычно не подходит |
| Иконка | Не подходит |
| PNG с прозрачностью | Не подходит |
| Баннер с фотографией | Подходит |
| Иллюстрация с плоскими цветами | Нужно сравнивать с PNG/WebP |
Работа с большими изображениями
Большие изображения — главный источник проблем с Guetzli. Фотография 6000 × 4000 пикселей содержит 24 мегапикселя. Для Guetzli это тяжёлая задача по памяти и времени. Если такая фотография нужна на сайте в размере 1200 × 800, сначала нужно уменьшить её.
Пример неправильной команды:
guetzli --quality 95 camera-original-6000x4000.jpg web.jpg
Пример правильного подхода:
# сначала ресайз в другом инструменте до нужного размера# затем Guetzliguetzli --quality 95 web-source-1200x800.png web-guetzli.jpg
Guetzli не занимается ресайзом. Если нужно уменьшить изображение, используют графический редактор, ImageMagick, GraphicsMagick, Photoshop, Affinity Photo, GIMP, Lightroom или другой инструмент. После ресайза Guetzli работает быстрее, потребляет меньше памяти и создаёт файл, соответствующий реальному размеру публикации.
Использование Guetzli в автоматизации
Guetzli можно встроить в Makefile. Например:
images/banner.jpg: images/banner-source.png guetzli --quality 92 images/banner-source.png images/banner.jpg
Такой подход удобен, если изображения являются частью проекта. При обновлении исходника можно пересобрать только нужный JPEG.
В shell-скрипте можно добавить проверку существования результата:
for file in *.png; do output="${file%.png}.jpg" if [ ! -f "$output" ]; then guetzli --quality 92 "$file" "$output" fidone
Можно также логировать размеры:
for file in *.png; do output="${file%.png}.jpg" echo "Processing $file" guetzli --quality 92 "$file" "$output" ls -lh "$file" "$output"done
Для больших проектов лучше не запускать Guetzli автоматически при каждом коммите. Кодирование может слишком сильно замедлить сборку. Практичнее запускать его вручную перед релизом или отдельной задачей.
Безопасность и лицензия
Guetzli распространяется как open source под лицензией Apache-2.0. Это удобно для разработчиков и компаний: программу можно изучать, собирать, включать в рабочие процессы и использовать в коммерческих проектах с соблюдением условий лицензии.
Скачивать Guetzli лучше из репозитория Google или через проверенный пакетный менеджер. Сторонние сайты могут предлагать сборки, оболочки или конвертеры с похожим названием, но это уже не обязательно оригинальный Guetzli. Для CLI-инструмента особенно важно понимать источник бинарного файла, потому что программа получает доступ к локальным файлам пользователя.
Проект Guetzli находится в архивном состоянии. Это значит, что не стоит ждать активного развития, новых функций, поддержки AVIF/WebP, появления GUI или серьёзной модернизации. Guetzli нужно воспринимать как завершённый нишевый инструмент, а не как живой универсальный оптимизатор изображений.
Практические советы по работе
Перед использованием Guetzli стоит принять несколько правил.
Первое: всегда сохранять исходники. Итоговый JPEG — файл с потерями. Если через год понадобится другая версия изображения, лучше вернуться к оригиналу, а не перекодировать уже сжатый JPEG.
Второе: не запускать Guetzli на огромных файлах без ресайза. Сначала нужно привести изображение к реальному размеру публикации.
Третье: не использовать Guetzli для прозрачных PNG. Прозрачность будет потеряна, а фон станет чёрным.
Четвёртое: сравнивать результат с MozJPEG. Иногда Guetzli даёт лучший визуальный результат, иногда MozJPEG оказывается быстрее и практичнее при сопоставимом размере.
Пятое: не применять одно значение качества ко всем изображениям без проверки. Для портрета и фоновой фотографии могут потребоваться разные настройки.
Шестое: не запускать много процессов Guetzli параллельно на слабой машине. Память закончится быстрее, чем покажется.
Седьмое: использовать --verbose при диагностике, но не включать его без необходимости в больших автоматических задачах.
Пример полного рабочего процесса
Допустим, есть изображение cover-source.png, которое будет использоваться как обложка статьи. Нужно получить качественный JPEG.
Создаём рабочую папку:
mkdir cover-guetzli-testcp cover-source.png cover-guetzli-test/cd cover-guetzli-test
Делаем несколько вариантов:
guetzli --quality 95 cover-source.png cover-q95.jpgguetzli --quality 92 cover-source.png cover-q92.jpgguetzli --quality 90 cover-source.png cover-q90.jpg
Смотрим размеры:
ls -lh cover-source.png cover-q95.jpg cover-q92.jpg cover-q90.jpg
Открываем все версии в просмотрщике изображений. Сначала смотрим общий вид, затем увеличиваем до 100%. Если cover-q90.jpg выглядит чисто и заметно меньше, можно выбрать его. Если на градиентах или линиях видны дефекты, лучше взять cover-q92.jpg или cover-q95.jpg.
Финальный файл переименовываем:
cp cover-q92.jpg cover.jpg
Затем загружаем cover.jpg на сайт, а cover-source.png сохраняем в архив исходников.
Итоговая оценка Guetzli
Guetzli — сильный, но узкий инструмент. Он не заменяет графические редакторы, не конкурирует с современными форматами WebP и AVIF как универсальное решение и не подходит для мгновенной массовой обработки. Его ценность в другом: Guetzli позволяет создать стандартный JPEG с акцентом на высокое визуальное качество и плотное сжатие.
Главные преимущества программы:
-
качественный perceptual JPEG encoding;
-
обычный совместимый JPEG на выходе;
-
простая командная логика;
-
работа с PNG и JPEG на входе;
-
хорошая пригодность для ручной оптимизации важных изображений;
-
открытый исходный код;
-
возможность встраивания в скрипты.
Главные недостатки:
-
очень медленное кодирование;
-
высокий расход памяти;
-
отсутствие GUI;
-
отсутствие предпросмотра;
-
отсутствие progressive JPEG;
-
отсутствие современных форматов;
-
риск неправильного применения к PNG с прозрачностью;
-
архивный статус проекта.
Guetzli стоит использовать там, где нужен именно JPEG, есть качественный исходник, а пользователь готов потратить время на проверку результата. Для современных сайтов с полноценным пайплайном WebP/AVIF Guetzli не должен быть единственным инструментом. Но для точечной оптимизации фотографий, баннеров и важных статичных изображений он остаётся полезным вариантом.
Стоит ли использовать Guetzli сегодня
Guetzli имеет смысл использовать сегодня, если задача сформулирована точно: нужен совместимый JPEG, высокое визуальное качество, минимальный разумный размер и возможность подождать. Это инструмент не для потока, а для аккуратной финальной подготовки.
Для массовой веб-оптимизации чаще практичнее MozJPEG, Squoosh, ImageOptim, FileOptimizer или современные кодеки. Для прозрачных изображений лучше PNG, WebP или AVIF. Для ресайза нужны другие программы. Для быстрого серверного pipeline Guetzli обычно слишком тяжёлый.
Но когда нужно взять важную фотографию, подготовить её вручную, сравнить несколько уровней качества и получить аккуратный JPEG без смены формата, Guetzli выполняет свою задачу уверенно. Именно в этом сценарии программа показывает себя лучше всего: как медленный, требовательный, но точный JPEG-энкодер для тех случаев, где качество важнее скорости.