Оптимизация изображений JPEG/JPG в Ubuntu с помощью Jpegoptim

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

Для Ubuntu существует множество графических утилит, которые позволят вам оптимизировать и сжать ваши JPEG, но здесь мы будем обсуждать инструмент командной строки под названием Jpegoptim. Это особенно полезно для опытных пользователей, которые любят выполнять свои задачи, используя минимальные системные ресурсы. Jpegoptim может помочь вам сжать файлы jpegs, jpg и jfif с потерей качества и без нее, в зависимости от того, что вы ищете.

В этой статье мы опишем, как вы можете установить утилиту командной строки Jpegoptim в Ubuntu. , Мы также расскажем о различных способах использования этого приложения для оптимизации и сжатия файлов изображений JPEG. Эта статья также позволит вам написать и выполнить bash-скрипт, который автоматизирует процесс сжатия всех jpeg-файлов, расположенных в одном каталоге.

Мы запустили команды и процедуры, упомянутые в этой статье, в системе Ubuntu 18.04 LTS.

Установка Jpegoptim в Ubuntu

Jpegoptim легко доступна через официальный репозиторий Ubuntu и может быть легко установлена ​​через командную строку с помощью команды apt-get.

Откройте приложение терминала либо через системное приложение Launcher Search или с помощью сочетания клавиш Ctrl + Alt + T.

Следующим шагом является обновление индекса репозитория вашей системы с помощью следующей команды:

$ sudo apt-get update

Это поможет вам установить последнюю версию Доступная версия программного обеспечения из Интернета. Обратите внимание, что только авторизованный пользователь может добавлять, удалять и настраивать программное обеспечение в Ubuntu.

Теперь вы готовы к установке Image Jpegoptim; Вы можете сделать это, выполнив следующую команду как sudo:

$ sudo apt-get install jpegoptim

Система может запросить у вас пароль для sudo, а также предоставить вам возможность Y / n для продолжения установки. Введите Y, а затем нажмите Enter; программное обеспечение будет установлено в вашей системе. Однако этот процесс может занять некоторое время в зависимости от скорости вашего Интернета.

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

$ jpegoptim --version

Использование Jpegoptim для сжатия изображений

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

Без потерь сжатие одного изображения

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

$ jpegoptim image_name.jpg

Пример:

$ jpegoptim sample.jpg

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

Если вы хотите, чтобы изображение было сжато еще больше, вы можете запустить ту же команду еще раз. Однако Jpegoptim начнет пропускать сжатие, если оно достигнет предела, при котором качество изображения без потерь будет достигнуто при максимальном сжатии.

Вот как будет выглядеть вывод в такой ситуации:

Сжать изображение в другую папку

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

Сначала создайте папка, в которую вы хотите сохранить сжатые изображения. Если вы хотите, чтобы они были сохранены в уже существующей папке, вам не нужно создавать новую. Затем вы можете использовать следующий синтаксис команды для выполнения сжатия:

$ jpegoptim -d ./[destination-folder] -p [image_name] .jpg

Например:

$ jpegoptim -d ./compressed -p sample.jpg

Приведенная выше команда сожмет и сохранит мой файл sample.jpg в уже существующую папку с именем «сжатый».

Проверка потенциального сжатия

Если вы хотите заранее узнать, как Если изображение может быть сжато, вы можете смоделировать сжатие изображения с помощью Jpegoptim. Следующая команда на самом деле не будет сжимать изображение, она просто скажет вам, сколько будет сжато изображение, если вы когда-нибудь попытаетесь сжать его с помощью Jpegoptim.

Следующий пример пояснит этот процесс:

I есть изображение JPG с именем sample.jpg. Сначала я напечатаю его размер с помощью команды du следующим образом:

$ du sample.jpg

Затем я буду использовать флаг -n с командой jpegoptim, чтобы узнать о возможном сжатии.

$ jpegoptim -n sample.jpg

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

Сжатие изображений «с» потерей качества

Иногда мы хотим сжать наши изображения, зная что процесс не будет без потерь. Хорошо, что с Jpegoptim вы можете указать, с какой потерей качества вы в порядке. Существует два способа сжатия изображений с потерями:

1. Использование флага -m для указания коэффициента качества / процента: Устанавливает максимальный коэффициент качества изображения (отключает режим оптимизации без потерь, который по умолчанию включен). Эта опция снизит качество тех исходных файлов, которые были сохранены с использованием более высокого качества. В то время как файлы, которые уже имеют более низкую настройку качества, будут сжаты с использованием метода оптимизации без потерь.

