2011-07-06 8 views
1

私はalready askedだった質問を復活させていますが、実際の答えはありません。CarrierWaveを使って影を落とす

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

入力ファイルの種類は、デフォルトでjpg、jpeg、png、およびgifのCarrierWave 'ホワイトリスト'にする必要があります。保存されたファイルタイプはpngでなければなりません(必然的に、私は思います)。

ありがとうございました

答えて

2

OK、分かりました。たぶん誰かがこれが役に立つと思うかもしれません。私のCarrierWaveアップローダ、適切なビットインサイド

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メソッドを使用していました。

関連する問題