Imagemagick windows как пользоваться

Обновлено: 05.07.2024

Имеется ряд интерфейсов между ImageMagick и такими языками программирования, как C/C++, Perl, Java, Python. С ImageMagick создаются динамические изображения для Web страниц.

Установка

Пакет присутствует в хранилище пакетов debian.
Для установки пакета

После установки пакет готов к использованию.

Часто используемые команды

В состав пакета входят утилиты

  • display - просмотр изображений, простой графический редактор
  • convert - осуществление преобразований изображений
  • identify - получение информации о параметрах изображения
  • import - запись образа окна, выбранной области экрана в файл
  • animate - просмотр группы изображений, показ слайд-шоу из файлов
  • montage - создание изображения из нескольких
  • mogrify - трансформация изображения или их последовательности
  • composite - комбинирование, наложение изображений

Утилита display

Утилита display осуществляет просмотр и обработку изображений на всех рабочих станциях с активным X сервером.
Например она умеет осуществлять загрузку, просмотр, запись, уменьшение/увеличение размеров, вращение и трансформацию, изменение цвета, контрастности, устранение дефектов изображения, операции со слайдами.

Формат вызова программы

Утилита convert

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

Формат вызова программы

Утилита identify

Утилита identify получает информацию о параметрах изображения.

Формат вызова программы

Утилита import

Утилита import осуществляет запись образа окна, выбранной области экрана в файл.

Формат вызова программы

Утилита animate

Утилита animate осуществляет просмотр изображения или группы изображений на любом X-сервере.

Формат вызова программы

Утилита montage

Утилита montage осуществляет создание (монтаж) изображения из нескольких изображений, возможно с добавлением тени, фрейма, меток и прочего.

Формат вызова программы

Утилита mogrify

Утилита mogrify осуществляет трансформацию изображения или их последовательности (без применения скриптов).

Формат вызова программы

Утилита composite

Утилита composite осуществляет комбинирование, наложение изображений.


Что это такое

ImageMagick представляет из себя комплект из нескольких программ, которые запускаются из командной строки. Здесь нет привычного графического интерфейса, все манипуляции с изображением делаются посредством выполнения консольной программы (в данном контексте программы у которой нет графического интерфейса) с набором параметров. Например, чтобы поменять яркость изображения нужно выполнить команду:



Оригинальное изображение
Яркость увеличена на 30%


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



Оригинальное изображение

Результат работы фильтра повышения резкости А если захотите повысить цветовую насыщенность:



Оригинальное изображение

Насыщенность поднята в 1.5 раза ImageMagick поддерживает большинство графических форматов, так что с конвертацией проблем не должно возникнуть.
Как и весь софт, который приводится на этом сайте, ImageMagick является бесплатным, что при всей его мощности является немаловажным плюсом. Но самое главное его преимущество кроется в его консольности, то есть вы можете запускать его в пакетном режиме для обработки любого количества файлов. Имея командную строку и ImageMagick вы можете творить просто чудеса с изображениями даже при полном отсутствии графического интерфейса в системе. Выше я привел несколько примеров его работы, более подробно об этом буде сказано дальше.

Для чего нужен

Для ImageMagick можно придумать множество областей применения. Вот список, где чаще всего можно увидеть ImageMagick:

Установка

Инструменты

Теперь перейдем к конкретному рассмотрению инструментов пакета ImageMagick.

animate

animate

Предположим у вас есть набор файлов, которые являются кадрами некоего процесса с движением. Вам хочется быстренько оценить видео.

Для этого запускаем animate:

и смотрим видео в котором быстро проигрываются png файлы.

Точно так же можно посмотреть анимационный gif:

compare

Этот инструмент позволяет сравнить два изображения. Разницу записать в третье изображение и по необходимости в текстовом виде в файл.

изображение 1 изображение 2 разница

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

composite

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

изображение 1 изображение 2 объединение

conjure

Эта утилита является обработчиком командного языка ImgaeMagick MSL (Magick Scripting Language), который представляет из себя обычный XML файл с командами и параметрами для этих команд для обработки изображений в пакете ImageMagick. Это экзотическая команда и по неопытности туда лазить не надо.

convert

Название говорит само за себя. Эта программа конвертирует изображение из одного офрмата в другой, попутно изменяя его при помощи различных команд.

display

Программа для показа изображений.

После выполнения команды:

появляется окно с картинкой:

display

identify

