tutorial thoughtbot rails active ruby-on-rails imagemagick paperclip

ruby on rails - thoughtbot - Rails Paperclip Plugin-Opciones de estilo para cambiar el tamaño



thoughtbot github (5)

Por lo tanto, quiero cambiar el tamaño de las imágenes a un ancho FIJO, pero de altura proporcional.

He estado probando una amplia gama de operadores:

380x242 # 380x242> 380! X242 380x242 <

Ninguno de ellos tiene el efecto deseado. ¿Alguna ayuda? Quiero que llene o redimensione el ancho de 380, luego redimensione / reduzca la altura por el mismo factor que usó para reducir o redimensionar la imagen a 380 de ancho.


"#" es un argumento usado por Paperclip para saber si esperas o no la foto recortada. El uso de "100x100 #" escalará y recortará la imagen exactamente a ese tamaño. % @! <> son argumentos en la cadena de geometría utilizada por ImageMagick. Se pueden usar las siguientes cadenas de geometría de ImageMagick para cambiar el tamaño de las imágenes :

  • Ignorar la relación de aspecto (''!'')
  • Sólo Reducir más grande (''>'')
  • Sólo ampliar más pequeño (''<'')
  • Rellenar área dada (''^'')
  • Porcentaje de cambio de tamaño (''%'')
  • Límite de conteo de píxeles (''@'')

De acuerdo con la documentación de ImageMagick para Image Geometry, el argumento de geometría puede ser

scale% Height and width both scaled by specified percentage scale-x%xscale-y% Height and width individually scaled by specified percent width Height automagically selected to preserve aspect ratio xheight Width automagically selected to preserve aspect ratio widthxheight Maximum values of height and width given, ratio preserved widthxheight^ Minimum values of width and height given, ratio preserved widthxheight! Width and height emphatically given, ignore original ratio widthxheight> Change only if an image dimension exceeds a specified dim. widthxheight< Change only if both image dimensions exceed specified dim.


Las opciones de cambio de tamaño son limitadas, pero también puede usar procesadores personalizados de clip de papel para cambiar el tamaño de las imágenes dinámicamente.

Railscasts tiene un buen ejemplo del uso de un procesador personalizado para un clip, aunque su ejemplo le permite a un usuario recortar una imagen. http://railscasts.com/episodes/182-cropping-images


Puedes calcular la altura tú mismo:

newHeight = oldHeight * 380 / oldWidth



puede usar ,: show => ''786> x447'' para ancho fijo y alto prorrorcional