2012-10-02 27 views
1

我有一个Rails的图片上传下面的代码:CarrierWave:从未经处理的图像创建拇指

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 

基本上,我想两两件事:

  • 添加水印原始图像
  • 创建原始图像的缩略图(没有水印)

但是,它显示为虽然水印处理在创建缩略图之前发生,但是有没有办法解决这个问题?

回答

0

原来,这是不可能的。对原始版本的任何处理都将影响所有versions

要做到这一点的唯一方法是保持原始版本清洁,并创建2个版本:version :thumbversion :watermarked