Воден знак с MiniMagick

Версии:

  • Ruby 2.2.3
  • Релси 4.2.4
  • mini_magick: 4.2.10
  • Carrierwave 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