载波水印图像

Rub*_*tic 3 watermark ruby-on-rails ruby-on-rails-3 carrierwave

进入我的上传者:

version :profile do
    process :resize_to_fill => [300, 300]
    process :quality => 90
    process :watermark
  end
Run Code Online (Sandbox Code Playgroud)

然后 :

  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
Run Code Online (Sandbox Code Playgroud)
  • 安装imagemagick时,上面的内容不起作用
  • 没有错误记录,因此非常难以调试

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

jef*_*unt 5

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

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

我想载波可能会为你做这件事,但你可以通过检查文件的输出内容和/或时间戳来验证是否在上传后修改了文件?

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