【发布时间】:2011-09-29 05:57:00
【问题描述】:
我正在复活一个问题,它是 already asked,但没有实际答案。
我想为使用 CarrierWave 上传的图像自动添加简单的阴影。图像处理是使用 RMagick 还是 MiniMagick 对我来说并不重要。
输入文件类型应该是 CarrierWave 的“白名单”默认值--jpg、jpeg、png 和 gif。保存的文件类型应该是 png(我认为这是必然的)。
谢谢
【问题讨论】:
我正在复活一个问题,它是 already asked,但没有实际答案。
我想为使用 CarrierWave 上传的图像自动添加简单的阴影。图像处理是使用 RMagick 还是 MiniMagick 对我来说并不重要。
输入文件类型应该是 CarrierWave 的“白名单”默认值--jpg、jpeg、png 和 gif。保存的文件类型应该是 png(我认为这是必然的)。
谢谢
【问题讨论】:
好的,想通了。也许其他人会觉得这很有用。
在我的 CarrierWave Uploader 中,相关位:
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 方法。
【讨论】: