1

すでに尋ねられた質問を復活させていますが、実際の回答はありません。

CarrierWave を使用してアップロードした画像に、単純なドロップ シャドウを自動的に追加したいと考えています。画像操作が RMagick と MiniMagick のどちらを使用して行われるかは問題ではありません。

入力ファイル タイプは、CarrierWave の「ホワイト リスト」のデフォルトである jpg、jpeg、png、および gif である必要があります。保存するファイルの種類は png にする必要があります (当然のことだと思います)。

ありがとう

4

1 に答える 1

2

わかりました。たぶん、他の誰かがこれが便利だと思うでしょう。

CarrierWave Uploader 内の関連ビット:

include CarrierWave::RMagick

process :shadow

def shadow
  manipulate! do |img|
    layers = Magick::ImageList.new
    image = Magick::Image.read(img.filename).first
    shadow = image.clone
    shadow = shadow.shadow(0, 0, 4.0, 0.5)
    shadow = shadow.colorize(1.0, 1.0, 1.0, 'gray25')
    layers << shadow << image
    result = layers.optimize_layers(Magick::MergeLayer)
  end
end

RMagick を機能させるための鍵は、optimize_layers メソッドを使用することでした。

于 2011-07-07T16:14:44.227 に答える