我可以用Ruby在图像上应用蒙版吗?

时间:2012-01-26 09:02:10

标签: ruby-on-rails ruby image mask

我有一个Rails应用程序,用户可以上传图像。上传图像后,我需要在该图像上应用蒙版,因此部分图像变得透明。这可能吗?

1 个答案:

答案 0 :(得分: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!方法添加透明层。

相关问题