使用CarrierWave投下阴影

时间:2011-07-06 00:50:40

标签: ruby-on-rails carrierwave

我正在复活already asked的问题,但没有真正的答案。

我想自动为使用CarrierWave上传的图像添加简单的阴影。使用RMagick或MiniMagick进行图像处理对我来说无关紧要。

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

由于

1 个答案:

答案 0 :(得分: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方法。