Recortar imágenes con RMagick y attachment_fu
Attachment_fu no está preparado para realizar crop de imágenes, así que tendremos que hacerle una pequeña modificación para disponer de esta funcionalidad. Editamos el archivo rmagick_processor.rb, ubicado en el directorio processors, dentro de los archivos del plugin, y cambiamos el siguiente método:
# Performs the actual resizing operation for a thumbnail
def resize_image(img, size)
size = size.first if size.is_a?(Array) && size.length == 1 && !size.first.is_a?(Fixnum)
if size.is_a?(Fixnum) || (size.is_a?(Array) && size.first.is_a?(Fixnum))
size = [size, size] if size.is_a?(Fixnum)
img.crop_resized!(*size)
else
img.change_geometry(size.to_s) { |cols, rows, image| image.crop_resized!(cols, rows) }
end
self.temp_path = write_to_temp_file(img.to_blob)
end
Ahora cuando configuremos los atributos de la imágen en el modelo correspodiente, podemos hacer esto:
has_attachment :content_type => :image,
:storage => :file_system,
:max_size => 500.kilobytes,
:resize_to => '400>',
:thumbnails => { :cropped => ‘50×50!’ }
