2012-01-26 53 views

回答

5

RMagick(一个Ruby的图像处理库),可以对对象应用剪贴路径:http://www.imagemagick.org/RMagick/doc/rvgclip.html

基本上,你需要:

  • 创建剪贴路径实例
  • 使用绘图API来绘制你的面具
  • 应用路径图像

there弹出如何实现这样的一个例子锁孔形象”上的点击:

require 'rvg/rvg' 

hat = Magick::Image.read('images/Flower_Hat.jpg').first 
rvg = Magick::RVG.new(hat.columns, hat.rows) do |canvas| 
    keyhole = Magick::RVG::ClipPath.new do |path| 
     path.circle(60, canvas.width/2, 80) 
     path.polygon(canvas.width/2-10, 60, 40, 230, 160, 230, canvas.width/2+10, 60) 
    end 
    canvas.image(hat, nil, nil, 20, 20).styles(:clip_path=>keyhole) 

end 

rvg.draw.write('rvg_clippath.gif') 

编辑:

如果您需要申请一个透明背景的最简单的方法应该是可以裁剪图像,然后使用Image#composite!方法添加一个trnasparent图层。

+0

这看起来像一个很好的例子!我想我在这里缺乏术语知识。但似乎剪贴蒙版不支持半透明。我也可以这样做吗?例如使用在Photoshop中创建的遮罩层? –

+0

编辑我的帖子。 – Jef

+1

这里的剪裁/作品的例子:http://weare.buildingsky.net/2006/10/18/render-greatlooking-collages-with-ruby-and-rmagick – Jef