2012-01-26 102 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