将自定义ImageMagick(GraphicsMagick)包络失真应用于文本

时间:2013-05-16 19:05:40

标签: image-processing imagemagick imagemagick-convert graphicsmagick

我想使用ImageMagick生成这样的文字:

Warped text

我将font作为TTF文件,并知道如何使用未失真的文本生成图像。我遇到的麻烦就是应用失真。

我想使用的“信封”如下所示:

Envelope

我一直在阅读关于扭曲的ImageMagick's examples,但似乎无法找出正确的命令。

请注意,这不是弧形。

1 个答案:

答案 0 :(得分:2)

这是一项非常复杂的任务:ImageMagick有一些内置的失真效果,但没有一个类似于你需要的效果。

为了实现您的目标,您可以尝试定义自定义失真:例如使用图像映射(特别是绝对失真查找映射,更多信息here)。

基本上,您可以创建一个黑/白渐变图像(地图),用于定义特定效果应如何应用于图像的每个像素。

棘手的部分是正确生成图像映射:您可以手动或使用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

这是结果图像:

spherical distortion map

创建失真贴图后,您可以将其应用于图像,例如:

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