Bilder verschiedener Versionen in Carrierwave erneut verarbeiten

Mit Carrierwave, habe ich 3 Versionen von avatar - ein original, ein small_thumb und ein large_thumb mit den folgenden Zeilen:

process :resize_to_limit => [400, 400]  

   version :big_thumb do
     process :resize_to_limit => [80, 80]
   end

   version :small_thumb do
     process :resize_to_limit => [50, 50]
   end

Fügte ich eine zusätzliche Methode in meinem AvatarUploader Klasse:

def reprocess(x,y,w,h)
        manipulate! do |img|
            img.crop(x.to_i, y.to_i, w.to_i, h.to_i, true) 

            end
resize_to_limit(180,180)  
end

die aufgerufen wird, in meinem Modell, nachdem eine Aktualisierung durchgeführt wird:

attr_accessor :crop_x, :crop_y, :crop_w, :crop_h
after_update :reprocess_image, :if => :cropping?

def cropping?
    !crop_x.blank? && !crop_y.blank? && !crop_w.blank? && !crop_h.blank?
end

private

def reprocess_image
image.reprocess(crop_x,crop_y,crop_w,crop_h)

end

Ich habe es geschafft, zuschneiden und Größe ändern, die ursprüngliche version, aber ich kann nicht scheinen, um zu aktualisieren, die 2 miniaturen zusammen mit ihm. Ich habe versucht ein paar verschiedene Techniken, ohne Erfolg.

Irgendwelche Vorschläge?

InformationsquelleAutor der Frage Jonathan Chiu | 2011-02-27

Schreibe einen Kommentar