Carrierwave为处理过的图像添加水印

时间:2012-02-07 22:11:41

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 carrierwave rmagick

我尝试使用以下来自多个资源的代码为处理过的图像添加水印:

def watermark
  manipulate! do |img|
    logo = Magick::Image.read("#{Rails.root}/assets/images/watermarks/watermark.png").first
    img = img.composite(logo, Magick::SouthEastGravity, Magick::OverCompositeOp)
  end
end

唯一的问题是,你猜它不起作用。 我在日志/控制台中没有任何错误

这是我上传的方法,并调用如下:

def function
  version :thumb do
    process :resize_to_fill => [96, 96]
    process :watermark
  end
end

有关获取某些日志的原因,为什么这不起作用?我在我的系统(OSX)上安装了Rmagick gems和Imagemagick并且调整图像大小确实正常。

1 个答案:

答案 0 :(得分:17)

我只是这样做而且效果非常好:

# Process files as they are uploaded:
process :resize_to_fill => [850, 315]
process :convert => 'png'
process :watermark

def watermark
  manipulate! do |img|
    logo = Magick::Image.read("#{Rails.root}/app/assets/images/watermark.png").first
    img = img.composite(logo, Magick::NorthWestGravity, 15, 0, Magick::OverCompositeOp)
  end
end