Carrierwave kulturspezifischen version
Arbeite ich auf der Fähigkeit, zuschneiden von Bildern mit carrierwave und Jcrop. Seine Kombination von Railscasts episode 182 und 253. Ich habe beschneiden arbeiten, aber es schneidet das ursprüngliche. Es ist trotzdem Kraft manupulate!
auf eine andere version verwenden?
def crop_image(x,y,w,h)
manipulate! do |img|
img.crop(x.to_i, y.to_i, w.to_i, h.to_i)
end
end
oder gibt es eine Möglichkeit, die version von das Modell nennen?
attr_accessor :crop_x, :crop_y, :crop_w, :crop_h
attr_accessible :description, :image, :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
def reprocess_image
image.crop_image(crop_x, crop_y, crop_w, crop_h)
end
- Es ist lustig, aber wenn ich war auf der Suche nach der Antwort auf diese Frage zu, fand ich einen "bezahlten" railcast 182 funktionierenden code hier auf github.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In den railscast, Ryan Lösung wurde zu konvertieren, die Koords für die Arbeit mit dem original-Bild finden, indem das Verhältnis zwischen der großen version und die ursprüngliche version. Ich war in der Lage, get it to work mit Carrierwave und jCrop, indem Sie nach der gleichen Logik. Interessant genug, Carrierwave nicht speichern die Abmessungen der Bilder. Ich war in der Lage zu hacken zusammen etwas aus diesem Beitrag: http://code.dblock.org/ShowPost.aspx?Id=194.
Hier ist meine Lösung.
Benutzer.rb
account_controller.rb
profile_uploader.rb
Ernte.html-Code.erb
Stil.css
manualcrop
- Methode (innerhalb von "profile_uploader.rb"), die Sie vertauscht die Reihenfolge der beiden letzten Parameter fürcrop
. Nach RMagick-Dokumentation es sollteimg.crop(x, y, width, height)
.Wenn ich richtig verstehe das problem einfach Weg zu schicken trueSize option, um die Jcrop.
Ryan gerade aktualisiert railscasts #182, verwendet es CarrierWave jetzt
http://railscasts.com/episodes/182-cropping-images-revised