0

我想用 RMagick 创建一个角度渐变。最终结果应该类似于下图。我必须能够定义颜色的位置。

在此处输入图像描述

根据ImageMagick 文档的这个页面,可以使用以下命令。

convert -size 50x1000 gradient: -rotate 90 -alpha set \
          -virtual-pixel Transparent +distort Polar 49 +repage \
          -transverse  gradient_angle_masked.png

但是,我对 RMagick 完全陌生,通过阅读它的文档,我无法弄清楚如何将他们的命令转换为 RMagick 中的命令。

谁能帮我翻译命令或指出正确的方向?任何示例代码将不胜感激。

4

1 回答 1

4

参考:

RMagick:Magick 命令选项及其等效方法

您可以找到命令行参数的相应 RMagick 方法/属性。您给出的命令可以翻译成以下 Ruby 代码。但是,要获得您提供的图像,您必须进行更多挖掘。

require 'RMagick'

fill = Magick::GradientFill.new(0, 0, 0, 1000, '#FFF', '#000')
image = Magick::Image.new(50, 1000, fill)
image.rotate(90)
image.alpha(Magick::SetAlphaChannel)
image.virtual_pixel_method = Magick::TransparentVirtualPixelMethod
image = image.distort(Magick::PolarDistortion, [0]) do
  self.define('distort:Radius_Max', 49)
end
image.transpose
image = image.crop(0, 475, 50, 50, true)
image.write('test.png')

您可能感兴趣的一些页面:

希望有帮助。

于 2013-06-05T17:01:17.940 回答