Версии:
- 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
от моя качващ файл.
Моите проблеми:
Не мога да накарам водния знак да въведе картина с прозрачен фон. Играх си с:
Но няма напредък.
Не мога да регулирам правилно размера на насложеното изображение. Има много настройки за командата
geometry
, но аз заседнал съм.
Всякакви идеи и помощ биха били чудесни.
svg
делегат или да го замените сrsvg
. Опитайтеwatermark.resize()
с малък размер, след което, ако това работи, опитайте да получите размера на оригиналното изображение и да използвате процент от това заresize()
. - person Mark Setchell   schedule 29.09.2015