Если на компьютере имеется достаточное количество изображений, они занимают слишком много места, то их размер однозначно можно уменьшить даже без потери качества. Также это может быть очень полезным при загрузке изображений в облачное хранилище.
JPEG и PNG - это наиболее распространенные форматы изображений в сети интернет, поэтому вы сможете оптимизировать почти все изображения
Есть такая утилита, jpegoptim - инструмент командной строки, который можно использовать для использоваться для сжатия изображений в формате JPEG, JPG и JFIF без потери качества. Утилита оптимизирует изображения на основе таблиц Хаффмана. В алгоритме JPEG и так используется сжатие, но это сжатие достигается с помощью потери качества, а здесь мы можем оптимизировать размер не меняя картинку.
Для установки утилиты в Ubuntu, Debian и основанных на нем дистрибутивах выполните:
$ sudo apt install jpegoptim
В Fedora, Red Hat, CentOS и других, основанных на них дистрибутивах дела обстоят немного сложнее, вам придется сначала добавить репозиторий epel-release. Вы можете сделать это с помощью такой команды:
$ sudo yum install epel-release
Или:
$ sudo dnf install epel-release
Затем вы можете установить jpegoptim из только что подключенного репозитория:
$ sudo yum install jpegoptim
Или:
$ sudo dnf install jpegoptim
Давайте рассмотрим как пользоваться jpegoptim. Использовать утилиту для сжатия изображений linux очень просто. Для этого достаточно выполнить программу и передать ей имя файла. Вот такой синтаксис:
$ jpegoptim опции имя_файла.jpeg
Рассмотрим опции утилиты:
Рассмотрим как оптимизировать изображения в linux с помощью jpegoptim. Сначала посмотрим исходный размер:
$ du image.jpg
Дальше выполняем самую простую оптимизацию:
$ jpegoptim image.jpg
Затем опять смотрим размер:
$ du image.jpg
Как можно увидеть, сжатие jpg сработало, и открыв изображение в любой графической программе не будет отличий или ухудшения качества, исходник и готовое изображение будут идентичны. Слева оптимизированное, справа - оригинал:
Если хотите, вы можете сжать изображение до определенного размера, но тогда без потерь не получится:
$ jpegoptim --size=250k image.jpeg
Изображение будет сжато, но качество заметно ухудшится. Если изображений много, то вы можете очень просто использовать пакетное сжатие, для этого просто перейдите в папку с изображениями, а потом выполните команду сжатия указав вместо файла маску, например:
$ cd images/
jpegoptim *.jpg
Также вы можете перечислить несколько изображений за раз:
$ jpegoptim image1.jpg image2.jpg
Чтобы оптимизировать все изображения в определенной папке можно использовать команду xargs вместе с find. Например, сжимаем все изображения в текущей папке с перемещением в папку ~/compressed:
$ find . -name "*.jpg" | xargs jpegoptim -d ~/compressed -p
Вот и все, теперь вы знаете как сжать jpg изображения в Linux. Дальше мы поговорим о том, как сжать png. Это тоже очень просто.
PNG или Portable Network Graphics это растровый формат изображений, разработанный для замены несовершенного в плане сжатия и цветопередачи формата GIF. Размер PNG изображений может сильно отличаться в зависимости от нескольких факторов, таких как глубина цвета, переплетение, перед компрессионный фильтр, используемый алгоритм сжатия и т д.
OptiPNG - это консольная утилита, позволяющая оптимизировать PNG изображения. А именно сжимать размер, восстанавливать метаданные, проверять целостность и т д. С помощью OptiPNG вы можете сжимать файлы без потерь качества, точно также как мы это делали с форматом Jpeg.
Если вы используете Ubuntu, то программа есть в официальных репозиториях и вы можете ее очень просто установить. Для установки optipng в Debian, Ubuntu и производных наберите:
$ sudo apt install optipng
В Red Hat, CentOS или Fedora все выполняется точно так же, только другой менеджер пакетов:
$ sudo yum install optipng
Или:
$ sudo dnf install optipng
Синтаксис утилиты очень прост. Вы можете использовать ее точно так же как и jpegoptim:
$ optipng опции имя_файла.png
Давайте рассмотрим опции утилиты:
Теперь попробуем оптимизировать png в linux. Сначала посмотрим размер файла:
$ df -h image.png
Чтобы выполнить сжатие изображений используйте следующую команду:
$ optipng image.png
Затем опять смотрим размер, в этом примере различий не видно, потому что изображение очень маленькое, но при большем размере они будут значительны:
Здесь тоже сжатие png linux изображений без потерь, а это значит, что вы получите точно такое же изображение только меньшего размера. Также можно указать уровень сжатия, он не влияет на качество картинки, но от него напрямую зависит время работы программы. Значение может быть от 0 до 7 и чем больше, тем сильнее сжатие и тем дольше будет идти обработка:
$ optipng -o 7 impge.png
Для пакетной обработки изображений можно использовать тот же принцип, что и в работе с jpeg:
$ cd images/
$ optipng *.png
Теперь вы знаете как выполняется оптимизация изображений linux.
Примените скидку, вставив промокод в специальное поле при оформлении заказа: