carrierwave водяной знак изображение
Имея внутри моего загрузчика:
version :profile do
process :resize_to_fill => [300, 300]
process :quality => 90
process :watermark
end
Затем:
def watermark
manipulate! do |img|
logo = Magick::Image.read("#{Rails.root}/assets/images/watermarks/watermark.png").first
img = img.composite(logo, Magick::SouthEastGravity, Magick::OverCompositeOp)
end
end
- выше не будет работать, пока imagemagick установлен
-
Нет журнала ошибок, поэтому очень трудно отладить
-
Есть ли способ отладить и исправить приведенный выше код, чтобы сделать рабочий метод водяных знаков для carrierwave?
1 ответ:
Где строка, в которую вы записываете результат на диск?
Я считаю, что метод
composite
сам по себе не записывает результат на диск. Вы должны вызватьimg.write('composite.gif')
(или любое другое имя файла, которое вы хотите), чтобы фактически сохранить результат соединения.Я полагаю, что carrierwave может сделать это для вас, но можете ли вы проверить это, проверив содержимое выходного файла и / или временные метки, чтобы увидеть, был ли файл изменен после загрузки?
Ref: http://rmagick.rubyforge.org/src_over.html - примерно на полпути вниз по странице