在下面的代码中,我试图在一些山脉的图像上覆盖一个透明的正方形。我认为它会起作用,但是通过设置 background_color = 'none' 它不会使图像透明!
结果是左上角的黑色方块 - 期望的结果是黑色方块应该是透明的。
require 'open-uri'
require 'RMagick'
image_url = 'http://farm9.staticflickr.com/8446/7937080514_62d7749860.jpg'
bg = Magick::ImageList.new
open(image_url, 'rb') do |f|
bg.from_blob(f.read)
end
layer = Magick::Image.new(200, 200) {
self.background_color = 'none'
}
bg.each do |frame|
frame.composite!(layer, 0, 0, Magick::OverCompositeOp)
frame.strip!
end
bg.write('out.jpg')
这是我的输出图像:
编辑:我在 Mac、Lion、ruby 1.9.3p125、ImageMagick 6.7.5-7
编辑 2:这在 Heroku 上运行良好!但不在我的机器上。Heroku 具有相同版本的 ImageMagick。奇怪:|