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

Rub*_*tic 10 ruby-on-rails rmagick ruby-on-rails-3 carrierwave ruby-on-rails-3.1

我尝试使用以下代码从处理过的图像添加水印:

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)

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

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

def function
  version :thumb do
    process :resize_to_fill => [96, 96]
    process :watermark
  end
end
Run Code Online (Sandbox Code Playgroud)

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

小智 18

我只是这样做,它工作得非常好:

# 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
Run Code Online (Sandbox Code Playgroud)

B.