载波水印图像

时间:2012-03-12 19:33:40

标签: ruby-on-rails ruby-on-rails-3 carrierwave watermark

进入我的上传者:

version :profile do
    process :resize_to_fill => [300, 300]
    process :quality => 90
    process :watermark
  end

然后:

  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
    安装imagemagick时
  • 上面的
  • 不起作用
  • 没有错误记录,因此非常难以调试

  • 有没有办法调试和修复上面的代码,为carrierwave制作一个有效的水印方法?

1 个答案:

答案 0 :(得分:5)

将结果写入磁盘的行在哪里?

我相信composite方法本身并不会将结果写入磁盘。您必须调用img.write('composite.gif')(或任何您想要的文件名)才能实际保存复合结果。

我认为carrierwave可能会为您执行此操作,但您是否可以通过检查文件的输出内容和/或时间戳来验证是否在上传后修改了文件?

参考:http://rmagick.rubyforge.org/src_over.html - 大约在页面的一半