使用RMagick gem透明背景的flatten_images

时间:2012-05-22 00:39:43

标签: ruby imagemagick transparency

好像我能找到这个,但不能发现任何东西。有一个简短的脚本:

require 'rubygems'
require 'RMagick'

img = Magick::ImageList.new("public/images/dev_banner_background.png")
gc = Magick::Draw.new

img.annotate(gc, 0,0,15,130, "| #{ENV['SERVER_TYPE']} Server |") do
  self.pointsize = 13
  self.rotation = -45
  self.kerning = 1
  self.stroke = "#ffffff"
  self.fill = "#ffffff"
end

picture = img.flatten_images

picture.write("public/images/dev_banner.png")

dev_banner_background.png是一个透明背景上的小横幅,类似于Github的“在Github上叉我”横幅。

很好地将此文本覆盖在横幅上(想要覆盖在开发/登台服务器上)。但是生成的图像具有白色背景。假设它在flatten_images调用中,但无法弄清楚如何使其变得平坦透明。任何人吗?

1 个答案:

答案 0 :(得分:0)

找到它。

  img = Magick::ImageList.new("public/images/dev_banner_background.png")
  img.background_color = "none"
  gc = Magick::Draw.new

我试图在flatten_imagesannotate方法中设置背景颜色。我没有意识到ImageList直接有background_color属性,因为我没有在instance methods and attributes列表中看到它。也许我只是错过了它。