Jpegoptim

Jpegoptim

Последняя версия: 1.5
Скачали: 8

Jpegoptim — узкая консольная утилита для оптимизации JPEG/JFIF-файлов. Она не заменяет фоторедактор, не работает как каталогизатор изображений и не предназначена для ретуши. Её задача — уменьшить размер JPEG-файла за счёт оптимизации кодирования, удаления выбранных метаданных и, при необходимости, повторного сохранения с ограничением качества или целевого размера. Программа запускается из терминала командой jpegoptim, принимает параметры и пути к файлам, после чего выводит результат обработки строкой с размером изображения, маркерами, статусом и количеством сэкономленных байтов.

Основной сценарий Jpegoptim — оптимизация JPEG для сайта, каталога товаров, фотогалереи, блога, документации или архива, где важен размер файлов. Утилита хорошо вписывается в рабочие процессы, где изображения проходят через скрипт: экспорт из редактора, проверка каталога перед публикацией, обработка пользовательских загрузок, подготовка ассетов для репозитория. В отличие от онлайн-компрессоров, Jpegoptim работает локально: файлы не отправляются в браузерный сервис, а обработка выполняется в файловой системе пользователя или сервера.

Jpegoptim поддерживает два принципиально разных подхода. В режиме без принудительного ограничения качества программа оптимизирует JPEG без понижения качества изображения, используя оптимизацию Huffman tables. В режиме с параметром --max= или --size= включается сжатие с потерями: программа может переупаковать изображение с более низким качеством, чтобы уменьшить размер файла. Это важное различие: одна команда подходит для аккуратного уменьшения веса уже готовых JPEG, другая — для ситуаций, где размер файла важнее сохранения исходного уровня компрессии.

Для каких задач нужен Jpegoptim

Jpegoptim полезен там, где нужно обрабатывать именно JPEG/JFIF, а не весь набор графических форматов. Он не сжимает PNG, SVG, WebP, AVIF, TIFF или RAW. Для PNG логичнее использовать OptiPNG, pngcrush или другой профильный инструмент; для универсальной пакетной обработки можно выбрать графические программы вроде XnView MP, Converseen, GIMP, IrfanView или FastStone Image Viewer. Jpegoptim выигрывает в другом: он прост для автоматизации, не требует окна приложения и стабильно выполняет одну техническую задачу.

Программа подходит для подготовки изображений перед публикацией на сайте. JPEG-файлы часто занимают больше места из-за неэффективных таблиц Хаффмана, встроенных миниатюр, EXIF, XMP, ICC-профилей, комментариев и других маркеров. Jpegoptim позволяет оставить метаданные, удалить их полностью или удалить только выбранные блоки. Для сайта это означает, что можно отдельно решить, что важнее: минимальный вес файла, сохранение цветового профиля, сохранение авторских данных, сохранение даты съёмки или очистка приватной информации.

Вторая типичная задача — пакетное сжатие JPG. Программа принимает несколько файлов за один запуск: jpegoptim *.jpg, jpegoptim photo1.jpg photo2.jpg photo3.jpg, а также списки через --files-from= и --files-stdin. Это удобно для каталогов с товарами, галерей, экспортированных подборок и статических ресурсов сайта. В версиях линейки 1.5 добавлена параллельная обработка через --workers=, поэтому большие наборы файлов можно распределять между несколькими рабочими процессами.

Третья задача — подготовка файлов под ограничение размера. Команда jpegoptim --size=100k photo.jpg пытается приблизить файл к указанному размеру в килобайтах, а jpegoptim --size=50% photo.jpg — к проценту от исходного размера. Такой режим нужен для аватаров, вложений, форм загрузки, личных кабинетов и CMS, где установлен предел на размер изображения. Параметр --size отключает режим оптимизации без потерь, поэтому его используют только после понимания компромисса между весом файла и качеством картинки.

Кому подходит Jpegoptim

Веб-разработчикам и администраторам сайтов

Веб-разработчик использует Jpegoptim как часть цепочки подготовки изображений. Утилита может работать после экспорта из Photoshop, Lightroom, GIMP, Figma, CMS или генератора статического сайта. Команда легко встраивается в shell-скрипт, Makefile, npm-script, CI/CD-пайплайн или задачу cron.

Для каталога сайта рабочий процесс выглядит так:

