如何使用RMagick渲染透明渐变?

时间:2010-05-31 21:35:50

标签: ruby rubygems image-manipulation imagemagick rmagick

想要使用RMagick创建一个从rgba(0,0,0,0.3)到rgba(0,0,0,0.7)的渐变的PNG图像。这可能吗?

2 个答案:

答案 0 :(得分:1)

我想它无法完成。如果您查看here中的c代码,您会看到不透明度自动设置为OpaqueOpacity。此外,如果你看看如何实现填充,他们只会写图像。

另一方面,它可以在较低的水平上完成。如果不透明度始终相同,则可以使用ImageList然后将其展平。

答案 1 :(得分:1)

有一种方法可以使用RM从RMagick中生成透明渐变图像 Gradient Built-in FormatImage.read()

require 'RMagick'

img = Magick::Image.read("gradient:rgba(0,0,0,0.3)-rgba(0,0,0,0.7)") do
    self.size = "100x100"
end
img.first.write("out.png")

这与在命令行中运行以下内容相同:

$ convert -size 100x100 'gradient:rgba(0,0,0,0.3)-rgba(0,0,0,0.7)' out.png