Данная статья посвящена вопросу работе с изображениями. Она будет полезна в первую очередь тем, у кого есть свой сайт, форум или блог и вопрос оптимизации изображений для них является актуальным. Ее можно разбить на три части:
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*
На этом разрешите откланяться и удачи в освоении Убунту!
Спасибо конечно за описание imageMagic, но не хватает подробностей:
Для массового изменения размера можно выполнить команду:
find . -iregex ‘.*.jpg’ -exec convert ‘{}’ -resize 1024 jpg:'{}’ \;
Что обозначает iregex, или как выбрать нужную папку, если это прочитает новичек, то сложно будет ему разобраться