Hello- I''m trying to work out the options for cropping an image into a square image. Basically, I want a picture turned into a 200x200 image. If the source picture is in landscape mode, then I want slivers of the right and left hand side of the picture cut off. If the source is in portrait mode, then the slivers would be on the top and bottom. Does anyone have an example of this sort of configuration? Regards- Eric --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Eric Marthinsen wrote:> Hello- > > I''m trying to work out the options for cropping an image into a square > image. Basically, I want a picture turned into a 200x200 image. If the > source picture is in landscape mode, then I want slivers of the right > and left hand side of the picture cut off. If the source is in > portrait mode, then the slivers would be on the top and bottom. Does > anyone have an example of this sort of configuration? > > Regards- > EricHi Eric This link should help; http://brendanlim.com/2007/7/28/crop-images-using-attachment_fu-and-rmagick However, if you can afford to do so, I would consider swapping attachment_fu for the Paperclip plugin - it makes cropped thumbnails really, really easy; http://jimneath.org/2008/04/17/paperclip-attaching-files-in-rails/ -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Thanks Neil- The first link helped a lot. I like the look of Paperclip as well. I might have to try it out on my next project. -Eric --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
If you don''t want to rewrite any of the attachment_fu files (which might make updates a little bit of a problem) try this instead. Put the following code into whichever model has has_attachment protected def resize_image(img, size) # resize_image take size in a number of formats, we just want # Strings in the form of "crop: WxH" if (size.is_a?(String) && size =~ /^crop: (\d*)x(\d*)/i) || (size.is_a?(Array) && size.first.is_a?(String) && size.first =~ /^crop: (\d*)x(\d*)/i) img.crop_resized!($1.to_i, $2.to_i) # We need to save the resized image in the same way the # orignal does. self.temp_path = write_to_temp_file(img.to_blob) else super # Otherwise let attachment_fu handle it end end This will override the resize_image method in attachment_fu. Now instead of something like has_attachment :content_type => :image, :storage => :s3, :max_size => 1024.kilobytes, :resize_to => ''256x160>'', :thumbnails => {:thumb => ''100x100>'', :tiny => ''50x50''}, :processor => ''Rmagick'' you can do has_attachment :content_type => :image, :storage => :s3, :max_size => 1024.kilobytes, :resize_to => ''256x160>'', :thumbnails => {:thumb => ''crop: 100x100>'', :tiny => ''crop: 50x50''}, :processor => ''Rmagick'' (Notice that thumb and tiny changed to ''crop: XxX''). If you leave crop out it will work as normal, put crop in and it crops the image down to the right size. This works with RMagick - in particular the crop_resized call, I don''t know how to do this for ImageMagick or any of the other libs - sorry. D. On Sep 6, 2:39 pm, emarthinsen <emarthin...-wDk3GJWIFSIagCBP5wnx4wC/G2K4zDHf@public.gmane.org> wrote:> Hello- > > I''m trying to work out the options for cropping an image into a square > image. Basically, I want a picture turned into a 200x200 image. If the > source picture is in landscape mode, then I want slivers of the right > and left hand side of the picture cut off. If the source is in > portrait mode, then the slivers would be on the top and bottom. Does > anyone have an example of this sort of configuration? > > Regards- > Eric--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---