我使用CarrierWave生成版本(不同大小的缩略图),并在每个版本上添加水印。
我目前设法为每个缩略图应用水印,但我想将其添加到原始图像上。
以下是我的尝试:
def watermark
manipulate! do |img|
watermark = Magick::Image.read(Rails.root.join('app/assets/images/watermark_512.png')).first
img = img.composite(watermark, Magick::CenterGravity, Magick::OverCompositeOp)
end
end
version :original do
process :watermark
end
version :thumb_512 do
process :resize_to_fit => [512, 512]
process :watermark
end
version :thumb_256 do
process :resize_to_fit => [256, 256]
process :watermark
end
但这不起作用。但是我试着简单地添加
process :watermark
在任何"版本之外"阻止,但它只是在我的缩略图上添加两倍的水印。
答案 0 :(得分:2)
您可以在上传器类中使用由CarrierWave提供的store
回调
class SomeUploader < CarrierWave::Uploader::Base
# Your code ...
before :store, :watermark_method
def watermark_method(*args)
# watermark it!
end
end