Применение пользовательского искажения конверта ImageMagick (GraphicsMagick) к тексту

Я хочу сгенерировать такой текст с помощью ImageMagick:

Искаженный текст

У меня есть шрифт в виде файла TTF, и я знаю, как создать изображение, используя только неискаженный текст. У меня проблемы с применением искажения.

«Конверт», который я хочу использовать, выглядит так:

Конверт

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

Обратите внимание, это не дуга.


person Community    schedule 16.05.2013    source источник
comment
что ты уже испробовал? Можете ли вы опубликовать изображения, которые вы получили в своих попытках?   -  person Zaphod    schedule 19.05.2013


Ответы (1)


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

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

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

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

Например, эта команда, взятая из документации ImageMagick, создает карту сферического искажения:

  convert -size 100x100 xc:  -channel R \
          -fx 'yy=(j+.5)/h-.5; (i/w-.5)/(sqrt(1-4*yy^2))+.5' \
          -separate  +channel     sphere_lut.png

это результирующее изображение:

карта сферических искажений

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

convert input.png lut_mask.png -fx 'p{ v*w, j }' output.png
person Andrea    schedule 23.05.2013