Позволяет получить информацию о графическом файле.

import

Позволяет сделать screenshot экрана.

Изображение экрана запишется в файл screen.jpg

mogrify

Делает все тоже самое, что и convert, но результат работы программы записывается в тот же файл.

montage

Склеивает несколько изображений в одно.

+ + =

stream

Это команда позволяет извлекать из оригинального изображения фрагменты и записывать их на диск в цифровом виде для последующей обработки. Это актуально при работе с большими изображениями, например спутниковые снимки, панорамы или сканы с форматных фотопленок. Команда stream извлекает данные в виде сырых RGB компонент, то есть информация не теряется при перегонке в другие цветовые пространства.

Кроссплатформенность

ImageMagick есть для Windows, UNIX, MacOs. Мало того библиотеки ImageMagick через специальный API доступны для всех современных языков программирования.

Что умеет

Итак, давайте подитожим, какие возможности пользователю предоставляет ImageMagick.

    • Преобразование форматов поддерживает все известные форматы и позволяет конвертировать из одного формата в другой
    • Редактирование изображений изменение размера, вращение, обрезка, отражение
    • Прозрачность можно сделать часть изображения прозрачным
    • Рисование можно рисовать и добавлять текст поверх изображения
    • Рамки и границы можно добавлять рамки и границы
    • Спецэффекты размытие, усиление резкости, изменение оттенка
    • Анимация создание анимаионных gif
    • Заметки красивый текст поверх изображения
    • Полная инфа об изображении вся необходимая информация о самом изображении
    • Композитинг накладывание изображений друг на друга с различными эффектами
    • Монтаж комбинация одного изображения из нескольких
    • Правка перспективы правка искажений в изображении
    • Морфинг изменение формы исходного изображения под воздействием предопределенного шаблона
    • Границы определение границ изображения
    • Motion picture инструмент для работы с форматами изображениями (кадрами) из киноиндустрии (например IMAX)
    • Математика возможно применение математических формул, например для описания формы кривых светокоррекции
    • Connected component labeling служит для определения однородных областей на изображении
    • Discrete Fourier transform преобразование Фурье в модификации исходного изображения
    • Perceptual hash новый способ поиска схожих изображений
    • Color management корректная работа с цветовыми профилями
    • HDR поддержка HDR изображений (с широким световым охватом)
    • Кодирование изображений по ключу если у вас есть пароль, то сможете раскодировать изображение
    • Virtual pixel метод анализа приграничных пикселов
    • Поддержка изображений больших размеров чтение/запись из/в гигапиксельных и даже терапиксельных изображений
    • Многопоточность/многоядерность позволяет использовать преимущество многопроцессорных систем
    • Distributed pixel cache алгоритм позволяющий обрабатываит изображение на нескольких компьютерах (актуально для гигапиксельных и больше изображений)
    • Heterogeneous distributed processing позволяет работать с изображением на CPU и GPU одновременно
    • ImageMagick для iPhone представьте себе есть версия для iPhone и iPad

    Фильтры и опции

    imagemagick_options

    Imagemagick имеет большое количество встроенных фильтров и опций, бессмысленно здесь описывать их, для этого существует документация но официальном сайте. Я просто приведу здесь скриншот экрана со списком всех опций, чтобы, так сказать понять всю глубину глубин ImageMagick 🙂

    Довольно внушительный список.

    Заключение

    Эта ознакомительная статья не раскрывает полный потенциал этой программы, но как отправную точку в мир консольных программ по работе с графикой эту статью можно рассматривать. ImageMagick мощнейший пакет графических программ раскрывающий себя полностью особенно на серверной стороне WEB приложений. И самое главное, он абсолютно бесплатен.

    Обработка изображений происходит через обращение к консольной утилите convert. Помимо преобразования изображений из одного формата в другой (например из текста pdf в картинку png) утилита может заменить графический редактор. Склейка и обрезка изображений, изменение яркости и контраста, применение фильтров - всё это умеет convert. Кроме того операции с консольной утилитой легко автоматизируются. Есть возможность создавать специальные скрипты для ImageMagic которые будут производить сложные операции с изображением.
    Многие скрипты можно скачать с официального сайта.

    Изменение одного из размеров..

    Если операция требует двух параметров, то они часто разделяются символом x. В примере первый параметр (ширина) не задан.

    Поворот
    Повернуть по часовой стрелке на 90 градусов:

    Равномерно обрезать изображение по всем краям оставив 90% ширины и 90% высоты convert my_image.jpg -gravity center -crop 90% croped.jpg

    Изменение DPI

    Часто при преобразовании PDF в PNG программа сильно занижает DPI. Поэтому это значение стоит задать отдельно с помощью параметра -density.

    density нужно задавать до имени входного файла

    Создание pdf из изображений

    convert способен и выполнять обратную операцию - создание pdf из набора изображений. Каждое изображение в примере станет отдельной страницей документа Можно повернуть (или выполнить другие операции) отдельные картинки перед добавление в pdf

    Склейка изображений

    Добавление изображений в вертикальную ленту: -append Добавление изображений в горизонтальную ленту: +append
    convert first.jpg second.jpg -append compare.jpg
    convert first.jpg second.jpg +append compare.jpg
    Эта команда повторит первое изображение (индекс 0) и поместит его Над копие можно производить отдельные операции, заключив эти операции и команду copy в скобки: Копия перед добавлением к оригиналу будет повёрнута на 180 градусов:

    0 - радиус. лучше задавать именно 0.
    20 - сигма (размер ядра?). Чем больше тем сильнее будет размыто изображение.

    Медианный фильтр

    Некоторые операции занимают заметное количество времени, поэтому чтобы не скучать можно включить отображение статуса и прогресса операции установить яркость -10, контраст 40. Значения изменяются в [-100, +100]

    Регулировка уровней

    Операция -level 25%,75% возьмёт 25% самых тёмных пикселей сделав их чёрными, а 25% (100 - 75) самых светлых сделает белыми [doc: Direct Level Adjustments] . При этом диапазон яркостей оставшихся пикселей будет масштабирован, чтобы растянуть их по всей шкале яркостей.Эта операция называется линейной коррекцией. Она призвана повысит контрастность изображения.

    Исходное изображение

    изображение после операций с гистограммой
    На изображениях выше видно, что черного и белого цвета стало больше. А серых оттенков - меньше. Можно исходное изображение в графическом редакторе (например GIMP) и выбрав операцию Уровни подвигать ползунки под гистограммой следя как изменяется картинка.
    Оттенки теперь представлены 50% всех
    пикселей, остальные 50% (слева и справа)
    делят черные и белые пиксели.

    Преобразовать в черно-белое

    convert -type grayscale my_image.jpg gray.jpg;

    Обрезка по уровню:
    Более радикальный способ уменьшения числа цветов - оставить лишь два. Каждый пиксель яркостью меньше 50% будет черным, а яркостью больше - белым.
    Разделение всех пикселей на черные и белые может быть полезна для последующей машинной обработки изображения, но для человеческого глаза чаще проще воспринимать картинку где присутствуют полутона.

    Фильтры

    convert source.jpg -morphology close:5 "1x5: 1,1,1,1,1" result.jpg

    Обработка сфотографированного документа. Непрактичный пример.

    Часто на сфотографированном документе или конспекте оказывается тень, например когда фотокамера загораживает источник света. Сделать изображение однородным относительно просто, достаточно "извлечь" из изображения только саму тень не затронув текст. Такая операция называется выравнивание освещения. Извлечь тень можно сильно сгладив изображение, так чтобы текст слился с фоном. Таким образом полученное размытое изображение будет содержать преимущественно яркость. Иногда даже удаётся таким образом удалить тени от изгибов (или сами изгибы) бумаги, если применять медианное размытие (фильтр).

    Пусть исходное изображение сохранено в файле source.jpg

    0. Диапазон яркостей изображения может быть узким. Тогда изображение выглядит малоконтрастным. Увеличим диапазон яркостей растянув гистограмму.

    0. convert source.jpg -normalize source 1.jpg

    60 - радиус в пикселях, на котором будет производится размытие вокруг данного пикселя. Подбирается экспериментально. Результирующее изображение не должно содержать заметных следов записей, только тени.

    Если операция занимает много времени, то добавлением ключа -monitor можно порадовать себя информацией о прогрессе.

    В результате должно получится что-то похожее:


    Изображение после применения медианного фильтра. Осталось только тень.

    2. Удаление тени.
    Для удаление тени используем следующую формулу для яркости каждого пикселя:

    Здесь считаем, что яркость пикселя изменяется от 0 до 1. Потому что так считает ImageMagic.
    R - яркость пикселя в результирующем изображении. I1, I2 - яркость соответствующих пикселей на входных изображениях.
    0.5 добавим чтобы сильно не потерять яркость, ведь используется вычитание которое яркость уменьшит.

    В данном случае будем использовать свою операцию, поэтому зададим значение oper как Mathematics.
    Далее нужно привести параметры этой операции, которая и будет задавать нашу формулу. По умолчанию в ImageMagic используется формула:
    A*I1 * I2 + B * I1 + C * I2 + D.

    Её можно видоизменить задавать значение коэффициентов. A, B, C, D.
    Чтобы она выглядела как формула приведённая выше зададим такие значения коэффициентов:
    A = 0, B = 1, C = -1, D = 0.5.

    Эти параметры операции Mathematics задаются ещё одним ключём:

    convert -compose Mathematics -define compose:args='0,1,-1,0.5' -composite blur.jpg source1.jpg result0.jpg

    3. Исправляем яркость и контраст.
    Параметры подбираются тоже опытным путём.

    convert -brightness-contrast 30x60 result0.jpg result1.jpg


    за счёт увеличения яркости фон бумаги стал практически однородным и белым
    Записи в нижней части изображения выглядят бледными.

    convert -brightness-contrast 30x60 result0.jpg result1.jpg


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


    Цвета немного пострадали, но зато пропала тень, делающая картинку неоднородной.
    Подобные операции требуются не только для лучшего восприятия человеком но и для работы алгоритмов машинного зрения. Которым для успешной работы требуются хорошие не зашумленные изображения, без лишних деталей.

    convert source1.jpg -median 45 blur.jpg
    convert -compose Mathematics -define compose:args='0,1,-1,0.5' -composite blur.jpg source1.jpg result0.jpg
    convert -brightness-contrast 30x60 result0.jpg result1.jpg
    convert -brightness-contrast 30x60 result0.jpg result1.jpg

    Если изображение имеет избыточно больное разрешение, то для ускорения обработки можно его уменьшить. Дополнительно можно убрать цвета.

    Операцию повышения яркости и контрастности можно заменить работой с гистограммой (см. -level).

    Обработка сфотографированного документа. Практичный пример.

    Автор не до конца понимает как это работает, но объяснить для гуманитариев попробует :)
    Фильтра Гаусса используется для размытия. Он является фильтром низких частот, т.е. обрубает высокие частоты (spatial frequency). Частоту которая служит порогом можно регулировать с помощью параметра фильтра - сигмы.
    Значит можно использовать один фильтр Гаусса, который отбросит высокие частоты (условно: > x1 ) и другой фильтр Гаусса, которые отбросить частоты чуть ниже (условно: >x0).
    x0 > x1.
    Получатся два изображения, которые не содержат частот выше x1, а одно из них не содержит частот выше x1. Значит, вычитанием второго изображения из первого можно получить частоты лежащие в диапазоне от x0 до x1.

    Это свойство и использовано в фильтре "Разница по Гауссу". Этот фильтр уберет слишком крупные детали (частоты < x0) и слишком крупные (частоты > x1).

    convert source.jpg -morphology Convolve DoG:15,100,0 -negate -normalize -level 60%,91%,0.1 result.jpg

    -morphology Convolve DoG:15,100,0 - применение фильтра "Разница по Гауссу" (Difference of Gaussians, IM doc).

    Изображение получится инвертированным поэтому инвертируем его снова ( -negate ), повысим контрастность ( -normalize ) и, наконец, "откусим" 60% самых светлых пикселей и 9% самых тёмных, уменьшив яркость ( 0.1 ).

    Фильтр Разница по Гауссу является одним из семейства фильтров, которые призваны выделять контуры. Они используются в машинном зрении, например чтобы выделить контуры номерного знака на автомобиле.

    Редактирование изображений часто может отнимать много времени и доставлять неудобства. Тем более, если у вас есть целая папка с изображениями, которые нужно отредактировать.

    Как установить ImageMagick в Windows 10

    ImageMagick поставляется в двух основных версиях. Версия Q8 подходит для 32-битных систем, а тем, кто использует 64-битную Windows 10, следует скачать версию Q16.

    После того, как вы установили ImageMagick, вы можете проверить установку через командную строку Windows. Запустите командную строку Windows, выполнив поиск «cmd» в строке поиска меню «Пуск» и выбрав «Лучшее совпадение».

    В командной строке введите следующие команды, чтобы убедиться, что ImageMagick установлен правильно:

    магический логотип: logo.jpg
    магическая идентификация logo.jpg
    magick logo.jpg победа:


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

    Если установка не удалась, вам, скорее всего, потребуется файл vcomp120.dll. Вы можете установить этот файл, загрузив и установив Пакет распространения Windows Visual C ++.

    Теперь, когда на вашем компьютере установлен ImageMagick, вы можете приступить к редактированию изображений.

    Как выполнить пакетное редактирование с помощью ImageMagick Mogrify

    Обработка командной строки, требуемая ImageMagick, может сначала вызвать у вас перегрузку, но будьте уверены, мы проведем вас через весь процесс.

    В ImageMagick вы можете использовать команду magick mogrify для размытия, обрезки, изменения размера, повторной выборки или форматирования всех ваших изображений одновременно. Это встроенная программа для модификации изображений, что означает, что вы можете выполнять все операции редактирования всего одной командой в командной строке.

    Команда mogrify перезапишет существующие изображения, поэтому обязательно сделайте резервную копию ваших изображений в отдельной папке.

    Как только вы это сделаете, вы можете приступить к редактированию изображений. В этом руководстве мы рассмотрим только несколько функций редактирования изображений ImageMagick, но вы можете найти весь список доступных функций редактирования. здесь.

    Команда mogrify resize позволяет изменять размер всех изображений в папке за один раз. Вы можете выбрать коэффициент уменьшения изображений (25 процентов, 10 процентов и т. Д.) Или явно указать размер.

    Связанный: Как изменить размер изображения на любом устройстве

    magick mogrify -resize 30% * .jpg

    Эта команда уменьшит размер всех изображений PNG на 30 процентов.

    Вы можете использовать команду -format, чтобы изменить формат всех изображений в папке.


    Для этого введите в командной строке следующее:

    magick mogrify -format jpg * .jpg


    Эта команда преобразует все файлы PNG в вашей папке в файлы JPG с тем же именем. Он не перезапишет ваши существующие изображения, а создаст новый файл с тем же именем.

    Чтобы перевернуть все изображения в папке по вертикали, вы можете использовать следующую команду:

    magick mogrify -flip * .jpg

    Вышеупомянутая команда легко перевернет все изображения JPG в папке по вертикали.

    С ImageMagick mogrify вы можете легко поворачивать все изображения одновременно. Следующая команда поворачивает все изображения JPG на 90 градусов:

    magick mogrify -rotate 90 * .jpg


    Вы также можете выбрать поворот изображений только в том случае, если ширина превышает высоту или наоборот, используя операторы « ».

    magick mogrify -rotate «90>» * .jpg

    Эта команда поворачивает изображения на 90, только если ширина превышает высоту.

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

    Отрегулируйте яркость, оттенок и насыщенность

    Вы также можете легко настроить яркость, насыщенность и оттенок пакета изображений с помощью ImageMagick.

    Чтобы настроить яркость изображения, вам необходимо указать желаемый общий процент яркости. 0 уменьшит его до чисто черного изображения, а 50 сделает его вдвое менее ярким. Вы также можете увеличить яркость, введя значение выше 100. Если вы не вводите значение, ImageMagick будет считать, что никаких изменений не требуется.



    Точно так же вы также можете быстро управлять насыщенностью изображения. Если вы хотите создать изображение в оттенках серого, введите 0 в качестве аргумента насыщенности. Большое значение (выше 100) создаст очень красочное изображение.

    Оттенок поворачивает цвета в изображении на заданную величину. При вводе 0 или 200 цвета поворачиваются на 180 градусов; 50 приводит к вращению против часовой стрелки на 90 градусов, тогда как использование 300 вызывает вращение на 360 градусов, что не приводит к изменениям.

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

    magick mogrify -modulate яркость, насыщенность, оттенок * .filetype

    Приведенная ниже команда настраивает все файлы JPG в папке, увеличивая яркость цвета на 20%, насыщенность цвета на 30% и уменьшая оттенок на 10%.

    magick mogrify -modulate 120,130,90 * .jpg

    Простое пакетное редактирование изображений с помощью ImageMagick

    В заключение мы хотели бы еще раз напомнить вам о необходимости резервного копирования ваших изображений в отдельной папке перед использованием инструмента ImageMagick mogrify, поскольку он перезапишет существующие изображения.

    Читайте также: