【问题标题】:Create angle gradient with RMagick使用 RMagick 创建角度渐变
【发布时间】:2026-02-20 08:40:01
【问题描述】:

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

根据this page of the ImageMagick documentation,可以使用以下命令。

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

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

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

【问题讨论】:

    标签: ruby imagemagick rmagick


    【解决方案1】:

    参考:

    RMagick: Magick Command Options and Their Equivalent Methods

    您可以找到命令行参数对应的 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')
    

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

    希望对您有所帮助。

    【讨论】:

    • 谢谢!这正是我所需要的。我会看看你发布的链接。我正在尝试使用多种颜色让它工作。不过,这已成为一个问题。我尝试使用带有格式和稀疏颜色的Image.read,但是,这并没有奏效。我最终可能会为此创建一个新问题。