ruby – 将一个图像合成另一个图像时,RMagick透明度不起作用
发布时间:2020-12-17 02:18:49 所属栏目:百科 来源:网络整理
导读:在下面的代码中,我试图在一些山脉的图像上覆盖一个透明的方块.我认为它会起作用,但通过设置background_color =’none’它不会使图像透明! 结果是左上角有一个黑色方块 – 所需的结果是黑色方块应该是透明的. require 'open-uri'require 'RMagick'image_url
在下面的代码中,我试图在一些山脉的图像上覆盖一个透明的方块.我认为它会起作用,但通过设置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,Magick::OverCompositeOp) frame.strip! end bg.write('out.jpg') 这是我的输出图像: 编辑:我在Mac,Lion,ruby 1.9.3p125,ImageMagick 6.7.5-7 编辑2:这在Heroku上工作正常!但不是在我的机器上. Heroku具有相同版本的ImageMagick.奇怪:| 解决方法
出于某种原因,layer.alpha? == false.所以我做了sq.alpha(Magick :: ActivateAlphaChannel)然后它工作了!
参考:http://www.imagemagick.org/RMagick/doc/image1.html#alpha (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |