Водяные знаки с MiniMagick

Версии:

  • Руби 2.2.3
  • Рельсы 4.2.4
  • мини_магик: 4.2.10
  • Несущая 0.10.0

Описание

Я пытаюсь создать водяной маркер для небольшой галереи, используя CarrierWave в качестве загрузчика.

Я хочу, чтобы водяной знак был размером по сравнению с текущим изображением. Поэтому я пытаюсь использовать файл .svg с разной степенью прозрачности и прозрачным фоном.

Я использую водяной знак на основе Carrierwave добавляет водяной знак к обработанным изображениям

require 'mini_magick'

class Watermarker
  def initialize(original_path, watermark_path)
    @original_path = original_path.to_s
    @watermark_path = watermark_path.to_s
  end    

  def watermark!(options = {})
    options[:gravity] ||= 'SouthEast'

    image = MiniMagick::Image.open(@original_path)
    watermark = MiniMagick::Image.open(@watermark_path)

    result = image.composite(watermark, 'png') do |c|
      c.gravity options[:gravity]
    end
    result.write @original_path
  end
end

И вызывая это как process из моего загрузчика.

Мои проблемы:

  1. Я не могу заставить водяной маркер вводить изображение с прозрачным фоном. Я играл с:

    Но никакого прогресса.

  2. Я не могу правильно настроить размер накладываемого изображения. Существует множество настроек для команды geometry, но я застрял.

Любые идеи и помощь были бы замечательными.


person davidwessman    schedule 29.09.2015    source источник
comment
Это не касается использования .svg, прозрачности или изменения размера наложения.   -  person davidwessman    schedule 29.09.2015
comment
Пожалуйста, проверьте эту ссылку: stackoverflow. com/questions/9184768/   -  person Dnyanarth lonkar    schedule 29.09.2015
comment
Извините, я не говорю на Ruby, но... попробуйте создать водяной знак в виде файла PNG, а не SVG, или, если это не удастся, попробуйте обновить делегат svg или заменить его на rsvg. Попробуйте watermark.resize() с небольшим размером, затем, если это сработает, попробуйте получить размер исходного изображения и использовать процент от него для resize().   -  person Mark Setchell    schedule 29.09.2015
comment
Собираюсь попробовать конвертировать в PNG, как мне изменить размер без потерь?   -  person davidwessman    schedule 29.09.2015