Очень долгое время я пользовался программой RIOT, но на тот период я плотно сидел на операционных системах семейства Windows. И вот на протяжении уже нескольких лет я использую ОС Ubuntu. Долгое время я работал с RIOT установленным через wine. С сегодняшнего дня я решил использовать меньше костылей и заняться вплотную изучением команд терминала Linux. На сайте программы RIOT есть ссылка на скачивание плагина для популярного редактора Gimp. Но запускать софт такого размера ради сжатия одного изображения мне крайне не хочется.
Поэтому сегодня речь пойдет об утилите ImageMagick.
ImageMagick это огромный бесплатный многоплатформенный комплекс утилит, который поддерживается многими языками программирования, и существует как отдельный комплекс. Думаю тем, кто как-то связан с веб-разработкой, с ImageMagick знаком не понаслышке.
Конечно может, кому то покажется совершенно неудобным работать с изображениям с помощью консольной утилиты. Но я в любом случае советую попробовать.
Установка ImageMagick
На данный момент моей операционной системой является Linux Ubuntu 14.04, поэтому и примеры буду приводить именно из нее. Итак перейдем к установке ImageMagick в Linux Ubuntu 14.04:
Перед тем как устанавливать этот пакет, проверьте, возможно он у вас уже есть, и какая у него версия:
dpkg -s imagemagick |
Это команда проверит какая версия пакета ImageMagick установлена в вашей системе.
У меня этот пакет оказался установленным. Для тех у кого этого пакета нет, выполните следующую команду(собственно сама установка):
sudo apt-get install imagemagick |
Команды для работы ImageMagick в терминале
Команд и утилит входящих в состав ImageMagick очень много, и описывать все я здесь не буду, так как не вижу в этом особого смысла. Ведь все есть в официальной документации, которая лежит здесь. Я покажу лишь те которые использую сам.
convert – изменение размера изображения
convert <input_image> <commands> <out_image> |
input_image – имя файла изображения, которое нужно взять за основу для работы
commands – дополнительные команды/параметры
out_image – имя изображения в которое будут сохранены все преобразования исходного
Что бы просто конвертировать изображение одного формата в другой формат, нужно сделать следующее:
convert img.png img.jpg |
-quality
Уровень сжатия изображения можно указать с помощью параметра -quality:
convert img.jpg -quality 75 img1.jpg |
Вы можете указать здесь в качестве значения цифры от 1 до 100. По умолчанию используется значение 92. Я обычно для блога сжимаю с параметром 75.
-resize
Для того что бы изменить размер изображения нужно воспользоваться параметром -resize:
convert img.jpg -resize 100×150 img1.jpg |
Здесь есть несколько схем подобного сжатия:
-resize < MMM x NNN > – изменение изображения и его размеров в пикселях, с сохранением соотношения сторон
convert img.jpg -resize 100×150 img1.jpg |
Сжатие изображения по ширине до 100px, при этом высота будет сжата пропорционально
convert img.jpg -resize 100 img1.jpg |
Аналогичное предыдущему, только здесь изображение сжимается по высоте до 150px
convert img.jpg -resize ×150 img1.jpg |
-resize < MMM x NNN! > – изменение размеров изображения без сохранения соотношения сторон
convert img.jpg -resize 100×150! img1.jpg |
-resize < MMM% > – изменение размера изображения в %(процентах)
convert img.jpg -resize 20% img1.jpg |
-rotate
Для того что бы повернуть изображение существует параметр -rotate, где значение указывается в градусах:
convert img.jpg -rotate 20 img1.jpg |
Группировка команд
Самое удобное что есть – это группировка команд. То есть по сути можно сделать следующее(изменить размер, повернуть на 120 градусов, и изменить качество, еще и поменять формат с png на jpg):
convert img.png -resize 100×400 -rotate 120 -quality 75 img.jpg |
identify – проверка информации о изображении
identify <commands> <image> |
Сокращенная информация о изображении:
identify img.jpg |
А та же команда с параметром -verbose выведет полную информацию о изображении.
identify -verbose img.jpg
|
Пакетная обработка изображений с помощью ImageMagick
Я сам ей практически и не пользуюсь. Мне чаще все таки нужно работать с отдельными изображениями. Следующая команда обработает все изображения с разрешением .png повернет их на 180 градусов и запишет в файлы с новым именем rotated-предыдущее имя файла.
for file in *.png; do convert $file -rotate 180 rotated-$file; done |
В общем утилита ImageMagick очень удобна и хороша в работе. А главное она сжимает практически без потерь качества, что немаловажно. Конечно она не подойдет для тех кто терпеть не может консоль. Но я для других – очень даже ничего:)
Пользуйтесь!;)