It has been quite a while since I’ve used the Paperclip gem by ThoughtBot. I have a very simple model called Photo which has an image attribute acting as the attachment:
class Photo < ActiveRecord::Base attr_accessible :image has_attached_file :image, styles: { thumbnail: '200x200^', preview: '800x800^' }, convert_options: { thumbnail: " -gravity center -crop '200x200+0+0'", preview: " -gravity center -crop '800x800+0+0'" }, default_url: "/images/:style/missing.png" end
For some reason I couldn’t remember how to resize images to fit neatly within a square, but after fiddling around this totally works:
- 200×200^: This sets the output geometry to 200×200 pixels but the shortest side will be 200 pixels.
- convert_options: This adds the extra options to:
- -gravity center: First center the image. It’s important this is first!
- -crop ‘200×200+0+0’: Then crop the image into a 200×200 square with 0,0 as the offset.