jpegoptim --max=85 --strip-all --all-progressive assets/images/*.jpg

Команда ограничивает качество сверху, удаляет метаданные и переводит файлы в progressive JPEG. Для контентного сайта такой сценарий уменьшает размер фотографий и убирает лишние блоки, которые не нужны посетителю страницы. Для изображений, где важен ICC-профиль, команда меняется:

jpegoptim --max=85 --strip-all --keep-icc assets/images/*.jpg

Такой вариант оставляет цветовой профиль, но удаляет остальные маркеры, которые не нужны при публикации.

Linux-пользователям и системным администраторам

В Linux Jpegoptim особенно удобен: программа запускается из терминала, поддерживает пакетную обработку и не требует графического окружения. Её можно применять на рабочей станции, сервере, VPS, в контейнере или внутри скрипта обслуживания медиакаталога.

Для администратора важны три особенности:

  • программа не требует интерактивного интерфейса;

  • параметры явно задаются в команде;

  • вывод можно использовать для контроля результата.

Пример для каталога пользовательских загрузок:

find /var/www/site/uploads -type f \( -name "*.jpg" -o -name "*.jpeg" \) \  -exec jpegoptim --max=85 --strip-all --preserve {} +

Параметр --preserve сохраняет время изменения файла. Это важно, когда дата файла используется CMS, системой резервного копирования или скриптом синхронизации.

Контент-менеджерам и редакторам сайтов

Контент-менеджеру Jpegoptim подходит, когда обработка изображений повторяется каждый день и её можно свести к готовой команде. Визуальной оценки результата программа не даёт, но зато убирает ручной цикл: открыть файл, сохранить для web, повторить. Для сотрудника, который загружает десятки карточек товаров, это полезно: изображения можно сложить в одну папку и обработать весь набор одной командой.

Для разовой задачи без терминала проще взять программу с графическим интерфейсом: Picosmos Tools, XnView, XnView MP, GIMP. Jpegoptim раскрывается именно там, где сжатие нужно повторять одинаковым способом.

Когда Jpegoptim не подходит

Jpegoptim не подходит для редактирования изображения: в нём нет кадрирования, цветокоррекции, удаления объектов, фильтров, слоёв, кистей, инструментов выделения, предпросмотра и истории действий. Это не недостаток реализации, а следствие формата программы. Она работает с готовым JPEG-файлом и меняет способ его хранения.

Программа не подходит для PNG-скриншотов, интерфейсных макетов, логотипов, схем и изображений с текстом, если исходный файл ещё можно хранить в PNG. JPEG плохо переносит резкие границы, плоские заливки и мелкий текст, поэтому принудительное сохранение таких материалов в JPG создаёт артефакты. Для этих задач лучше использовать PNG-оптимизаторы или редакторы, которые сохраняют изображение в подходящем формате.

Интерфейс Jpegoptim: что видит пользователь

У Jpegoptim нет главного окна, вкладок, кнопок, панели инструментов и меню настроек. Интерфейс программы — это командная строка. Пользователь вводит команду, параметры и имена файлов, а программа возвращает текстовый отчёт. Поэтому точные элементы интерфейса здесь выглядят не как кнопки Open или Save, а как параметры --help, --max, --size, --dest, --strip-all, --verbose, --totals.

Справка вызывается командой:

jpegoptim --help

В справке перечислены доступные параметры, краткий синтаксис и назначение опций. На скриншоте ниже показан вывод справки в Linux-терминале: пользователь видит список основных режимов, включая альтернативную папку назначения, ограничение качества, тестовый запуск, сохранение timestamps, вывод итогов и удаление метаданных.

Обычная строка результата содержит имя файла, размеры изображения, глубину цвета, найденные маркеры, статус и изменение размера. Пример:

photo.jpg 3120x4208 24bit EXIF ICC JFIF [OK] 1248473 --> 319204 bytes (74.43%), optimized.

Эта строка читается так:

Фрагмент выводаЧто означает
photo.jpgобработанный файл
3120x4208размеры изображения в пикселях
24bitглубина цвета
EXIF ICC JFIFнайденные маркеры и профили
[OK]файл распознан и обработан
1248473 --> 319204 bytesисходный и итоговый размер
(74.43%)экономия относительно исходного файла
optimizedфайл был оптимизирован

В режиме --verbose программа выводит больше служебных деталей. В режиме --quiet она работает тише и не перегружает терминал лишними строками. Для пакетной обработки удобен --totals: после обработки всех файлов Jpegoptim выводит общий итог. Для скриптов полезен --csv, потому что результат можно легче передавать в таблицу, лог или систему мониторинга.

Развёртывание и проверка запуска

Jpegoptim присутствует в пакетных системах популярных Unix-подобных платформ. В Debian пакет описывается как утилита для оптимизации JPEG, реализованная на C, с интерфейсом командной строки и назначением compressing. Homebrew содержит формулу jpegoptim с зависимостью от jpeg-turbo, а Cygwin предоставляет пакет для Windows-среды с зависимостью от cygwin и libjpeg8.

В Debian, Ubuntu и производных системах команда установки выглядит так:

sudo apt updatesudo apt install jpegoptim

На скриншоте показан этап установки через apt: терминал выводит список дополнительных пакетов, объём загрузки и вопрос подтверждения.

Установка Jpegoptim через apt в Linux

Для Fedora и RHEL-совместимых систем используется dnf:

sudo dnf install jpegoptim

Для Arch Linux используется pacman:

sudo pacman -S jpegoptim

Для macOS через Homebrew используется команда:

brew install jpegoptim

После развёртывания проверяется доступность бинарного файла:

jpegoptim --version

Затем проверяется справка:

jpegoptim --help

На Windows Jpegoptim работает как консольная программа. Запуск выполняется через Command Prompt, PowerShell, Cygwin или другую среду, где доступен исполняемый файл. В Windows-скриншоте видно, что программа не открывает отдельное графическое окно: пользователь работает с выводом в Command Prompt, а справка показывает те же принципы — путь назначения, принудительную оптимизацию, максимальное качество, тестовый запуск, перезапись, сохранение времени файла и удаление маркеров.

Jpegoptim в Windows Command Prompt

Системные требования

Jpegoptim относится к лёгким консольным утилитам. Главная техническая зависимость — библиотека JPEG. Для сборки требуется Independent JPEG Group libjpeg версии 6b или новее; также используется совместимость с libjpeg-turbo и mozjpeg. Тестируемые платформы в проекте: Linux, MacOS и Windows. Для Windows отдельно отмечается необходимость setargv.obj при сборке, чтобы работало разворачивание масок файлов.

КомпонентТребование или особенность
Тип программыконсольная утилита
Основной форматJPEG/JFIF
Зависимость при сборкеlibjpeg 6b или новее
Альтернативные JPEG-библиотекиlibjpeg-turbo, mozjpeg
Интерфейскомандная строка
Проверенные платформыLinux, MacOS, Windows
Графическая оболочкаотсутствует
Язык выводаанглийский
Работа без интернетада, обработка выполняется локально
Пакетная обработкачерез список файлов, маски, find, --files-from, --files-stdin
Ограничение по форматуне обрабатывает PNG, WebP, AVIF, GIF, TIFF, RAW

Для практического использования системные требования зависят не столько от самой программы, сколько от объёма изображений. Один JPEG обрабатывается быстро даже на слабом компьютере. Большие каталоги фотографий требуют больше времени на чтение, запись и перекодирование. При использовании --workers= нагрузка распределяется между несколькими процессами, поэтому ограничением становится CPU, скорость диска и количество одновременно обрабатываемых файлов.

На сервере Jpegoptim удобно запускать без графической подсистемы. Это полезно для VPS, контейнеров, CI/CD и автоматических задач. На рабочем компьютере программа занимает место обычной небольшой утилиты и не требует полноценной установки редактора изображений.

Основные возможности Jpegoptim

Оптимизация JPEG без понижения качества

Базовый режим Jpegoptim выполняет lossless-оптимизацию JPEG за счёт оптимизации Huffman tables. В этом режиме программа не ставит новый уровень качества и не пытается сделать изображение визуально хуже ради размера. Команда выглядит так:

Jpegoptim скриншот 1

jpegoptim photo.jpg

Этот режим подходит для уже подготовленных JPEG-файлов, где нельзя менять качество изображения. Экономия зависит от того, насколько эффективно файл был сохранён до обработки. Изображение, уже оптимизированное хорошим энкодером, уменьшится слабо или не изменится. Файл, сохранённый редактором с лишними данными и неэффективным кодированием, может заметно уменьшиться.

Сжатие с ограничением качества через --max

Параметр -m или --max= задаёт максимальный фактор качества от 0 до 100. При его использовании Jpegoptim отключает режим оптимизации без потерь и может повторно сохранить изображение. Если исходный JPEG был сохранён с качеством выше заданного значения, программа снижает качество до указанного потолка. Если файл уже сохранён с более низким качеством, Jpegoptim применяет lossless-оптимизацию и не повышает качество обратно.

Пример:

jpegoptim --max=85 photo.jpg

Значение 85 часто используют для фотографий на сайте, потому что оно даёт заметное уменьшение размера при умеренном риске видимых артефактов. Для превью и небольших картинок используют более низкие значения. Для изображений, которые нужно сохранять с высоким качеством, выбирают значения ближе к 90–95.

Сжатие до заданного размера через --size

Параметр -S или --size= пытается оптимизировать файл до заданного размера. Размер задаётся в килобайтах или в процентах от исходного файла. Пример:

jpegoptim --size=100k photo.jpgjpegoptim --size=50% photo.jpg

Такой режим нужен, когда внешняя система принимает файл только до определённого лимита. Jpegoptim подбирает компрессию под цель, но сама природа JPEG не гарантирует идеальный результат для каждого изображения. Детальная фотография с большим количеством мелких текстур хуже ужимается до малого размера, чем простая картинка с крупными областями похожих цветов.

Сохранение результата в отдельную папку

По умолчанию Jpegoptim изменяет исходные файлы, если результат получается меньше. Для безопасной обработки используется -d или --dest=
:

mkdir -p optimizedjpegoptim --dest=optimized photo.jpg

Такой режим оставляет исходник на месте и записывает оптимизированный файл в отдельную папку. Важная особенность: если файл не удалось уменьшить, Jpegoptim не создаёт копию в папке назначения. Это поведение защищает каталог результата от файлов, которые не получили выигрыша, но требует внимательности при сравнении количества исходных и итоговых файлов.

Удаление метаданных

Jpegoptim может удалять разные типы JPEG-маркеров. Полная очистка выполняется параметром:

jpegoptim --strip-all photo.jpg

При этом из итогового файла удаляются дополнительные маркеры, включая комментарии и распространённые блоки метаданных. Для более точной работы есть отдельные параметры:

jpegoptim --strip-exif photo.jpgjpegoptim --strip-icc photo.jpgjpegoptim --strip-xmp photo.jpgjpegoptim --strip-com photo.jpgjpegoptim --strip-iptc photo.jpg

По умолчанию Jpegoptim сохраняет распространённые маркеры: EXIF, IPTC, ICC, XMP и COM. JFIF и Adobe APP14 зависят от поведения libjpeg: JFIF регенерируется библиотекой, а Adobe marker может создаваться или опускаться в зависимости от цветового пространства и версии JPEG-библиотеки.

Сохранение нужных метаданных

Полная очистка не всегда правильна. ICC-профиль важен для корректной цветопередачи, EXIF может хранить дату съёмки, IPTC — авторские и редакционные данные, XMP — сведения из рабочих процессов Adobe и DAM-систем. Jpegoptim позволяет удалить почти всё, но оставить выбранные блоки:

jpegoptim --strip-all --keep-icc photo.jpgjpegoptim --strip-all --keep-exif --keep-iptc photo.jpgjpegoptim --strip-all --keep-xmp photo.jpg

Такой подход удобен для публикации, где нужно убрать приватные данные, но сохранить профиль цвета или авторскую информацию.

Progressive JPEG

Параметр --all-progressive принудительно делает выходные файлы progressive JPEG:

jpegoptim --all-progressive photo.jpg

Progressive JPEG загружается в несколько проходов: сначала появляется грубый вариант изображения, затем детализация улучшается. Для веб-страниц это может быть полезно, потому что пользователь раньше видит содержимое картинки при медленной сети. Обратный режим --all-normal переводит файлы в обычный непоследовательный JPEG. В новых ветках также доступен --auto-mode, который выбирает progressive или non-progressive в зависимости от меньшего итогового размера.

Работа со stdin/stdout

Jpegoptim поддерживает работу через стандартный ввод и стандартный вывод:

cat photo.jpg | jpegoptim --stdin > optimized.jpgjpegoptim --stdout photo.jpg > optimized.jpg

Такой режим полезен в Unix-конвейерах, когда файл проходит через несколько инструментов. При использовании --stdin обрабатывается один входной JPEG, а другие файлы из командной строки игнорируются. Параметр --stdout отправляет результат в стандартный вывод, что удобно для скриптов, но требует аккуратности: бинарный JPEG нельзя выводить в обычный терминал без перенаправления в файл.

Списки файлов

Для большого каталога удобно передавать файлы через список:

jpegoptim --files-from=list.txt

Файл list.txt должен содержать по одному имени файла в строке. Также можно читать список из стандартного ввода:

find images -type f -name "*.jpg" | jpegoptim --files-stdin

Это удобнее, чем передавать слишком длинный список файлов прямо в командную строку. Такой подход полезен для больших проектов, где количество изображений превышает лимиты оболочки.

Параллельная обработка

Параметр --workers= задаёт максимальное количество параллельных процессов:

jpegoptim --workers=4 --max=85 --strip-all images/*.jpg

На многоядерном процессоре это ускоряет обработку большого набора изображений. Значение выбирают с учётом CPU и диска: слишком большое число рабочих процессов может перегрузить накопитель и ухудшить общую скорость. Для SSD и локального каталога можно использовать больше процессов; для сетевого хранилища лучше ограничиться меньшим значением.

Как пользоваться Jpegoptim: практические команды

Проверка справки и версии

Начать работу лучше с проверки, что команда доступна в терминале:

jpegoptim --versionjpegoptim --help

--version выводит версию программы, --help показывает справку по параметрам. В Jpegoptim справка важнее, чем в графических редакторах: она заменяет меню настроек и подсказывает точные названия опций.

Оптимизация одного файла

Базовая команда:

jpegoptim photo.jpg

Программа оптимизирует файл на месте. Если итоговый размер меньше, исходник заменяется оптимизированной версией. Если уменьшения нет, файл пропускается. Для первого запуска безопаснее использовать --noaction:

jpegoptim --noaction photo.jpg

Параметр --noaction не меняет файл, а только показывает, что произойдёт при реальной обработке. Это полезно перед запуском на папке с большим количеством фотографий.

Обработка всех JPG в папке

Для файлов с расширением .jpg в текущем каталоге:

jpegoptim *.jpg

Для .jpeg:

jpegoptim *.jpeg

Для обоих расширений в дереве каталогов:

find images -type f \( -name "*.jpg" -o -name "*.jpeg" \) \  -exec jpegoptim {} +

Команда find передаёт найденные файлы пакетами. Это быстрее, чем запускать отдельный процесс для каждого файла.

Сохранение результата отдельно

Безопасный вариант для первой обработки:

mkdir -p optimizedjpegoptim --dest=optimized *.jpg

Для сжатия с качеством и очисткой метаданных:

mkdir -p optimizedjpegoptim --max=85 --strip-all --dest=optimized *.jpg

Такой подход удобен для сравнения исходников и результата. После обработки можно проверить размеры:

ls -lh *.jpg optimized/*.jpg

Сжатие с ограничением качества

Для фотографий на сайте:

jpegoptim --max=85 --strip-all photo.jpg

Для превью:

jpegoptim --max=75 --strip-all preview.jpg

Для изображений, где нужно сохранить цветовой профиль:

jpegoptim --max=85 --strip-all --keep-icc photo.jpg

Понижение качества нельзя отменить, если исходник был перезаписан. Поэтому для ценных фотографий используют --dest, резервную папку или систему контроля версий.

Сжатие до заданного размера

Для ограничения до 100 КБ:

jpegoptim --size=100k photo.jpg

Для ограничения до 60% от исходного размера:

jpegoptim --size=60% photo.jpg

Для тестового просмотра:

jpegoptim --noaction --size=100k photo.jpg

--size полезен для внешних лимитов, но хуже подходит для единообразного качества на наборе изображений. Две разные фотографии могут получить разные уровни визуальных потерь, потому что программа подгоняет размер, а не одинаковое качество.

Удаление EXIF перед публикацией

Для очистки всех метаданных:

jpegoptim --strip-all photo.jpg

Для удаления только EXIF:

jpegoptim --strip-exif photo.jpg

Для удаления EXIF и XMP:

jpegoptim --strip-exif --strip-xmp photo.jpg

Этот сценарий нужен перед публикацией фотографий, где не должны оставаться геолокация, модель камеры, дата съёмки, параметры экспозиции или редакционные данные.

Сохранение ICC-профиля

Для сайта с фотографиями товаров, где важна цветопередача:

Jpegoptim скриншот 2

jpegoptim --max=85 --strip-all --keep-icc product.jpg

Такой режим удаляет лишние данные, но оставляет профиль цвета. Для интернет-магазина это лучше, чем полная очистка без проверки, потому что неправильная цветопередача может исказить оттенки товара.

Создание progressive JPEG

Для одной фотографии:

jpegoptim --all-progressive photo.jpg

Для всего каталога:

jpegoptim --all-progressive *.jpg

Для принудительного преобразования используют вместе с --force, если нужно перевести файлы даже тогда, когда размер не уменьшается:

jpegoptim --force --all-progressive *.jpg

--force применяют осознанно: он заставляет оптимизировать даже тогда, когда результат может оказаться больше исходника.

Итоговая статистика по папке

Для пакетной обработки с итогом:

jpegoptim --max=85 --strip-all --totals *.jpg

--totals выводит общий результат после обработки всех файлов. Для больших каталогов это удобнее, чем вручную складывать экономию по каждой строке.

Параметры Jpegoptim в работе

ПараметрЗадачаКогда использоватьЧто учитывать
-h, --helpвывести справкуперед настройкой командысправка заменяет меню программы
-d
, --dest=
сохранить результат в другую папкупри первом запуске, при обработке ценных файловнеизменённые файлы не копируются в папку назначения
-f, --forceпринудить оптимизациюпри переводе baseline/progressive, специальных сценарияхрезультат может стать больше
-m , --max=ограничить качестводля сжатия фото на сайтотключает режим без потерь
-S , --size=приблизить файл к размерудля лимитов загрузкиотключает режим без потерь
-n, --noactionпоказать результат без записиперед массовой обработкойфайл не изменяется
-T
, --threshold=
не менять файл при малом выигрышепри осторожной оптимизации архивазначение задаётся в процентах
-b, --csvвывод CSVдля логов и таблицудобно для автоматизации
-o, --overwriteперезаписывать файл в папке назначениявместе с --destбез него уже существующий файл защищён
-p, --preserveсохранить timestampsдля CMS и синхронизациине меняет время модификации
-P, --preserve-permsсохранить права через overwrite-режимдля системных каталоговсоздаётся временная резервная копия .jpegoptim.bak
-q, --quietтихий режимдля скриптовменьше вывода в терминал
-t, --totalsобщий итогдля пачки файловполезно после *.jpg
-v, --verboseподробный режимдиагностика и обучениевывод становится объёмнее
-w , --workers=параллельная обработкабольшие каталогичисло процессов подбирают под CPU и диск
--all-progressiveсделать progressive JPEGвеб-публикациядля принудительного преобразования применяют с --force
--all-normalсделать non-progressive JPEGсовместимость со старым конвейеромтоже может требовать --force
--auto-modeвыбрать progressive/non-progressive по меньшему размеруавтоматическая оптимизациясохраняет фокус на размере
--stdoutотправить результат в stdoutконвейеры и скриптынужен вывод в файл или другой процесс
--stdinчитать JPEG из stdinUnix pipelineобрабатывается один входной файл
--files-from=читать список файлов из файладлинные спискиодин путь в строке
--files-stdinчитать список из stdinсвязка с findудобно для дерева каталогов
--strip-allудалить маркерыпубликация без лишних данныхможно сочетать с --keep-*
--strip-exifудалить EXIFубрать данные камеры и геометкине трогает другие блоки
--strip-iccудалить ICCминимизация весаможет повлиять на цвет
--strip-xmpудалить XMPочистка рабочих данныхважно для файлов из редакторов
--strip-iptcудалить IPTC/APP13убрать редакционные и авторские блокине применять без проверки в медиаархивах
--keep-exifоставить EXIF при --strip-allархив, дата съёмкиприватные данные тоже сохраняются
--keep-iccоставить ICC при --strip-allтоварные фото, цветувеличивает файл, но сохраняет профиль
--keep-xmpоставить XMPрабочие процессы Adobe/DAMнужно не для всех сайтов
--keep-iptcоставить IPTCредакционные фотополезно для авторских данных

Работа с метаданными JPEG

JPEG-файл содержит не только сжатые пиксели. Внутри могут находиться маркеры EXIF, IPTC, ICC, XMP, COM, JFIF, JFXX, Adobe APP14 и другие блоки. Jpegoptim умеет управлять этими маркерами, поэтому его часто используют не только как компрессор, но и как инструмент очистки изображения перед публикацией.

По умолчанию Jpegoptim сохраняет распространённые метаданные: EXIF, IPTC, ICC, XMP и COM. Это безопаснее для архива, потому что дата съёмки, цветовой профиль, комментарии и редакционные данные остаются в файле. Но для сайта такой подход не всегда оптимален: EXIF может содержать геолокацию, XMP — рабочую историю, ICC — дополнительный вес, COM — комментарии, которые не нужны пользователю страницы.

Когда использовать --strip-all

--strip-all подходит для публичных изображений, где не нужно сохранять служебные данные. Например, для иллюстраций в блоге, превью, карточек каталога и рекламных баннеров:

jpegoptim --strip-all image.jpg

Для веб-разработчика это самый простой способ убрать лишние блоки. Но полная очистка не должна применяться автоматически к архивам фотографов, юридически значимым снимкам, медицинским изображениям, материалам с авторскими данными и товарным фото, где цветовой профиль влияет на восприятие оттенков.

Когда сохранять EXIF

EXIF сохраняют, когда важна дата съёмки, модель камеры, объектив, параметры экспозиции или координаты. Для личного архива и фотобанка это полезно. Для публичной страницы с частными фотографиями EXIF чаще удаляют, потому что геоданные и техническая информация могут раскрывать лишние сведения.

Команда для очистки всего, кроме EXIF:

jpegoptim --strip-all --keep-exif photo.jpg

Когда сохранять ICC

ICC-профиль нужен для корректной интерпретации цветов. Если удалить профиль из изображения, созданного в специфическом цветовом пространстве, оттенки могут измениться при отображении. Для товарных фотографий, портфолио, полиграфической подготовки и визуально чувствительных материалов ICC лучше сохранить:

jpegoptim --strip-all --keep-icc product.jpg

Когда сохранять IPTC и XMP

IPTC и XMP часто встречаются в редакционных и профессиональных процессах. Они могут хранить подписи, автора, права, категории, теги и данные из медиаменеджеров. Для публичной оптимизации обычных изображений эти блоки удаляют. Для редакционной базы и фототеки их оставляют:

jpegoptim --strip-all --keep-iptc --keep-xmp editorial.jpg

Качество сжатия: lossless, lossy и реальные компромиссы

Jpegoptim важно оценивать не по принципу сжимает сильнее или слабее, а по выбранному режиму. Без --max и --size программа работает как оптимизатор JPEG-структуры. С параметрами качества или размера она становится инструментом повторного сжатия. Эти режимы решают разные задачи.

Lossless-оптимизация подходит для файлов, которые нельзя визуально ухудшать. Это изображения для архива, финальные материалы клиента, фотографии, где уже выбран нужный уровень качества, и файлы, которые проходят контроль перед публикацией. Команда:

jpegoptim photo.jpg

В этом режиме результат может быть умеренным. Файл уменьшается только за счёт более эффективного кодирования и очистки выбранных данных, если пользователь добавляет параметры strip. Ожидать уменьшения в несколько раз от каждого JPEG не нужно.

Lossy-сжатие подходит для web-версий. Команда:

jpegoptim --max=85 --strip-all photo.jpg

Смысл --max=85 — ограничить качество сверху. Если исходный файл был сохранён с качеством выше 85, он будет перекодирован. Если исходный файл уже ниже этого порога, программа не станет повышать качество и раздувать файл.

Сжатие до размера решает другую задачу:

jpegoptim --size=100k photo.jpg

Здесь приоритет — размер файла. Визуальное качество подчиняется ограничению. Такой режим удобен для форм загрузки, но опасен для одинаковой обработки галереи: простая фотография может выглядеть нормально, а сложная с листвой, волосами, тканью или шумом получит заметные артефакты.

РежимКомандаЧто меняетсяПодходящий сценарий
Lossless-оптимизацияjpegoptim photo.jpgоптимизируется кодированиеархив, осторожная обработка
Очистка метаданныхjpegoptim --strip-all photo.jpgудаляются маркерыпубликация без лишних данных
Ограничение качестваjpegoptim --max=85 photo.jpgкачество ограничивается сверхуweb-версии фотографий
Целевой размерjpegoptim --size=100k photo.jpgпрограмма подгоняет файл под размерлимиты загрузки
Progressive JPEGjpegoptim --all-progressive photo.jpgменяется способ загрузки JPEGвеб-страницы

Пакетная обработка и автоматизация

Пакетное сжатие JPEG — одно из главных преимуществ Jpegoptim. Графический редактор удобен для одного файла, но становится медленным при сотнях изображений. Jpegoptim получает список файлов и обрабатывает их одинаковым способом, поэтому результат проще повторить.

Обработка каталога через маску

Самый простой вариант:

jpegoptim --max=85 --strip-all *.jpg

Команда берёт все .jpg в текущей папке. Для .jpeg нужно отдельное выражение:

jpegoptim --max=85 --strip-all *.jpeg

Если каталог содержит и .jpg, и .jpeg, удобнее использовать find:

find . -type f \( -name "*.jpg" -o -name "*.jpeg" \) \  -exec jpegoptim --max=85 --strip-all {} +

Папка результата для безопасной обработки

Перед массовой обработкой лучше создать отдельную директорию:

mkdir -p optimizedjpegoptim --max=85 --strip-all --dest=optimized *.jpg

Для дерева каталогов --dest требует продуманной структуры, потому что программа сохраняет файлы в указанную папку. Если нужно сохранить исходное дерево, обычно используют shell-скрипт, который создаёт такие же подпапки и передаёт файлы по одному.

Список файлов из текстового файла

Для выборочной обработки:

jpegoptim --files-from=images.txt --max=85 --strip-all

Содержимое images.txt:

images/photo-01.jpgimages/photo-02.jpguploads/banner.jpg

Такой метод удобен, когда список файлов формируется другой программой: CMS, системой проверки размера, скриптом поиска новых изображений или отчётом из git.

Чтение списка из stdin

Команда:

find uploads -type f -name "*.jpg" | jpegoptim --files-stdin --max=85 --strip-all

find находит файлы, а Jpegoptim читает их по одному имени в строке. Такой вариант подходит для автоматизации, где список создаётся динамически.

Параллельная обработка

Для ускорения:

jpegoptim --workers=4 --max=85 --strip-all *.jpg

Количество рабочих процессов подбирают по системе. Для четырёхъядерного компьютера значение 4 выглядит логичным стартом. Для сервера с большим количеством ядер можно увеличить параметр, но нужно следить за диском: JPEG-файлы читаются и записываются, поэтому медленный HDD или сетевой диск может стать узким местом.

Контроль результата

После обработки каталога полезно сравнить размеры:

du -sh imagesdu -sh optimized

Для контроля отдельных файлов:

ls -lh photo.jpg optimized/photo.jpg

Для логов:

jpegoptim --csv --totals --max=85 --strip-all *.jpg > jpegoptim-report.csv

CSV-вывод удобен, когда нужно передать результат в таблицу или сохранить отчёт по обработке.

Безопасный рабочий процесс

Jpegoptim по умолчанию изменяет исходные файлы, поэтому безопасный рабочий процесс строится вокруг копий. Это особенно важно при работе с фотографиями, которые нельзя повторно получить.

Рекомендуемый порядок:

  1. Создать копию исходной папки.

  2. Запустить jpegoptim --noaction на нескольких файлах.

  3. Выбрать режим: lossless, --max, --size, --strip-all.

  4. Для первой массовой обработки использовать --dest.

  5. Сравнить размер и визуальное качество.

  6. Проверить метаданные, если они важны.

    Jpegoptim скриншот 3

  7. Только после проверки заменять исходные файлы.

Пример безопасной команды:

mkdir -p optimizedjpegoptim --noaction --max=85 --strip-all *.jpgjpegoptim --max=85 --strip-all --dest=optimized *.jpg

Для фотографий товаров перед заменой стоит открыть несколько файлов из optimized, проверить цвет и убедиться, что удаление ICC не исказило оттенки. Если цвет изменился, команда должна сохранять профиль:

jpegoptim --max=85 --strip-all --keep-icc --dest=optimized *.jpg

Для архива семейных фотографий лучше не использовать --strip-all, если важны дата, геолокация и параметры съёмки. В этом случае безопаснее выполнить только базовую оптимизацию или оставить EXIF:

jpegoptim --strip-all --keep-exif --dest=optimized *.jpg

Преимущества и ограничения

Плюсы

  • Jpegoptim выполняет конкретную задачу без лишнего интерфейса: оптимизирует и сжимает JPEG/JFIF.

  • Программа подходит для автоматизации, потому что управляется параметрами командной строки.

  • Есть режим без принудительного снижения качества через оптимизацию Huffman tables.

  • Есть lossy-режим через --max=.

  • Есть режим приближения к целевому размеру через --size=.

  • Поддерживается пакетная обработка файлов.

  • Есть управление метаданными: --strip-all, отдельные --strip-* и --keep-*.

  • Есть сохранение результата в отдельную папку через --dest.

  • Есть тестовый запуск без изменения файлов через --noaction.

  • Поддерживаются stdin/stdout, списки файлов и CSV-вывод.

  • Параллельная обработка через --workers помогает на больших наборах JPEG.

  • Программа работает локально и не требует отправки фотографий в онлайн-сервис.

  • Исходный код открыт, а репозиторий использует GPL-3.0 license.

Минусы

  • Графического интерфейса нет: все действия выполняются через терминал.

  • По умолчанию программа изменяет исходные файлы, поэтому нужны копии или --dest.

  • Поддерживается именно JPEG/JFIF; для PNG, WebP, AVIF и других форматов нужны другие инструменты.

  • Режимы --max и --size могут ухудшить изображение, потому что включают сжатие с потерями.

  • Полная очистка --strip-all может удалить важные данные: EXIF, ICC, IPTC, XMP.

  • Для визуальной оценки результата нужен внешний просмотрщик или редактор.

  • --force может создать файл больше исходного.

  • При агрессивном целевом размере на сложных фотографиях появляются JPEG-артефакты.

  • Для Windows работа остаётся консольной, без привычных кнопок и окон.

Сравнение с аналогами

Jpegoptim корректно сравнивать не с фоторедакторами вообще, а с инструментами, которые решают близкую задачу: уменьшение веса изображений, оптимизация JPEG, обработка метаданных и автоматизация. У каждой альтернативы другой баланс между простотой, форматами, контролем качества и интерфейсом.

ИнструментТипФорматыСильная сторонаОграничение относительно Jpegoptim
JpegoptimCLI-утилитаJPEG/JFIFбыстрая локальная оптимизация JPEG, --max, --size, --strip-*, --workersнет GUI, нет других форматов
jpegtranCLI-утилитаJPEG/JFIFlossless-трансформации JPEG, progressive, rotate, optimizeне меняет качество как --max в Jpegoptim
MozJPEGJPEG-энкодер и набор инструментовJPEGболее эффективное JPEG-кодирование для webсложнее для пользователя, шире задача кодирования
ImageOptimGUI для macOSнесколько web-форматовdrag-and-drop, объединение нескольких оптимизаторовтолько macOS-приложение для GUI-сценариев
TinyPNG / Tinifyонлайн-сервис и APIWebP, AVIF, JPEG, PNG, APNG, JXLбраузерная обработка и APIфайлы загружаются во внешний сервис
OptiPNGCLI-утилитаPNG, BMP, GIF, PNM, TIFF как входные форматыlossless-оптимизация PNGне оптимизирует JPEG
ImageMagickCLI-набормного форматовизменение размера, конвертация, пакетные операциишире и сложнее, опасен при in-place обработке через mogrify
FileOptimizerWindows-программамного форматовуниверсальная lossless-оптимизация файловне такой простой CLI-инструмент для серверного JPEG-пайплайна
GIMPграфический редактормного форматовручное редактирование и экспортне так удобен для чистой массовой JPEG-оптимизации

Jpegoptim и jpegtran

jpegtran выполняет lossless-преобразования JPEG: перевод baseline в progressive, оптимизацию энтропийного кодирования, поворот, работу с DCT-коэффициентами без полного декодирования изображения. Он не предназначен для изменения качества изображения через параметр, аналогичный --max в Jpegoptim. Поэтому jpegtran выбирают для бездеградационных трансформаций, а Jpegoptim — когда нужны и lossless-оптимизация, и управляемое сжатие JPEG через качество или размер.

Jpegoptim и MozJPEG

MozJPEG — более глубокий инструмент для эффективного JPEG-кодирования. Он улучшает эффективность JPEG-компрессии и совместим со стандартными JPEG-декодерами. MozJPEG полезен, когда нужно получить наилучшее соотношение качества и размера при кодировании. Jpegoptim проще: он берёт существующие JPEG-файлы и оптимизирует их в командной строке. Для сайта с готовой папкой .jpg Jpegoptim быстрее внедрить; для собственной системы генерации изображений MozJPEG даёт больше контроля на уровне энкодера.

Jpegoptim и ImageOptim

ImageOptim — графическое приложение для macOS. Оно удаляет метаданные, сжимает изображения без видимой потери качества и объединяет несколько оптимизаторов, включая инструменты для JPEG и PNG. В интерфейсе используется drag-and-drop, поэтому ImageOptim удобнее для пользователя, которому не нужен терминал. Jpegoptim лучше подходит для Linux-сервера, скрипта, CI/CD и регулярной обработки каталога.

Для пользователя macOS с разовыми задачами ImageOptim проще. Для автоматической подготовки JPEG в проекте Jpegoptim прямее и прозрачнее, потому что каждая настройка задана параметром команды.

Jpegoptim и TinyPNG / Tinify

TinyPNG и Tinify работают как web-инструмент и API для оптимизации изображений. Они поддерживают современные web-форматы и браузерный сценарий drag-and-drop. TinyPNG использует lossy-компрессию для WebP, AVIF, JPEG и PNG, а также удаляет лишние метаданные. Бесплатный web-режим ограничен количеством файлов за раз и размером одного файла.

Jpegoptim отличается тем, что работает локально и не зависит от внешнего сервиса. Это важно для приватных фотографий, закрытых проектов, серверных каталогов и пакетной обработки без передачи файлов третьей стороне.

Jpegoptim и OptiPNG

OptiPNG решает другую задачу: он оптимизирует PNG. Сравнивать его с Jpegoptim напрямую нельзя как замену, потому что форматы разные. В реальном проекте они часто используются вместе:

find assets -type f -name "*.jpg" -exec jpegoptim --max=85 --strip-all {} +find assets -type f -name "*.png" -exec optipng -o5 {} +

Jpegoptim берёт JPEG-фотографии, OptiPNG — PNG-иконки, скриншоты, схемы и интерфейсные изображения. Для смешанного каталога это не конкуренты, а пара инструментов.

Jpegoptim и ImageMagick

ImageMagick шире: он меняет размер, конвертирует форматы, применяет фильтры, работает с большим набором графических файлов. Для JPEG он может менять качество через convert или mogrify. Но ImageMagick — универсальный инструмент, а Jpegoptim — специализированный. Когда нужно только сжатие JPEG и очистка метаданных, команда Jpegoptim короче и понятнее.

ImageMagick полезен перед Jpegoptim, если нужно сначала уменьшить геометрию:

mogrify -resize 1600x1600\> *.jpgjpegoptim --max=85 --strip-all *.jpg

Такой порядок логичен: сначала меняется размер изображения, затем оптимизируется итоговый JPEG.

Сценарии применения

Подготовка изображений для сайта

Для сайта важны три параметра: визуальное качество, размер файла и отсутствие лишних метаданных. Jpegoptim закрывает эти задачи одной командой:

jpegoptim --max=85 --strip-all --all-progressive *.jpg

Для фотографий товаров с важной цветопередачей команда меняется:

jpegoptim --max=85 --strip-all --keep-icc --all-progressive *.jpg

Для личного блога, где не нужны данные камеры, --strip-all убирает EXIF и другие блоки. Для профессионального портфолио можно оставить ICC, чтобы сохранить корректное отображение цвета.

Оптимизация фотоархива без изменения структуры

Для архива лучше начинать с lossless-режима:

jpegoptim --preserve *.jpg

--preserve сохраняет дату изменения файла, а отсутствие --max и --size не включает принудительное сжатие с потерями. Если нужно удалить только комментарии, но сохранить EXIF:

jpegoptim --strip-com --preserve *.jpg

Архивные фотографии не стоит обрабатывать агрессивным --strip-all, если дата съёмки, координаты и параметры камеры важны.

Автоматическая обработка после экспорта

После экспорта из редактора изображения можно прогнать через Jpegoptim. Для папки export:

jpegoptim --max=88 --strip-all --keep-icc export/*.jpg

Такой подход удобен для повторяемой публикации: дизайнер экспортирует файлы, скрипт приводит их к нужному размеру и удаляет лишние блоки. При одинаковой команде результат предсказуемее, чем при ручном сохранении каждого изображения.

Сжатие перед отправкой по почте

Если почтовый сервис ограничивает размер вложений, можно создать отдельную папку:

Jpegoptim скриншот 4

mkdir -p mailjpegoptim --max=80 --strip-all --dest=mail *.jpg

Исходники остаются без изменений, а в папке mail лежат уменьшенные копии. Для ещё более строгого лимита:

jpegoptim --size=500k --strip-all --dest=mail *.jpg

Очистка метаданных перед публикацией

Для публичной публикации фотографий:

jpegoptim --strip-all public/*.jpg

Для публикации с сохранением авторских IPTC-данных:

jpegoptim --strip-all --keep-iptc public/*.jpg

Для публикации с сохранением цветового профиля:

jpegoptim --strip-all --keep-icc public/*.jpg

Выбор зависит от задачи. Для приватности удаляют больше. Для редакционной и коммерческой работы оставляют те данные, которые нужны в процессе.

Интеграция в сборку проекта

В web-проекте Jpegoptim можно запускать как шаг подготовки ассетов:

find public/images -type f \( -name "*.jpg" -o -name "*.jpeg" \) \  -exec jpegoptim --max=85 --strip-all --all-progressive {} +

Для отчёта:

find public/images -type f \( -name "*.jpg" -o -name "*.jpeg" \) \  -print | jpegoptim --files-stdin --csv --totals --max=85 --strip-all

Для CI/CD важно, чтобы команда завершалась предсказуемо и не требовала действий в интерфейсе. Jpegoptim подходит для такого режима лучше, чем графический редактор.

Ошибки и меры предосторожности

Запуск без резервной копии

Главная ошибка — запускать агрессивное сжатие по исходникам без копии:

jpegoptim --max=70 --strip-all *.jpg

После такой команды файлы будут перезаписаны. Если качество оказалось слишком низким или были удалены важные метаданные, восстановить их из обработанного JPEG нельзя. Безопасный вариант:

mkdir -p optimizedjpegoptim --max=70 --strip-all --dest=optimized *.jpg

Случайное удаление EXIF и ICC

--strip-all удобен, но он не различает важные и неважные данные по смыслу. Для фотографа EXIF может быть частью архива. Для интернет-магазина ICC может влиять на цвет. Для редакции IPTC может хранить подпись, автора и права. Перед массовой очисткой нужно решить, какие маркеры сохранять.

Неверный выбор --max

Значение качества не является универсальным. Для больших фотографий на сайте 85 часто даёт хороший баланс, но для изображений с текстом, тонкими линиями, схемами и UI-элементами JPEG сам по себе не лучший формат. Если исходник — скриншот интерфейса, лучше вернуться к PNG и оптимизировать его другим инструментом.

Использование --force без причины

--force заставляет Jpegoptim выполнять оптимизацию даже тогда, когда результат может быть больше. Этот параметр нужен для специальных случаев, например принудительного изменения progressive/non-progressive режима. Для обычного уменьшения веса файлов --force не нужен.

Ожидание точного результата от --size

--size пытается приблизить файл к заданному размеру, но качество итогового изображения зависит от содержимого. На фотографии с большим количеством деталей целевой размер достигается более агрессивным снижением качества. Проверка результата обязательна, особенно при маленьких лимитах.

Отсутствие визуального контроля

Jpegoptim показывает байты, проценты и статус, но не показывает изображение. После изменения качества нужно открыть результат в просмотрщике и проверить:

  • лица и кожу;

  • плавные градиенты;

  • небо и фон;

  • текстуры ткани, волос, травы, листвы;

  • края объектов;

  • мелкий текст;

  • цвет, если удалялся ICC-профиль.

Для просмотра и ручной проверки можно использовать FastStone Image Viewer, IrfanView, XnView MP или другой просмотрщик.

Отзывы пользователей и профильных изданий

Jpegoptim регулярно встречается в Linux-материалах о сжатии изображений из терминала. TecMint рассматривает Jpegoptim вместе с OptiPNG как пару командных инструментов для оптимизации JPEG и PNG, подчёркивая работу с JPEG, JPG и JFIF и поддержку lossless-оптимизации через Huffman tables. OMG! Ubuntu описывает Jpegoptim как командный способ быстро сжимать JPEG в Linux и отдельно упоминает Trimage как графическую оболочку, которая использует Jpegoptim и pngcrush. DigitalOcean включает Jpegoptim в набор Linux-инструментов для уменьшения размера изображений наряду с ImageMagick, pngcrush, OptiPNG, WebP и GIMP.

В Linux Mint Community у страницы jpegoptim показаны оценки и отзывы, а видимые короткие отзывы сводятся к практической пользе и простоте оптимизации JPEG-файлов. Там же программа описывается как утилита для lossless- и lossy-оптимизации JPEG через Huffman tables и пользовательский фактор качества.

Усреднённое восприятие Jpegoptim в профильных материалах складывается вокруг нескольких идей:

  • программу ценят за простоту команды;

  • её выбирают для серверной и пакетной обработки;

  • сильная сторона — отсутствие загрузки файлов в браузерный сервис;

  • главная сложность для новичков — консольный интерфейс;

  • главный риск — перезапись исходников без --dest;

  • отдельное внимание уделяется метаданным, потому что --strip-all одновременно уменьшает файл и меняет состав служебных данных.

Softpedia описывает Windows-сборку как command line utility для оптимизации JPEG и подчёркивает запуск через Windows Command Prompt. Это совпадает с общей природой Jpegoptim: программа не пытается быть визуальным редактором, а остаётся компактным CLI-инструментом для конкретной операции.

Безопасность, приватность и лицензия

Jpegoptim работает локально. Пользователь передаёт файлы программе в своей системе, а не загружает их на внешний сервер. Для приватных фотографий, закрытых каталогов, клиентских материалов и корпоративных изображений это важное отличие от онлайн-сервисов. При правильной настройке команда может выполняться на локальном компьютере, сервере, в контейнере или внутреннем пайплайне.

Приватность зависит от выбранных параметров. Если нужно удалить данные камеры, геолокацию и редакционные блоки, используется --strip-all или отдельные --strip-*. Если нужно сохранить часть данных, используются --keep-*. Jpegoptim даёт технический контроль, но не принимает решение за пользователя: ответственность за удаление или сохранение EXIF, ICC, IPTC и XMP остаётся на том, кто задаёт команду.

Исходный код Jpegoptim открыт, а репозиторий проекта содержит GPL-3.0 license. Homebrew также указывает GPL-3.0-or-later для формулы jpegoptim. Это важно для организаций, где перед внедрением инструмента проверяют лицензию и состав зависимостей.

Частые вопросы

Есть ли у Jpegoptim графический интерфейс?

Нет. Jpegoptim — консольная программа. У неё нет окна, кнопок, меню и предпросмотра. Работа выполняется через команду jpegoptim, параметры и список файлов. Для графического сценария лучше выбрать ImageOptim на macOS, XnView MP, Converseen, GIMP или другой редактор.

Можно ли сжимать PNG?

Нет. Jpegoptim работает с JPEG/JFIF. Для PNG используют OptiPNG, pngcrush, pngquant или графические программы, которые поддерживают PNG-экспорт. В смешанном каталоге JPEG и PNG обрабатывают разными инструментами.

Удаляет ли Jpegoptim EXIF?

По умолчанию Jpegoptim сохраняет EXIF среди распространённых маркеров. Для удаления EXIF используется --strip-exif, для полной очистки — --strip-all. Если нужно удалить всё, кроме EXIF, применяется --strip-all --keep-exif.

Как не перезаписать оригиналы?

Используется --dest=
:

mkdir -p optimizedjpegoptim --dest=optimized photo.jpg

Для пакетной обработки:

mkdir -p optimizedjpegoptim --max=85 --strip-all --dest=optimized *.jpg

Исходные файлы остаются в текущей папке, а оптимизированные версии записываются в папку назначения.

Чем --max отличается от --size?

--max= задаёт верхний предел качества. Программа снижает качество только у файлов, сохранённых выше этого уровня. --size= пытается приблизить файл к заданному размеру в килобайтах или процентах. Первый режим лучше для единообразной web-обработки, второй — для жёстких лимитов загрузки.

Что делает --noaction?

--noaction показывает результат без изменения файла:

jpegoptim --noaction --max=85 photo.jpg

Это безопасный способ проверить, что произойдёт при реальном запуске.

Что делает --threshold?

--threshold=
оставляет файл без изменений, если выигрыш меньше заданного процента. Например, при --threshold=1 Jpegoptim не будет менять файл ради слишком маленькой экономии. Это полезно для архивов и каталогов, где не хочется перезаписывать изображения из-за минимального результата.

Что выбрать: --strip-all или отдельные --strip-*?

--strip-all подходит для публичных web-копий, где не нужны метаданные. Отдельные --strip-* используют, когда нужно удалить конкретные блоки. Для товарных фото часто сохраняют ICC, для редакционных — IPTC, для архивов — EXIF.

Можно ли использовать Jpegoptim в скриптах?

Да. Программа поддерживает стандартные CLI-сценарии: маски файлов, find, stdin/stdout, списки файлов, CSV-вывод, итоговую статистику и параллельную обработку. Это одна из главных причин выбирать Jpegoptim вместо графического редактора для регулярной оптимизации JPEG.

Итог: кому стоит использовать Jpegoptim

Jpegoptim стоит выбирать, когда задача сформулирована конкретно: уменьшить размер JPEG/JFIF, очистить метаданные, перевести файлы в progressive JPEG, обработать папку через терминал или встроить оптимизацию изображений в скрипт. Программа особенно уместна на Linux-сервере, в web-проекте, в рабочем каталоге разработчика и в автоматическом пайплайне подготовки ассетов.

Для разовой визуальной обработки удобнее графический инструмент. Для PNG нужен отдельный оптимизатор. Для конвертации в WebP или AVIF нужен другой кодек. Для полноценной ретуши нужен редактор вроде GIMP. Но для повторяемого сжатия JPG без лишнего интерфейса Jpegoptim остаётся точным и практичным инструментом: команда задаёт режим, параметры фиксируют компромисс, а результат легко проверить по размеру, логам и итоговому файлу.

Список изменений

История версий Jpegoptim:

  • История Jpegoptim показывает, что программа развивалась не как визуальный редактор, а как техническая утилита для всё более точного управления JPEG-оптимизацией, метаданными, потоками ввода-вывода и пакетной обработкой.
  • Первые публичные выпуски сформировали базовую идею: консольная программа получает JPEG-файл и уменьшает его размер. В версии v1.0 появился первый публичный релиз. В v1.1 добавили параметр -f и улучшили поддержку других платформ. В v1.2.0 появились --overwrite и --preserve , а также поддержка GNU autoconf, что упростило сборку в Unix-средах.
  • Линейка v1.2.x развивала контроль над метаданными и безопасностью временных файлов. В v1.2.2 EXIF и COM перестали удаляться автоматически, а пользователь получил параметры --strip-all , --strip-exif и --strip-com . В v1.2.3 появилась поддержка IPTC и ICC. В v1.2.4 добавили --threshold , а в v1.2.5 улучшили работу с временными файлами.
  • Версия v1.3.0 стала важной для web-сценариев: появилась поддержка progressive JPEG через --all-progressive , обратный режим --all-normal , а также параметр --size для подгонки файла к заданному размеру. В v1.3.1 добавили XMP и CSV-вывод. В v1.3.2 улучшили обработку progressive JPEG и исправили связанные ошибки.
  • Линейка v1.4.x усилила программу как инструмент для автоматизации. В v1.4.0 добавили работу со stdin/stdout и обработку изображения в памяти. В v1.4.4 появились дополнительные параметры для сохранения и удаления метаданных, включая XMP и ICC. В v1.4.7 добавили --nofix , поддержку JFIF Extension markers, nanosecond timestamps и новые --keep-* параметры для сочетания с --strip-all .
  • Ветка v1.5.x сделала Jpegoptim удобнее для больших наборов файлов. В v1.5.0 появился параметр --workers= для параллельной обработки. В v1.5.2 добавили чтение списка файлов через --files-from и --files-stdin . В v1.5.5 улучшили работу с JFIF и добавили --keep-jfif и --strip-jfif . В v1.5.6 появились --retry , --save-extra и --auto-mode , а обработка изображения из stdin стала вести себя так же, как обработка файла. В v1.5.7 исправлено зацикливание --auto-mode в отдельных ситуациях.

Выберите ссылку для загрузки Jpegoptim

Всего скачали: 8 | сегодня: 6

Скачать бесплатно
Jpegoptim

Похожие программы на Jpegoptim

из раздела "Графические редакторы"

Оставте свой отзыв о Jpegoptim