Что за программа imagemagick

Работа с готовыми изображениями – достаточно распространенное явление в веб-программировании. Построение обычной веб-галереи требует создания уменьшенных копий картинок, компрессии, конвертации формата, а возможно, и некоторых других операций по их обработке. Идеальное, на мой взгляд, средство для решения подобных задач – графический пакет ImageMagick.

Для подобных действий также широко применяется библиотека GD, имеющая в арсенале своей второй версии , довольно внушительный список функций.

Работать с GD можно посредством PHP, Perl, Tcl и некоторых других языков. Она имеет широкие возможности, но качество результирующих изображений часто оставляет желать лучшего. Кроме того, такие действия, как изменение пропорций, «обрезка» изображения, манипуляции с цветами, вставка другого рисунка, хоть и возможны, но крайне неудобны.

Здесь на помощь приходит пакет ImageMagick (http://imagemagick.org), представляющий прекрасное средство для обработки изображений. Работа с ним возможна посредством интерфейсов для различных языков программирования (Perl, Python, PHP, C). Сегодня мы рассмотрим способы и приёмы работы с графикой PHP с использованием пакета ImageMagick.

How to download & install ImageMagick on Windows 7/8/10

Что представляет собой ImageMagick?

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

На самом деле это согласованный (что немаловажно) набор утилит для работы с графикой, причём в полном соответствии с идеологией каждая из них выполняет свою задачу. Конечно, возможности ImageMagick не могут сравниться с потенциалом графического процессора, но для наших задач это и не нужно. Если вы пользователь *nix-операционной системы, то ImageMagick у вас, скорее всего, уже установлен или по крайней мере присутствует в дистрибутиве. В противном случае забираем его по адресу http://www.imagemagick.org/script/download.php (присутствуют также версии для Windows и MacOS).

Для PHP-разработчика есть два основных пути работы с изображениями с помощью ImageMagic: выполнять команды пакета, пользуясь функцией exec() (или system()), или использовать класс imagick из репозитария PEAR. Большинство программистов применяют именно первый подход. Причины этого очевидны – любая работа с графикой означает довольно существенное потребление ресурсов веб-сервера, а дополнительный интерфейс, как бы хорошо он ни был написан, эту нагрузку отнюдь не уменьшает. Правда, в последнее время появился повод пересмотреть эту точку зрения, но об этом чуть позже. Кроме того, прямой вызов команд пакета даёт доступ ко всем его возможностям.

Конечно, у данного метода есть и недостатки. У скриптов, вернее, у пользователя, от имени которого они запускаются, должны быть соответствующие права, но проблемы безопасной и эффективной работы веб-сервера мы в данный момент не обсуждаем. Основные возможности пакета будем рассматривать, предполагая, что его команды запускаются именно таким образом.

ImageMagick — better than you know

Наверное, самая часто используемая утилита ImageMagic – это convert. Её возможности мы продемонстрируем на достаточно типовой задаче конвертации графических файлов из одного формата в другой. Вот как просто проходит эта операция:

// исходный файл

$primary=»test.jpg»;

// имя нового файла

$secundary =»test2.gif»;

exec(«convert «. $primary.» » test2.gif);

Вот и всё! Под именем test2.gif мы получили копию исходного изображения в новом формате.

Разумеется, продемонстрированная функциональность довольно скромна, но в справке по convert можно найти более 150 (!) опций этой утилиты, ознакомившись с которыми, начинаешь понимать, почему в названии пакета присутствует слово magick.

Скажем, уменьшить вес картинки можно, просто включив одну из опций:

exect(«convert «. $primary.» -resize 30% «. test.gif);

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

Рисунок 1. Исходное фото

Картинка (в формате jpg) занимает 124 Kb. После вышеприведённого преобразования получаем рисунок в формате gif (рис. 2), «весящий» уже 37 Kb.

Рисунок 2. Уменьшаем «вес» фотографии

Конечно, потеря качества есть, но любой человек, работавший до этого с GD, признает результат замечательным. Воспользуемся какой-нибудь ещё возможностью convert, например, изменим цвета оригинала:

exect(«convert «. $primary.» -coloreze 0, 0, 50 «. test2.gif);

результат на рис. 3.

Рисунок 3. Экспериментируем с цветом

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

Утилита mogrify во многом повторяет функциональность convert, но результаты преобразования она сохраняет в исходном файле. Кроме того, данная утилита позволяет работать с группой файлов по маске.

n Montage – позволяет комбинировать изображения, создавать композиции.

n Animate – как видно из названия, используется для анимации, позволяет работать с анимированными gif-файлами.

n Combine – комбинирует изображения (очень удобна для нанесения логотипов на картинки).

Читайте также:
Программа sfx что это

n Import – «снимает» изображение заданной области экрана.

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

n Identify – возвращает информацию о параметрах изображения.

Основная при ручной работе утилита display является «обвёрткой» для остальных функций преобразования графики, нам в данном случае бесполезна.

Использование модуля Imagick

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

Относительно недавно на его основе был создан PECL-модуль imagick, доступный в настоящее время по адресу: http://pecl.php.net/package/imagick (присутствует и версия под Windows, в виде скомпилированной dll, скачать её можно здесь: http://snaps.php.net/win32/PECL_4_3). PECL – это репозитарий модулей PHP, не входящих в официальный дистрибутив. Большинство из них находятся в разработке, а самые успешные становятся штатными расширениями (из недавних это модуль SOAP).

Расширение устанавливается как обычный php-модуль, в папку ext/imagick (или, в зависимости от версии PHP, в extensions/imagick), затем в конфигурационном файле php.ini, в секции Dynamic Extensions, прописываются соответствующие строчки:

;для UNIX систем

extension= imagick.so

;для Windows

extension=msql.dll

После перезагрузки веб-сервера, функции imagick становятся доступны.

Предупреждение для программистов, решивших опробовать возможности пакета на операционной системе Windows, – скомпилированная dll будет работать только самой последней версией интерпретатора PHP.

Разумеется, модуль imagick не предоставит доступ ко всем возможностям ImageMagick (по уверению его создателя, пока), но наиболее распространенные действия с графикой в веб-программировании в нём уже реализованы.

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

Следует также заметить, что расширение в разработке и все его функции имеют статус экспериментальных, в частности это обозначает, что использовать их нужно осторожно (use this function at your own risk). Правда, в моей практике никаких опасных сбоев замечено не было. Работа с расширением происходит так:

$handle = imagick_create () or die («Could not create handle»)

imagick_read($handle,»myimg.gif»);

imagick_set_attribue($handle, array(«quality»=>10, «format»=>»jpeg»);

imagick_write($handle,»myimg.jpg»);

imagick_free($handle);

В первой строчке функцией imagick_create() мы получаем указатель на новый экземпляр imagick, который потом используем во всех дальнейших действиях. Затем с помощью imagick_read() считываем существующее изображение. Формат файла при этом определяется автоматически, если же этого не происходит, разработчики рекомендуют использовать префикс из названия формата, отделённый от имени файла двоеточием (например, GIF:mygif.gif). Данная функция позволяет задавать в качестве второго параметра и URL (например, http://my.server.com/picture.gif). Другой пример использования imagick_read():

$handle = image_new() or die («Could not connect»);

imagick_read($handle, array(«mypic.gif», «http://my.server.com/mypic.png»));

imagick_write($handle, «PNG:mypic.myext»);

imagick_free($handle);

В данном случае применяется image_new(), синоним и вероятная замена imagick_create ().

Функция imagick_set_attribue() изменяет атрибуты рисунка, получая в качестве второго параметра их массив. В настоящее время доступны следующие атрибуты:

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

Конечно, список не впечатляет, но всё, что здесь написано, касается версии модуля 0.1, а он активно разрабатывается.

Imagick_write() осуществляет запись результата в указанный файл локальной файловой системы, при этом формат файла определяется по заданному расширению. В случае нераспознавания формата рекомендации такие же, как и для функции imagick_read().

Наконец imagick_free(), как нетрудно догадаться из названия, освобождает указатель и все связанные с ним ресурсы.

Что осталось за рамками нашего небольшого примера? Прежде всего группа функций для преобразования изображений:

n imagick_copy_shear() – усекает изображение до заданных размеров;

n imagick_copy_ crop() – также усекает, но с возможностью задания начальных координат;

n imagick_copy_rotate() – поворачивает изображение вокруг своей оси на заданный угол;

n imagick_copy_sample() – масштабирует изображение.

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

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

Источник: samag.ru

Обзор графического редактора ImageMagick для Ubuntu Linux

ImageMagick консольный фотошоп

Ошибка в тексте? Выделите ее мышкой! И нажмите: CTRL+Enter, сообщите об этом, автор постарается в краткие сроки обновить / исправить материал.

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

ImageMagick - Консольный фотошоп для Ubuntu Linux

Конечно же, много манипуляций с изображениями, вы можете сделать с таких графических редакторов как GIMP и Photoshop, но ImageMagick в некотором функционале обходит редакторы выше, а именно в пакетном преобразовании фото, чем никакой Фотошоп и Гимп не может похвастаться.

Читайте также:
Программа апз что это

На текущий момент ImageMagick имеет поддержку наверное всех известных графических форматов(более 200) включая PNG, JPEG, JPEG 2000, GIF, TIFF, DPX, EXR, WebP, PostScript, PDF, и SVG, проверить можно выполнив в терминале следующую команду:

convert -list format

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

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

Возможности ImageMagick

  • Анимация — вы можете создать GIF анимацию имея для этого заранее подготовленную группу изображений, которую, можно легко соединить в одно единое изображение, в итоге всего этого и получится анимация слайдов, между которыми будет установлен тайм-аут, который вы сможете задать сами.
  • Управление цветами — вы сможете с помощью терминала работать с различными цветовыми профилями как RGB так и SRGB, возможность конвертирования фото с одного в другой и наоборот. Так же с помощью команд мы можем залить фон фото нужным на цветом, все это прописывается так же с помощью команд, в следующем материале, мы начнем рассматривать конкретные примеры.
  • Обработка изображений — с помощью ImageMagick работая в консоли, вы так же имеете возможность обрабатывать фото придавая им различных эффектов, например(задав тень, сделать фото объемным придав виду фото как бы 3D, использование готовых шаблонов для добавления эффектов фото, объединение изображений с отдельных частей, поворот фото как влево так и вправо на нужное количество градусов).
  • Работа с шириной, высотой, полное управление фото и возможность манипуляций с размерами в любой размер который вам нужен.
  • Возможность смещения фото по геометрии задав нужные позиции, все доступно и легко прописывается используя терминал.
  • Работа со стеком изображений.
  • Преобразование фото в разнообразные форматы, об этом я уже ранее писал, все делается довольно легко.
  • Сomposite, работа с наложением фото друг на друга, наложение имеет много плюсов с помощью которых мы можем создавать действительно эффектные фото и создавать что-то свое уникальное, конечно в фотошопе или Gimp, Вы это можете сделать простым перетягиванием фото с помощью мыши, но умение работы с консольным фотошопом, вам так же пригодится.
  • Использование компонентов маркировки, Вы можете с помощью команд задать в терминале определенные координаты, просканировать фото и нарисовать рисунок, все не так просто как кажется, так как нужно точно просчитать координаты для рисования.
  • Добавление границ и рамок к фото, а так же не просто рамок, но и возможность задания полного очертания фото. Представьте, у вас имеется красочное фото, Вы можете задать полное очертание фото по его границам и конвертировать его в черно белую окраску, после распечатать рисунок и имеем готовое занятие для ваших детей, для раскраски мультяшных героев, все это так же доступно с консольного фотошопа.
  • Дискретное преобразование Фурье. Если кто-то не понимает, что за преобразования Фурье, и чем оно нам поможет, объясню вкратце это математическое преобразование позволяет обработать фото и улучшить следующие моменты (повышение яркости и контрастности, устранение размытости, добавление резкости и удаления шумов).
  • Работа с пиксельным кешем.
  • Draw — работа с разнообразными геометрическими фигурами и текстом, которые можно наложить на наше фото. Очень много чего предстоит описать, все это будет в дальнейших статьях.
  • Работа с шифрование фото или с расшифровкой. Вы можете зашифровать ваши фото в некий бред который никто не сможет расшифровать без вашего участия и не имея вашего пароля который вы для этого использовали. Полезная штука если на компьютере работает несколько человек.
  • Generalized pixel — работа с искажением пикселей.
  • Гетерогенная обработка изображений. ImageMagick включает в себя поддержку гетерогенной обработки фото используя для этого фреймворк OpenCL, который позволяет использовать многопоточность, что ускоряет обработку в разы в сравнении с стандартной обработкой.
  • Работа с динамическим диапазоном изображений HDRI. По умолчанию, пиксели изображений в ImageMagick хранятся как значения без знака в диапазоне от 0 до квантовой глубины, которая, как правило, 16-бит (Q16). При использовании HDRI, пиксели хранятся в представлении с плавающей точкой и могут включать в себя отрицательные значения, а также значения, которые превышают квантовую глубину. Большинство цифровых форматов изображений не поддерживает HDRI, для таких изображений любые пиксели вне диапазона квантовой глубины сжимаются, и после сохранения, фото получается с более высоким качеством, что соответственно лишь плюс например для фотографов и не только.
  • Калькулятор изображений — используя оператор Fx в нашем математическом конвертировании, мы можем создавать совершенно новые изображения с давно забытых старых(добавить градиент, добавление новых цветов для каналов фото, возможность масштабирования или же поворота, совмещение, объединение пикселей)и это еще не все.
  • Работа с градиентами, возможность наложения градиентов к фото, накладывая таким образом дополнительные эффекты которые лишь улучшают ваши фото.
  • Добавление мета данных к фото, то есть полное описание к файлу(название, формат, размеры, цветовой профиль, глубина) и много другой дополнительной информации, дата создания и дата изменения или любого редактирования, все это можно добавить в метаданные к файлу.
  • Возможность конвертирования фото под мобильную платформу IOS для мобильных устройств iPhone/IPad.
  • ImageMagick поддерживает возможность работы с (мега, гига и тера) пиксельными размерами изображений. Ширина изображения или высота может варьироваться от 1 до 2 гига-пикселей для 32-битной ОС и до 9-EXA пикселей для 64-битной ОС.
  • Монтаж фото используя утилиту montage, позволяет объединить целую группу фото с 5-10 и более и создать одно целостное, что-то на подобии ускоренной фотосессии задав автоматический таймер на несколько секунд и после, вы имеете все фото в одном флаконе, конечно не совмещенные в одно, а объединенные друг к другу, в итоге имеем одно длинное фото. Не всем этот функционал полезен, но думаю найдутся и такие.
  • Морфология форм — Морфология первоначально была разработана в качестве метода, по которому структура форм в изображении может быть очищена или проверена путем сравнения каждого пикселя с соседним различными способами, что позволяет работать с каждым пикселем отдельно и задать тень либо же яркость как вам потребуется. Функционал довольно полезный, конечно название такое закрученное, что с первого раза и не догадаешься что это такое.
  • Motion picture support — поддержка обработки формата изображений DPX (SMPTE 268M-2003), который ранее был разработан компанией Kodak Cineon для хранения одного кинокадра или потока видеоданных.
  • Работа с шумами, цветами и улучшением качества фото(резкость/размытость), обработка фильтрами итд.
  • Добавление к фото текста и комментариев которые можно стильно оформить и придать изображению тех параметров которые были задуманы.
  • Работа с прозрачностью в фото, наверно один из очень важных элементов без которого графический редактор трудно таковым назвать, но как видите и консольный фотошоп ImageMagick, аналогично обладает этим функционалом.
Читайте также:
Universal media creation tool что это за программа

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

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

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

Источник: linuxsoid.ru

ImageMagick-6.2.0-7

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

Информация о пакете

  • Адрес (HTTP): http://www.imagemagick.org/download/ImageMagick-6.2.0-7.tar.bz2
  • Адрес (FTP): ftp://ftp.imagemagick.net/pub/ImageMagick/ImageMagick-6.2.0-7.tar.bz2
  • Контрольная сумма: 182c5285e6e241439a7fbdfd2a4471b1
  • Размер: 4.5 MB
  • Требуемое дисковое пространство: 109 MB
  • Расчетное время сборки: 2.76 SBU

Зависимости ImageMagick

Рекомендованные
Опционально (установка, основанная на поддержке требуемого формата и средств)

Установка ImageMagick

Установим Imagemagick запуском следующих команд:

sed -i -e ‘s/$(LIBLTDL) $/$/’ Makefile.in ./configure —prefix=/usr —with-modules make

А теперь, как пользователь root:

make install

Дополнительные опции конфигурации

Существуют дополнительные ключи, которые могут быть помещены для ImageMagick для настройки установки по вашим требованиям. Просмотрите инструкции по установке ImageMagick на http://www.imagemagick.org/www/Install-unix.html .

Объяснение команд

sed -i -e ‘s/$(LIBLTDL) $/$/’ Makefile.in : Пакет будет собирать и устанавливать другую версию библиотеки Libtool в /usr/lib. Эта команда заставит пакет компоноваться с установленной версией libltdl и не заменит ее.

—with-modules: Включает поддержку для динамически загружаемых модулей.

Установленные программы: animate, compare, composite, conjure, convert, display, identify, import, Magick-config, Magick++-config, mogrify, montage и Wand-config

Установленные библиотеки: libMagick.[so,a], libMagick++.[so,a], libWand.[so,a], Perl модуль PerlMagick.so и большое количество модулей плагинов

Установленные директории: /usr/include/magick, /usr/include/wand, /usr/lib/ImageMagick-6.2.0, /usr/lib/perl5/site_perl/5.8.5/i686-linux/auto/Image/Magick, /usr/share/ImageMagick-6.2.0

Короткое описание

animate

анимирует последовательность изображений.

compare

сравнивает изображение с восстановленным изображением.

composite

смешивает несколько изображений в одно имеющееся.

conjure

обрабатывает MSL скрипт для создания изображения.

convert

конвертирует изображение между разными форматами.

display

identify

описывает формат и характеристики файла изображения.

import

захватывает окно X.

Magick-config и Magick++-config

показывает информацию об установленной версии ImageMagick и Magick++.

mogrify

montage

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

Wand-config

показывает опции, необходимые для использования библиотеки Wand.

позволяет читать, манипулировать и записывать большое количество графических форматов файлов, используя библиотеку ImageMagick . Запустите make в директории PerlMagick/demo дерева исходников пакета для просмотра демонстрации возможностей модуля.

Последнее обновление 2005-03-17 09:13:20 -0700

Источник: www.opennet.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru