2011-07-06 163 views
1

我正在复活的问题是already asked,但没有真正的答案。使用CarrierWave下载阴影

我想为使用CarrierWave上传的图像自动添加简单的阴影。使用RMagick或MiniMagick进行图像处理并不重要。

输入文件类型应该是CarrierWave'白名单'的默认值 - jpg,jpeg,png和gif。保存的文件类型应该是png(必然,我认为)。

谢谢

回答

2

好的,算出来了。也许别人会觉得这很有用。

里面我CarrierWave上传,相关的位:

include CarrierWave::RMagick 

process :shadow 

def shadow 
    manipulate! do |img| 
    layers = Magick::ImageList.new 
    image = Magick::Image.read(img.filename).first 
    shadow = image.clone 
    shadow = shadow.shadow(0, 0, 4.0, 0.5) 
    shadow = shadow.colorize(1.0, 1.0, 1.0, 'gray25') 
    layers << shadow << image 
    result = layers.optimize_layers(Magick::MergeLayer) 
    end 
end 

,我让RMagick工作是使用optimize_layers方法的关键。