如何使用CarrierWave仅处理原始图像文件? [英] How to process only on original image file using CarrierWave?
本文介绍了如何使用CarrierWave仅处理原始图像文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用CarrierWave生成版本(具有不同大小的缩略图),并在每个版本上添加水印。
I use CarrierWave to generate versions (thumbnails with different sizes) and also to add a watermark on each versions.
我目前设法为每个版本应用水印。缩略图,但我想将其添加到原始图像上。
I have currently manage to apply the watermark for each thumbnails but I would like to add it on the original image to.
这是我尝试的操作:
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
但这不是工作。但是我试图简单地添加
But this does not work. However I tried to simply add
process :watermark
在任何版本块之外,但所做的只是在缩略图上添加了两倍的水印。
outside any "version" block but all it does is adding twice the watermark on my thumbnails.
推荐答案
您可以在上载器类中使用CarrierWave提供的 store
回调,例如
You can use store
callbacks provided by CarrierWave in your uploader class like this
class SomeUploader < CarrierWave::Uploader::Base
# Your code ...
before :store, :watermark_method
def watermark_method(*args)
# watermark it!
end
end
这篇关于如何使用CarrierWave仅处理原始图像文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文