2011-07-06 2 views
1

Je suis en train de ressusciter une question qui était already asked, mais qui n'a pas de réponse réelle.Ombres portées à l'aide de CarrierWave

Je souhaite ajouter automatiquement des ombres portées simples aux images que je télécharge à l'aide de CarrierWave. Ce n'est pas grave pour moi si la manipulation d'image se passe en utilisant RMagick ou MiniMagick.

Les types de fichiers d'entrée doivent être les valeurs par défaut de la liste blanche CarrierWave - jpg, jpeg, png et gif. Le type de fichier enregistré devrait être png (nécessairement, je pense).

Merci

Répondre

2

OK, figured it out. Peut-être que quelqu'un d'autre le trouvera utile.

intérieur de mon CarrierWave Uploader, les bits pertinents:

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 

La clé pour moi de RMagick au travail utilisait la méthode optimize_layers.

Questions connexes