我正在尝试生成一个透明背景的图像,但甚至没有创建一个仅仅是一个透明png的图像。我试过这个:

require "rvg/rvg"

rvg = Magick::RVG.new(100, 100)
rvg.background_fill = "pink" # Shouldn't matter
rvg.background_fill_opacity = 0
rvg.draw.write("transparent.png")

产生:
我也试过:
rvg.background_fill.opacity = 0
rvg.styles(:fill_opacity => 0)
rvg.styles(:opacity => 0)

它们最后都变成了一个粉红色的长方形。
如何使用rmagick的rvg生成透明png?
更新:图像似乎甚至不打算是透明的:
1.9.2p320 :007 > rvg.draw
 => transparent.png  100x100 DirectClass 8-bit
1.9.2p320 :008 > rvg.draw.alpha
 => false
1.9.2p320 :009 > rvg.draw.alpha?
 => false

最佳答案

在rvg.image.write之前,添加以下行:
绘制阿尔法(magick::激活alphachannel)
然后不需要设置背景填充,生成的图像将是漂亮、平滑的透明图像。

09-07 04:44