使用MiniMagick进行水印

时间:2015-09-29 11:27:31

标签: imagemagick carrierwave ruby-on-rails-4.2 minimagick

版本:

  • Ruby 2.2.3
  • Rails 4.2.4
  • mini_magick:4.2.10
  • Carrierwave 0.10.0

描述

我正在尝试使用CarrierWave作为上传器为小型画廊创建水印。

我希望水印的大小与当前图像相比较。因此,我尝试使用具有不同不透明度和透明背景的.svg文件。

我正在使用基于Carrierwave add a watermark to processed images

的水印
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命令有很多设置,但我被卡住了。

  3. 任何想法和帮助都会很棒。

0 个答案:

没有答案