ImageMagick или как сжимать изображения в ОС Linux
Категории блога
Очень долгое время я пользовался программой 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 — изменение размера изображения
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 — изменение изображения и его размеров в пикселях, с сохранением соотношения сторон
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 — изменение размеров изображения без сохранения соотношения сторон
convert img.jpg -resize 100×150! img1.jpg
-resize — изменение размера изображения в %(процентах)
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 — проверка информации о изображении
Сокращенная информация о изображении:
А та же команда с параметром -verbose выведет полную информацию о изображении.
identify -verbose img.jpg
Пакетная обработка изображений с помощью ImageMagick
Я сам ей практически и не пользуюсь. Мне чаще все таки нужно работать с отдельными изображениями. Следующая команда обработает все изображения с разрешением .png повернет их на 180 градусов и запишет в файлы с новым именем rotated-предыдущее имя файла.
for file in *.png; do convert $file -rotate 180 rotated-$file; done
В общем утилита ImageMagick очень удобна и хороша в работе. А главное она сжимает практически без потерь качества, что немаловажно. Конечно она не подойдет для тех кто терпеть не может консоль. Но я для других — очень даже ничего:)
Пользуйтесь!;)
Изменение размера изображения с помощью контекстного меню в Ubuntu и других дистрибутивах Linux
Alexander Wayne
Read more posts by this author.
Alexander Wayne
В этом материале будет дан небольшой совет, который поможет вам настроить быстрое изменение размеров изображений прямо из контекстного меню, вызываемого щелчком правой кнопки мыши.
Как же изменить размер изображения на Linux? Использовать для этого Gimp или же Shutter? А может быть терминальную утилиту ImageMagick?
Но зачем заморачиваться с запуском целого приложения ради простого изменения размера, когда есть отличный плагин для Nautilus, который позволяет сделать это в два счета.
Что такое Nautilus? Nautilus — файловый менеджер, используемый GNOME и несколькими другими средами рабочего стола. Эквивалент Windows Explorer.
Существует несколько плагинов для Nautilus, которые расширяют его возможности. Они не установлены по умолчанию, поскольку они предназначены для конкретных случаев. Пользователи могут установить их в любой удобный момент.
Один из таких плагинов для Nautilus называется Image Manipulator. Он позволяет поворачивать или изменять размер изображений, щелкнув правой кнопкой мыши на изображении и выбрав вариант поворота или изменения размера в контекстном меню.
Быстрое изменение размеров изображений с помощью контекстного меню в Linux
Перед установкой настоятельно рекомендуем удостовериться, что файловый менеджер Nautilus используется в вашей системе. Для этого вводим команду:
Если вы получите примерно такой вывод (номера могут отличаться), значит все хорошо.
Для работы плагина в системе должен быть еще один компонент. Не теряя времени, установим его:
И вот теперь пришло время для установки самого плагина, используем такую команду:
Если вы используете другие дистрибутивы Linux (Fedora, Arch и т.д), то вы должны воспользоваться аналогичной командой для установки данного плагина.
Сразу после окончания установки необходимо перезапустить Nautilus:
Теперь при вызове контекстного меню правой кнопкой мыши на изображении вы будете видеть новые опции изменения размера и поворота:
Вы можете выбрать параметры, чтобы быстро изменить размер изображения прямо из контекстного меню. Плагин представит вам несколько вариантов изменения размера изображения. Но, стоит отметить, он не сохраняет соотношение сторон.
Для удаления плагина используем такую команду:
И потом точно также перезапускаем Nautilus.
Пакетное изменение размеров изображений (images resize)
Часто для фотогалерей необходимо изменять размеры исходных изображений до одинаковых по высоте и/или ширине. Например, используя галерею на основе Foldergallery, желательно привести изображения к одному размеру по высоте, чтобы при просмотре их крупным планом при переходе к следующему изображению не было «прыжков» изображений.
Если изображений очень много, то лучше автоматизировать процесс изменения размеров картинок. В GNU/Linux есть все необходимые инструменты для пакетной обработки изображений как в командной строке (используя пакет ImageMagick), так и через графический интерфейс (используя графический редактор GIMP).
Допустим, в каталоге /home/user/picture находятся исходные фотографии, выполненные как в альбомной, так и в ландшафтной ориентации, и нам необходимо привести все изображения к одной высоте в 600 пикселей, сохраняя при этом пропорции фотографий, и с качеством изображения формата JPEG 65 единиц.
Переходим в командной строке в каталог с изображениями:
и выполняем команду:
for i in `ls`; do convert -resize ‘x600’ -quality 65 $i x600q60_$i; done
В результате выполнения этой команды все изображения, находящиеся в текущем каталоге, будут конвертированы в картинки с высотой в 600 пикселей (это задает часть команды convert -resize ‘x600’, если необходимо задать не высоту, а ширину в 600 пикселей, то команда будет такой: convert -resize ‘600’), и все обработанные изображения будут сохранены с префиксом x600q60_ (например, исходный файл DSC02939.JPG станет x600q60_DSC02939.JPG). Пропорции изображений при этом будут сохранены.
Для тех же, кто не любит работать с командной строкой, есть возможность выполнить необходимые действия, используя командный процессор графического редактора GIMP.
Для этого в программе GIMP необходимо выбрать пункт меню Фильтры >> Batch >> Batch process.
Далее все уже интуитивно понятно, необходимые установки для нашего примера смотрите в галерее скриншотов (обработанных, кстати, командным процессором GIMP-а)
Пакетное изменение размеров изображений
Еще один способ для массового изменения размеров изображений через графический интерфейс состоит в использовании пакета nautilus-image-converter, который встраивается в оболочку Nautilus




