×
Ruby on Rails: постинг твитов через Twitter API (04 нояб 2017)

Практикуемся в Ruby on Rails.

Вопрос ImageMagick

Больше
7 года 1 мес. назад - 7 года 1 мес. назад #1 от Aleksej
Aleksej создал эту тему: ImageMagick


Первое, что приходит в голову пользователя, впервые услышавшего о ImageMagick:

Консольный графический редактор для обработки изображений? ЗАЧЕМ???

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

На нашем форуме уже рассматривалась возможность нанесений водяных знаков (watermarks) при помощи ImageMagick. Продолжим эту тему.

ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.

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

Преобразование изображения из одного формата в другой (например, PNG в JPEG).
· Трансформирование: размер, вращение, увеличение, подгон под рамку.
· Прозрачность: установите коэффициент прозрачности.
· Рисование и черчение: добавьте объекты или текст к вашему изображению.
· Добавление простых и декорированых рамок вокруг изображения.
· Специальные эффекты: сворачивание листа, ступенчатое отображение (тень), искусственные пятна и другое.
· Возможность создавать GIF-анимации из нескольких изображений.
· Добавление пояснительного или декорированного текста к русунку.
· Функция идентификации изображения описывает формат и свойства графического файла.
Программа идентифицирует формат и характеристики одного и более файлов. Также сообщает о поврежденных и не законченных изображениях. Информация сопровождается номером изображения, именем файла, размерами рисунка, количеством цветов, количеством байтов в файле, форматом и даже количеством секунд необходимых для чтения и обработки файла.
· Например,
$magick> identify rose.jpg
rose.jpg JPEG 640x480 DirectClass 87kb 0.050u 0:01
· Компоновка одного изображения из нескольких.
· Монтаж миникопии изображение рядом с основным.
· Поддержа форматов изображений движения, которые используются и цифровой обработке фильмов (формат DPX).
· Поддержка обработки изображения, используя математические операции. Это дает возможность, например, разработать изменение цвета по своему математическому закону, а также применять многие другие изменения, используя эту технологию.
· Динамическое ранжирование интенсивности света. Эта функция автоматически распределяет освещенность от солнечных лучей до самых глубоких и темных теней, используя оценку этой картины в реальной сцене.
· Шифрование и расшифровка изображения. Эта функция делает изображение непонятным и неразборчивым с возможностью обратного восстановления.
· Поддержка обработки очень больших изображений. Просматривайте и редактируйте Mega и Giga-пиксельные изображения.


Итак, рассмотрим нсколько приемов работы с ImageMagick:

Перевод в оттенки серого
-colorspace GRAY
Пример:
convert -colorspace GRAY image.jpg image_convert.jpg
Ключ colorspace позволяет переход между GRAY, OHTA, RGB, Transparent, XYZ, YCbCr, YIQ, YPbPr, YUV, CMYK.

Перевод в ч/б

1. Бинаризация с диффузией ошибки, ключи:
-dither
-monochrome
Вместе с этой опцией применяются ключи -colors или -monochrome для определения используемого цветового пространства.

2. Бинаризация по порогу, ключ:
-threshold число
где "число" - значение порога.
Пример:
convert -threshold 128 1_image.png 2_image.png

Локальная адаптивная бинаризация по порогу
-lat ШиринаxДлина{+-}Смещение{%}
Пример:
convert -lat 3x3+5% image.jpg image_convert_3x3.jpg

Постеризация

-posterize количество_оттенков

Инвертирование
-negate

Изменение разрядности

Пример; делаем из 16-битного изображения - 8-битное:
-depth 8

Изменение контрастности
-contrast
+contrast
Пример:
convert -contrast image.jpg image_contrast-30.jpg

Автоконтраст
-equalize

Нормализация
-normalize

Гамма-коррекция

-gamma значение

Значения менее 1.0 делают изображение более темным; более 1.0 - осветляют.
Область наиболее частого применения - от 0.8 до 2.3.
Возможно применение гамма-коррекции для различных каналов, пример:
-gamma 1.3/2.0/1.8

Уровни
-level точка_чёрного{,точка_белого}{%}{,значение_гаммакоррекции}
Возможно указать как абсолютную величину, так и в %.

Изменение размера изображения

1. Задаем точный размер в пикселях:
-resize XXXxYYY
2. В процентах:
-resize 150%
3. Масштабирование изображения возможно и так:
-scale число%

Кадрирование
-crop ШиринаxВысота{+-}<ИсходноеХ>{+-}<ИсходноеY>{%}

Пример:
convert -crop 95x85+50+12 image.jpg image_convert_crop.jpg

Изменить плотность изображения

Меняем количество пикселей на дюйм:
-density DPIгоризонтальноеxDPIвертикальное
-density число

Поворот изображения
-rotate "+-градусы"

(по часовой стрелке +, против часовой -)

Фильтры

1. Размытие по Гауссу
-blur Радиус
-blur РАДИУСxСИГМА

2. Радиальное размытие
-swirl градус

3. Удаление спекл-шума
-despeckle

4. Выделение краев
-edge радиус

5. Увеличение резкости
-sharpen РадиусxСигма

6. Медианная фильтрация
-median радиус

7. Нечеткая маска
-unsharp РадиусxСигма+величина+порог

8. Добавление и удаление шума
-noise радиус
+noise тип

Типы шумов - Uniform, Gaussian, Multiplicative, Impulse, Laplacian, Poisson.
Последнее редактирование: 7 года 1 мес. назад от Aleksej.

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

Больше
7 года 4 нед. назад #2 от hubbitus
hubbitus ответил в теме Re: ImageMagick
Вообще это потрясающе мощное средство.
Больше опций смотрите в мане, или на сайте: imagemagick.org/script/command-line-proc...9k19ara9u18ik09rq1l5
imagemagick.org/script/command-line-options.php

Ну и конечно же, потрясающее количество подробных примеров использования с описаниями: www.imagemagick.org/Usage/

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

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