2

CarrierWave を使用してバージョン (さまざまなサイズのサムネイル) を生成し、各バージョンに透かしを追加します。

現在、各サムネイルに透かしを適用することができていますが、元の画像に透かしを追加したいと考えています。

これが私が試したものです:

def watermark
  manipulate! do |img|
    watermark   = Magick::Image.read(Rails.root.join('app/assets/images/watermark_512.png')).first
    img         = img.composite(watermark, Magick::CenterGravity, Magick::OverCompositeOp)
  end
end

version :original do
  process :watermark
end

version :thumb_512 do
  process :resize_to_fit => [512, 512]
  process :watermark
end

version :thumb_256 do
  process :resize_to_fit => [256, 256]
  process :watermark
end

しかし、これはうまくいきません。ただし、単純に追加しようとしました

process :watermark

「バージョン」ブロックの外にありますが、サムネイルに2倍の透かしを追加するだけです。

4

1 に答える 1

2

store次のように、CarrierWave が提供するコールバックをアップローダ クラスで使用できます。

class SomeUploader < CarrierWave::Uploader::Base
  # Your code ...

  before :store, :watermark_method

  def watermark_method(*args)
    # watermark it!
  end
end
于 2012-12-16T21:12:17.993 に答える