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 3

1 ответ:

Где строка, в которую вы записываете результат на диск?

Я считаю, что метод composite сам по себе не записывает результат на диск. Вы должны вызвать img.write('composite.gif') (или любое другое имя файла, которое вы хотите), чтобы фактически сохранить результат соединения.

Я полагаю, что carrierwave может сделать это для вас, но можете ли вы проверить это, проверив содержимое выходного файла и / или временные метки, чтобы увидеть, был ли файл изменен после загрузки?

Ref: http://rmagick.rubyforge.org/src_over.html - примерно на полпути вниз по странице