Вот как вы можете указать процент сжатия:

$ jpegoptim -m[percentage_in_numbers] image.jpg

Это было мое оригинальное изображение:

И вот как это выглядит с 10-процентным добротностью:

2. С помощью параметра –size укажите размер сжатого изображения: Попробуйте оптимизировать файл до заданного размера (отключает режим оптимизации без потерь). Целевой размер указывается в килобайтах (1 - n)

или в процентах (1% - 99%) от исходного размера файла.

Вот как вы можете указать размер в килобайтах для получающегося изображения:

$ jpegoptim --size=[size-in-kb] image_name.jpg

@ Пакетная оптимизация файлов изображений

Существует несколько способов использования Jpegoptim для сжатия несколько файлов одновременно.

Первый - указать все файлы, которые вы хотите сжать, одной командой jpegoptim следующим образом:

$ jpegoptim file1.jpeg file2.jpg file3.jpg

Команда перезапишет все указанные файлы и только что сжатые. .

Второй метод - сказать Jpegoptim сжать все файлы определенного типа, например, jpg, все они находятся в одной папке:

$ jpegoptim *.jpg

Чтобы увидеть, как работает эта команда, я перечислил все файлы в папке «Изображения» с флагом -l. Эта команда выведет общий размер всех изображений, находящихся в текущей папке:

$ ls -l

Затем я использовал ту же команду ls -l, чтобы увидеть, насколько сильно команда Jpegoptim внесла изменения в общий размер всех файлов. Вы можете увидеть заметную разницу в общем количестве байтов в следующем выводе:

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

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

Bash Script для сжатия всех файлов jpg в текущем каталоге

В этом разделе объясняется, как написать сценарий оболочки, который будет сжимать все jpgs, расположенные в текущем каталоге, в папку. называется «сжатым». Скрипт не будет создавать папку; он просто сохранит вывод в уже созданную папку с этим именем.

Сначала перейдите в папку «Документы», где мы создадим скрипт:

$ cd Documents

Примечание. Вы можете сохранить скрипт в любом месте. Желательно, чтобы вы создавали все сценарии в одной и той же папке, чтобы не забывать о том, где вы их сохранили. Я лично предпочитаю сохранять все свои скрипты в папке «Документы».

Создать скрипт

Откройте новый файл скрипта в одном из ваших любимых текстовых редакторов. Мы будем использовать нано-редактор, чтобы открыть пустой файл сценария с именем compressAll.sh

$ nano compressAll.sh

В этот пустой файл добавьте следующий сценарий.

#!/bin/sh
# compress all *.jpg files in the current directory
# and place them in ./compressed directory
# with the same modification date as original files.

for i in *.jpg; do jpegoptim -d ./compressed -p "$i"; done

Совет: Вместо этого набрав весь скрипт в ваш bash-файл, вы можете скопировать его отсюда и вставить в терминал, используя Ctrl + Shift + V, или используя опцию Paste из контекстного меню.

Вот как Ваш файл будет выглядеть следующим образом:

Теперь закройте файл с помощью сочетания клавиш Ctrl + X. Затем вас попросят сохранить файл в окне «Сохранить измененный буфер?». Введите Y и нажмите Enter; Ваш файл сценария теперь сохранен в текущей папке.

Чтобы сделать этот файл исполняемым текущим пользователем, выполните следующую команду в своем терминале:

$ chmod +x compressAll.sh

Чтобы запустить сценарий, измените свой текущий каталог к ​​тому, чьи jpgs вы хотите сжать (в моем случае это каталог картинок).Убедитесь, что каталог содержит папку с именем «сжатый». Если его там нет, создайте его перед запуском скрипта.

Запустите скрипт

Наконец, запустите скрипт следующим образом:

$ /home/[username]/Documents/compressAll.sh

Эта команда выполнит скрипт bash из папки, которую вы создал его в. Это причина, по которой вам пришлось указать полный путь к этому файлу .sh.

Вы увидите, что все сжатые файлы будут записаны в «сжатую» папку. Вы можете проверить это с помощью следующей команды:

$ ls compressed

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

$ man jpegoptim

Теперь обмен изображениями через Интернет и загрузка их в полосу пропускания и ограниченное хранилище не должны быть проблемой

Комментарии