2011-02-14 12 views
6

Estoy ejecutando Ruby on Rails 3 y me gustaría reducir la calidad de una imagen cargada usando el plugin/gema Paperclip. ¿Cómo puedo hacer eso?¿Cómo puedo reducir la calidad de una imagen cargada con Paperclip?


En este momento de mi archivo de modelo que tengo:

has_attached_file :avatar, 
    :styles  => { 
     :thumb  => ["50x50#", :jpg], 
     :medium => ["250x250#", :jpg], 
     :original => ["600x600#", :jpg] } 

que convierte las imágenes en el formato .jpg y establecerá dimensiones.

Respuesta

16

Intente utilizar convert_options.

has_attached_file :avatar, 
        :styles   => { :thumb => '50x50#' }, 
        :convert_options => { :thumb => '-quality 80' } 
+0

funciona a la perfección! – flunder

12

Desde el paperclip wiki, hay una opción de calidad:

class User < ActiveRecord::Base 
    has_attached_file :photo, 
        :styles => { 
         :small => { 
         :geometry => '38x38#', 
         :quality => 40, 
         :format => 'JPG' 
         }, 
         :medium => { 
         :geometry => '92x92#', 
         :quality => 50 
         } 
end 
+1

hice como eso, pero las costuras no funcionan: ¡Paperclip no reduce la calidad de la imagen! Intenté también reiniciar el servidor. – user502052

+0

funcionó para mí. Asegúrese de que, si está en una consola de rieles y ejecuta el reprocesamiento, salga y vuelva a ejecutar la consola de rieles, porque de lo contrario no recuperará los cambios del modelo. –

+0

Esta solución parece estar en desuso. El enlace de la wiki citado como fuente ahora está roto, y mi esfuerzo para implementarlo de esta manera no funcionó. – jonesbp

3

Como dice James, una vez que averiguar los argumentos correctos para pasar a ImageMagick de convert mediante la experimentación en la línea de comandos, puede pasar estos a través de la opción Paperclip convert_options como en el ejemplo de James.

Si tiene varios argumentos, páselos como una matriz. Aquí está un ejemplo que he trabajado durante un tiempo:

:convert_options => {:medium => ["-shave", "2x2", "-background", "white", 
           "-gravity", "center", "-extent", 
           "530x322", "+repage"], 
        :small => ["-shave", "1x1"] } 
0

Excepto -quality, la opción -strip de ImageMagick puede eliminar todo el perfil y otra pelusas de la imagen que puede reducir más el tamaño

has_attached_file :photo, 
    :styles => { 
    :thumb => "100x100#" }, 
    :convert_options => { 
    :thumb => "-quality 75 -strip" } 
Cuestiones relacionadas