2
我使用CarrierWave生成版本(縮略圖具有不同的大小),並且在每個版本上添加水印。如何僅使用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
以外的任何「版本」塊,但它所做的只是在縮略圖上添加兩次水印。
這實際上是工作!但是有一個小錯誤。您需要將方法的名稱作爲符號傳遞給「之前」,而不是方法本身。也許你可以編輯它:)謝謝你! –
你是對的,感謝你的注意,我直接在SO中編寫代碼,猜測我很着急:)。 –