【问题标题】:Rotation Mapping in ImageMagickImageMagick 中的旋转映射
【发布时间】:2013-08-17 14:12:16
【问题描述】:

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

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

像这样:

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

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

非常感谢!

【问题讨论】:

    标签: image-processing imagemagick imagemagick-convert node-imagemagick


    【解决方案1】:

    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
    

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

    注意事项:

    • 剪掉边角,无限重复。
    • 旋转图需要与源图像大小相同。
    • 不重新采样,结果可能会变得模糊或模糊。

    【讨论】:

    • 好建议!知道我如何能够强制重新采样吗?
    • @Alex 不幸的是,-fx 参数没有直接重采样,但基本插值是:imagemagick.org/script/command-line-options.php?#interpolate。我已经测试了一些,mesh 似乎吐出了好的结果,尽管它们之间的差异很小。或者,您可以将自己的插值内容放入公式中。
    猜你喜欢
    • 1970-01-01
    • 2015-05-28
    • 2012-11-08
    • 2018-09-07
    • 2021-11-14
    • 2019-07-28
    • 1970-01-01
    • 2015-03-20
    • 2013-01-19
    相关资源
    最近更新 更多