Оптимизация изображений в Ubuntu

Стандартный

Оптимизация изображения в Ubuntu

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

1. Конвертация изображений.
2. Изменение размера изображений.
3. Оптимизация изображений.

По сути все 3 пункта могут служить для оптимизации изображений, т.к. если конвертировать png в jpg, то после этой операции размер фото будет изменен в меньшую сторону. Итак приступим.

1. Для конвертации изображений установим программу Imagemagick. Выполним в Терминале команду:

sudo apt-get install imagemagick

Чтобы переконвертировать одно изображение нужно в каталоге с фото выполнить команду:

convert image.png image.jpg

В данном случае мы переконвертировали png в jpg. Таким же образом можно изменить картинки в другие форматы:

convert image.jpg image.png

convert image.png image.bmp

Поддерживаемые форматы можно посмотреть выполнив команду:

convert -list format

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

mogrify -format jpg * .png

Данная команда переконвертирует все картинки png в jpg.

2. Если у вас есть изображения с очень большим разрешением, то можно уменьшить размер командой:

convert -resize 1024 -quality 85 image.jpg out_image.jpg

-resize — разрешение выходного изображения
-quality — качество



В итоге мы получим изображение с разрешением 1024×768. Хочу напомнить, что утилита convert весьма умная и учитывает соотношение сторон не ломая картинку. Как вы видите, нет необходимости указывать 1024×768, convert в курсе разрешений, поэтому без проблем высчитает соотношение сторон и на выходе мы получим нормальную картинку!

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

find . -iregex '.*.jpg' -exec convert '{}' -resize 1024 jpg:'{}' \;

В составе Imagemagick есть утилита mogrify. Если использовать ее, то команда будет такой:

mogrify -resize 1024 *.jpg

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

mogrify -resize 1024\> *.jpg

Также можно создать текстовый файл и вписать туда следующий текст:

#!/bin/bash
echo " "
echo "--===http://softhelp.org.ua/==--"
echo " "

for i in *.JPG
do
echo “Working on $i …”
convert -resize 1024 -quality 89 $i $i 2> /dev/null
done
echo ” “
echo “… Done!”
echo ” “
exit 0

Сохраним его и дадим ему название convert.sh. Теперь сделаем его исполняемым командой:

chmod +x convrt.sh

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

sh convert.sh

Значения -resize и -quality можете выставить нужные вам.

3. Оптимизация png и jpg изображений.
Установим утилиту optipng:

sudo apt-get install optipng

Она поддерживает следующие форматы: PNG, BMP, GIF, PNM or TIFF. Чтобы сделать оптимизацию одного изображения нужно выполнить следующую команду:

optipng -o4 image.png

Параметр -o это уровень сжатия(1-7). Чем выше цифра этого параметра, тем большее количество фильтров будет использовано для оптимизации. Пробуйте для себя опытным путем. Можно выполнять команду и без параметра -o.

Чтобы выполнить оптимизацию группы файлов выполните команду:

optipng *.png

Чтобы узнать все ключи optipng выполните команду:

optipng --help

Для оптимизации jpg изображений установим утилиту jpegoptim. Для этого выполним команду:

sudo apt-get install jpegoptim

Для оптимизаии одного изображения выполните в каталоге с картинкой команду:

jpegoptim image.jpg

Лучше использовать параметр –strip-all, который удалит всю информацию о метаданных.

jpegoptim file.jpg --strip-all

Для массовой оптимизации выполните команду:

jpegoptim *.jpg --strip-all

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

jpegoptim --help

Некоторые из параметров:

-t – выводит полную информацию по сжатым изображениям.

-m<quality> – параметр, отвечающий за качество изображения, (0 – 100), чем меньше цифра, тем хуже качество изображения, но зато объем станет меньше.

jpegoptim --strip-all -m80 -t *.jpg*

На этом разрешите откланяться и удачи в освоении Убунту!


One Comment

  1. Спасибо конечно за описание imageMagic, но не хватает подробностей:
    Для массового изменения размера можно выполнить команду:
    find . -iregex ‘.*.jpg’ -exec convert ‘{}’ -resize 1024 jpg:'{}’ \;
    Что обозначает iregex, или как выбрать нужную папку, если это прочитает новичек, то сложно будет ему разобраться

Leave a Reply

Статьи