2011-08-11 17 views
17

Paperclip almacena las imágenes originales en la carpeta "original". ¿Hay alguna manera de cambiar el tamaño de las imágenes originales? Quiero hacer que los originales sean más pequeños para ahorrar espacio en el disco.Cambiar el tamaño de la imagen original en Paperclip

Así, por ejemplo, si visitante cargue una foto con 2592x1936 Quiero almacenarla como 1024x1024, de la misma manera hemos creado las dimensiones de: imágenes pulgar en: estilos

Update (solucionado)

Descubrí cómo cambiar el tamaño de las imágenes originales automáticamente al cargarlas. Uno sólo tiene que añadir : originales de estilos:

class MyModel < ActiveRecord::Base 
    has_attached_file :photo, 
     :styles => { :original => "1024x1024>", :thumb => "150x150>" } 
end 
+1

deseo que había pensado en eso. Gracias. – vise

+0

En cuanto a los detalles sobre la sintaxis de cambio de tamaño en ImageMagick, puede encontrar algunos detalles más aquí: http://www.imagemagick.org/Usage/resize/#resize –

+1

I + 1 ¿lo ha hecho usted? pero desearía poder hacerlo dos veces. uno para la pregunta y otro para la mejor respuesta. – alybadawy

Respuesta

1

no estoy seguro de clip no cambiar el tamaño por sí mismo. Es posible que tenga que mirar Rmagick para hacer esto. Intentaría poner en marcha RMagick (o minimagick) y luego usar una devolución de llamada before_save para ejecutar un método :resize que escriba que le indique a RMagic que cambie el tamaño de la imagen. Su método podría ser:

class Image < ActiveRecord::Base 
    belongs_to :profile 
    before_save :resize 

    def resize 
    self.image = self.image.resize "1024x1024" 
    end 
end 

o

class Image < ActiveRecord::Base 
    belongs_to :profile 
    before_save do 
    self.image = self.image.resize "1024x1024" 
    end 
end 
+0

Caley Woods, gracias por su respuesta, pero quería saber si hay una forma de cambiar el tamaño de la imagen original con solo Paperclip. Cambia el tamaño cuando crea las imágenes: thumb, tal vez también hay una forma de cambiar el tamaño del original. – Evgenii

+0

Con esto en mente, es posible que solo necesite bifurcar el clip y modificar la fuente para que el original sea del tamaño que desee. Esta es la razón por la cual el código abierto es genial. –

+0

También Evgeny como se indica en [esta asciicast] (http://asciicasts.com/episodes/134-paperclip) necesitará Imagemagick para hacer el cambio de tamaño proporcionado por clip en el formato '' 'has_attached_file: photo,: styles => {: small => "150x150>"} '' 'y querrás [leer aquí] (http://www.imagemagick.org/script/command-line-processing.php#geometry) también como esto indica qué personajes puede usar después de su llamada de tamaño para tratar las relaciones de aspecto. –

Cuestiones relacionadas