5

有没有办法根据 ImageMagick 中的映射来旋转图像?这个问题类似于置换贴图,但是我想根据贴图旋转图像,而不是根据贴图中的亮度/色度来扭曲和变形形状。

例如:如果我有一个图案,然后对其应用色度/亮度图形状,它将旋转图案并根据与中点 (50%) 的亮度/色度差异输出它。

像这样: 在此处输入图像描述

我的任务是创建一组相当复杂的形状,并以不同的角度将图案映射到它们的色度/亮度。

这会是某种我必须编写的自定义插件,还是在 IM 6 中有一种简单的方法来实现这一点?

非常感谢!

4

1 回答 1

5

ImageMagick 没有您想要的内置功能,但由于-fx您可以编写自己的参数。
以下命令将通过应用的蒙版顺时针旋转源图像:

convert input.png rotationmap.png -fx \
'rs=-6.28318531;
p{
    cos(v*rs)*(i-w/2.0)-sin(v*rs)*(j-h/2.0)+w/2.0,
    sin(v*rs)*(i-w/2.0)+cos(v*rs)*(j-h/2.0)+h/2.0
}' output.png

将旋转图填充为#202020旋转 45 度,例如:

hexval = (rotation_deg / 360) * 255

在此处输入图像描述

或者做一些更愚蠢的事情(实际上这很有趣):

在此处输入图像描述

注意事项:

  • 剪掉角落只是无限期地重复。
  • 旋转图需要与源图像大小相同。
  • 没有重新采样,结果可能会变得模糊或前卫。
于 2013-08-21T13:17:34.343 回答