ImageMagick - это бесплатный кроссплатформенный программный пакет с открытым исходным кодом [3] для отображения, создания, преобразования, изменения и редактирования растровых изображений . Созданный в 1987 году Джоном Кристи, он может читать и записывать более 200 форматов файлов изображений . Он и его компоненты широко используются в приложениях с открытым исходным кодом.
Автор (ы) оригинала | Джон Кристи |
---|---|
Разработчики) | ImageMagick Studio LLC |
Первый выпуск | 1 августа 1990 г . [1] |
Стабильный выпуск | 7.0.11-13 / 16 мая 2021 г . [2] |
Репозиторий | |
Написано в | C |
Операционная система | Кроссплатформенность |
Тип | Манипуляции с изображениями |
Лицензия | Лицензия ImageMagick [3] |
Веб-сайт | imagemagick |
Автор | ImageMagick Studio LLC |
---|---|
Совместимость с Debian FSG | да |
GPL совместимый | да |
Связывание из кода с другой лицензией | да |
Веб-сайт | imagemagick |
История
ImageMagick был создан в 1987 году Джоном Кристи, когда он работал в DuPont , для преобразования 24-битных изображений (16 миллионов цветов) в 8-битные изображения (256 цветов), чтобы их можно было отображать на большинстве экранов в то время. Он был свободно выпущен в 1990 году, когда DuPont согласилась передать авторские права ImageMagick Studio LLC , которая до сих пор является организацией, поддерживающей проект. [4] [5] [6]
В мае 2016 года сообщалось, что в ImageMagick есть уязвимость, с помощью которой злоумышленник может выполнить произвольный код на серверах, которые используют приложение для редактирования загруженных пользователями изображений. [7] Эксперты по безопасности, включая исследователей CloudFlare, наблюдали фактическое использование уязвимости при активных попытках взлома. [8] Недостаток безопасности возник из-за того, что ImageMagick вызвал внутренние инструменты без предварительной проверки, чтобы убедиться, что путь и имена файлов не содержат неправильных команд оболочки. [9] Уязвимость не повлияла на дистрибутивы ImageMagick, которые включали правильно настроенную политику безопасности . [ необходима цитата ]
Особенности и возможности
Программное обеспечение в основном состоит из ряда утилит интерфейса командной строки для управления изображениями. ImageMagick не имеет надежного графического пользовательского интерфейса для редактирования изображений, как Adobe Photoshop и GIMP , но включает - для Unix-подобных операционных систем - базовый собственный графический интерфейс X Window (называемый IMDisplay) для рендеринга и управления изображениями и библиотеками API для многих. языки программирования.
Выполните следующее в Linux или UNIX, чтобы запустить графический интерфейс: [10]
$ display
В противном случае изображения можно редактировать напрямую с помощью различных параметров командной строки, вообще не запуская графический интерфейс. Программа использует магические числа для определения форматов файлов изображений .
Чтобы увидеть полный список поддерживаемых форматов, выполните в Linux или UNIX:
$ identify -list format
Ряд программ, таких как Drupal , MediaWiki , phpBB и vBulletin , могут использовать ImageMagick для создания эскизов изображений, если они установлены. ImageMagick также используется другими программами, такими как LyX , для преобразования изображений.
ImageMagick имеет полностью интегрированную привязку Perl под названием PerlMagick, [11], а также многие другие: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM +), Magick ++ (C ++), JMagick. (Java), L-Magick (Lisp), NMagick (Neko / Haxe), MagickNet (.NET), PascalMagick (Pascal), MagickWand для PHP (PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby) или TclMagick (Tcl / TK).
Преобразование формата файла
Одной из основных и тщательно реализованных функций ImageMagick является его способность эффективно и точно конвертировать изображения между различными форматами файлов (для этого используется команда convert
).
Цветовое квантование
Количество цветов в изображении может быть уменьшено до произвольного числа, и это делается путем взвешивания наиболее заметных значений цвета, присутствующих среди пикселей изображения.
Связанная с этим возможность - художественный эффект постеризации , который также уменьшает количество цветов, представленных в изображении. Разница между этим и стандартным квантованием цвета состоит в том, что при стандартном квантовании окончательная палитра выбирается на основе взвешивания выраженности существующих цветов в изображении, постеризация создает палитру цветов, плавно распределенных по спектру, представленному в изображении. В то время как при стандартном квантовании цвета все окончательные значения цвета - это те, которые были в исходном изображении, значения цвета в постеризованном изображении могут не присутствовать в исходном изображении, но находятся между исходными значениями цвета.
Дизеринг
Обеспечивается точный контроль сглаживания , возникающего при изменении цвета и оттенка, включая возможность создания сглаживания полутонов .
Масштабирование жидкости
В 2008 году была добавлена поддержка жидкостного масштабирования . [2] Эта функция позволяет, например, изменять масштаб изображения 4: 3 в изображения 16: 9 без искажения изображения.
Художественные эффекты
ImageMagick включает в себя множество фильтров и функций, предназначенных для создания художественных эффектов:
- Преобразование эскиза углем
- Постеризация
OpenCL
ImageMagick может использовать OpenCL для использования ускоренной графической карты ( GPU ) для обработки. [12]
Глубокий цвет
Версия Q8 поддерживает компонент до 8 бит на пиксель (8-битная шкала серого , 24- или 32-битный цвет RGB ). Версия Q16 поддерживает компонент до 16 бит на пиксель (16-битная шкала серого, до 48- или 64-битного цвета RGB).
Другой
Ниже приведены некоторые другие возможности ImageMagick:
- Преобразование формата : преобразование изображения из одного формата в другой (например, PNG в JPEG ).
- Преобразование: изменение размера, поворот, обрезка, отражение или обрезка изображения. (Применяет их без потери генерации к файлам JPEG, где это возможно.)
- Прозрачность: сделать части изображения невидимыми.
- Рисование: добавление фигур или текста к изображению.
- Украсить: добавить к изображению рамку или рамку.
- Специальные эффекты: размытие, резкость, порог или оттенок изображения.
- Анимация: соберите файл анимации GIF из последовательности изображений.
- Текст и комментарии: вставьте описательный или художественный текст в изображение.
- Идентификация изображения: опишите формат и атрибуты изображения.
- Составной: накладывать одно изображение на другое.
- Монтаж: совмещайте миниатюры изображений на холсте изображения.
- Обобщенное искажение пикселей: исправляет или вызывает искажения изображения, включая перспективу.
- Морфология форм: извлекайте особенности, описывайте формы и распознавайте узоры на изображениях.
- Поддержка кинофильмов: чтение и запись в распространенных форматах изображений, используемых в цифровых фильмах.
- Калькулятор изображений: примените математическое выражение к изображению или каналам изображений.
- Дискретное преобразование Фурье : реализует прямое и обратное ДПФ.
- Управление цветом: точное управление цветом с помощью цветовых профилей или вместо встроенного гамма-сжатия или расширения в соответствии с требованиями цветового пространства.
- Изображения с высоким динамическим диапазоном: точно представляют широкий диапазон уровней яркости реальных сцен, начиная от самого яркого прямого солнечного света и заканчивая самыми глубокими темными тенями.
- Зашифровать или расшифровать изображение: преобразовать обычные изображения в неразборчивую тарабарщину и обратно.
- Поддержка виртуальных пикселей: удобный доступ к пикселям за пределами области изображения.
- Поддержка больших изображений: чтение, обработка или запись изображений с размерами мегапикселей, гига или терапикселей.
- Поддержка потоков выполнения: ImageMagick является потокобезопасным, и большинство внутренних алгоритмов выполняются параллельно, чтобы воспользоваться преимуществами ускорения, обеспечиваемого микросхемами многоядерных процессоров .
- Гетерогенная распределенная обработка: некоторые алгоритмы поддерживают OpenCL, чтобы воспользоваться преимуществами ускорения, обеспечиваемого совместным выполнением на разнородных платформах, состоящих из ЦП, ГП и других процессоров.
- Распределенный пиксельный кеш: разгрузка промежуточного пиксельного хранилища на один или несколько удаленных серверов.
- ImageMagick на iPhone : конвертируйте, редактируйте или создавайте изображения на вашем вычислительном устройстве iOS, таком как iPhone или iPad .
Распределение
ImageMagick является кроссплатформенным и работает в Microsoft Windows и Unix-подобных системах, включая Linux , macOS , iOS , Android , Solaris , Haiku и FreeBSD . Исходный код проекта можно скомпилировать для других систем, включая AmigaOS 4.0 и MorphOS . Он работал под управлением IRIX . [13]
Связанное программное обеспечение
GraphicsMagick - это форк ImageMagick 5.5.2, выпущенный в 2002 году, подчеркивающий кросс-релизную стабильность программного API и параметров командной строки. GraphicsMagick возникла в результате непримиримых разногласий в группе разработчиков. [14]
Смотрите также
- Дьявол
- Графическая библиотека GD
- Netpbm
Рекомендации
- ^ «История» . ImageMagick . Архивировано 14 марта 2018 года . Проверено 18 марта 2018 года .
... Доктор. Пенсаку пришлось убедить высшее руководство DuPont ... В любом случае ImageMagick не был бы доступен сегодня, если бы DuPont не передала авторские права ImageMagick Studio LLC. ImageMagick был размещен в группе comp.archives Usenet 1 августа 1990 года.
- ^ а б «Журнал изменений ImageMagick» . Архивировано 6 июня 2016 года . Проверено 9 марта 2021 года .
- ^ а б в «ImageMagick: Лицензия» . ImageMagick . Архивировано 26 октября 2016 года . Проверено 26 октября, 2016 .
- ^ «ImageMagick: История» . www.imagemagick.org . ImageMagick Studio. Архивировано 29 октября 2016 года . Проверено 18 октября, 2016 .
- ^ Хайдарбегович, Нермин (12 февраля 2019 г.). "ImageMagick: управление графикой из командной строки?" . whoishostingthis.com . Проверено 18 августа 2020 года .
- ^ «ImageMagick» . computerhope.com . 27 февраля 2019 . Проверено 18 августа 2020 года .
- ^ «Безумные эксплойты: хакеры нацелены на критическую ошибку обработки изображений» . Ars Technica. 2016. Архивировано 25 сентября 2016 года . Проверено 26 сентября 2016 года .
- ^ «Inside ImageTragick: настоящая полезная нагрузка, используемая для взлома веб-сайтов» . CloudFlare. 2016. Архивировано 1 октября 2016 года . Проверено 26 сентября 2016 года .
- ^ Уильямс, Крис (4 мая 2016 г.). «Взломщики сервера для ImageMagick настолько тривиальны, что вы воскликнете» . Реестр . Архивировано 23 декабря 2017 года . Проверено 22 декабря 2017 года .
- ^ Подскачащия Хипопотам (1 октября 2006 г.). «ImageMagick Native GUI» . linux4hippos . blogspot.com. Архивировано из оригинала на 4 марта 2016 года . Проверено 3 июня 2013 года .
- ^ ООО, Студия ImageMagick. «PerlMagick, Perl API @ ImageMagick» . imagemagick.org . Архивировано 10 мая 2017 года . Проверено 22 мая 2017 года .
- ^ «ImageMagick: Архитектура» . Архивировано 1 июня 2016 года . Проверено 6 января 2010 года .
- ^ «Magick ++ API: установите Magick ++» . imagemagick.org . Архивировано 8 мая 2017 года . Проверено 22 мая 2017 года .
- ^ «Знакомство с проектом GraphicsMagick» . Список рассылки ImageMagick-developer. 15 марта 2003 г.
дальнейшее чтение
- Монтабоне, Себастьян (2010). Начало обработки цифровых изображений: использование бесплатных инструментов для фотографов . Апресс. ISBN 978-1-4302-2841-7.
Внешние ссылки
- Официальный веб-сайт
- Политика безопасности ImageMagick - Политика безопасности ImageMagick - передовой опыт настоятельно рекомендует вам настроить политику безопасности, которая соответствует вашей локальной среде.
- Примеры IM - Примеры использования интерфейса командной строки - предоставляет множество небольших примеров, демонстрирующих широкий спектр его возможностей.
- Скрипты ImageMagick Фреда - предоставляет множество сценариев оболочки, использующих ImageMagick для выполнения более сложных задач.
- Как автоматизировать структурное тестирование PDF с помощью ImageMagick - Демонстрирует функции ImageMagick для преобразования, сравнения и сопоставления.
- Критическая уязвимость ImageMagick В ImageMagick есть уязвимость, которая позволяет искаженным изображениям вынудить веб-сервер выполнить код.