1

我有 Rails 图像上传器的以下代码:

class PhotoUploader < BaseUploader
  ...

  # Create different versions of your uploaded files:
  version :thumb do
    process :resize_to_fill => [80, 80]
  end

  # Process files as they are uploaded:
  process resize_to_fit: [618, 412]
  process convert: 'png'
  process :watermark
  process convert: 'jpg'

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

end

基本上,我想要两件事:

  • 为原始图像添加水印
  • 创建原始图像的缩略图(不带水印)

但是,水印处理似乎是在创建缩略图之前进行的,有什么办法可以解决这个问题吗?

4

1 回答 1

0

事实证明这是不可能的。对原始版本的任何处理都会影响所有versions.

唯一的方法是保持原始版本干净并从中创建 2 个版本:version :thumbversion :watermarked.

于 2013-08-08T10:57:01.393 回答