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
-~----------~----~----~----~------~----~------~--~---