Estoy usando RMagick y quiero que mis imágenes cambien de tamaño a un ancho fijo de 100 px, y escala la altura proporcionalmente. Por ejemplo, si un usuario cargara 300x900px, me gustaría que se escalara a 100x300px.Carrierwave - Cambiar el tamaño de las imágenes a un ancho fijo
Respuesta
Sólo hay que poner esto en su archivo de subida:
class ImageUploader < CarrierWave::Uploader::Base
version :resized do
# returns an image with a maximum width of 100px
# while maintaining the aspect ratio
# 10000 is used to tell CW that the height is free
# and so that it will hit the 100 px width first
process :resize_to_fit => [100, 10000]
end
end
documentación y el ejemplo aquí: http://www.imagemagick.org/RMagick/doc/image3.html#resize_to_fit
tener en cuenta, resize_to_fit
ampliará las imágenes si son más pequeños que 100 px. Si no quiere que haga eso, reemplácelo con resize_to_limit
.
utilizo
process :resize_to_fit => [100, 10000]
Uso 10000
o cualquier número muy grande como para permitir que Carrierwave sabe que la altura es gratis, sólo cambiar el tamaño de la anchura.
@iWasRobbed: No creo que sea la solución correcta. De acuerdo con el enlace que ha pegado sobre resize_to_fit
: The maximum height of the resized image. If omitted it defaults to the value of new_width.
Así, en su caso process :resize_to_fit => [100, nil]
es equivalente a process :resize_to_fit => [100, 100]
lo cual no garantiza que siempre obtendrá el ancho fijo de 100px
No sería una solución mejor ser en realidad:
process :resize_to_fit => [100, -1]
de esta manera usted no tiene que limitar la altura en absoluto
EDIT: acabo de dar cuenta que esto sólo funciona con MiniMagick, para RMagick que parece que no tienen más remedio que añadir un gran número a la altura
Tenga en cuenta que '[-1, 100]' no funcionaría, lo que significa que no puede crear miniaturas de imágenes de altura fija. – lulalala
- 1. CarrierWave y cambiar el tamaño a un ancho específico
- 2. Cambiar el tamaño de las imágenes en UIWebView a tamaño de ventana
- 3. Cambiar el tamaño de las imágenes en el directorio
- 4. Carrierwave añadir una marca de agua a las imágenes procesadas
- 5. Cambiar el tamaño de las imágenes en el servidor
- 6. Imagemagick: Convertir a ancho fijo, altura proporcional
- 7. iTextSharp: ¿Cómo cambiar el tamaño de una imagen para que se ajuste a un tamaño fijo?
- 8. Cómo cambiar el tamaño de las imágenes en modo orgánico
- 9. CSS - div ancho, dependiendo del tamaño de las imágenes anteriores
- 10. Cambiar el tamaño de las imágenes en VB.NET
- 11. Cambiar el tamaño de las imágenes en PIL en Tkinter
- 12. Cambiar el tamaño de las imágenes con javascript antes de asignarlas a una etiqueta img
- 13. ImageMagick - Cambiar el tamaño al ancho máximo
- 14. ¿Es posible cambiar el tamaño del texto para que se ajuste a un div de tamaño fijo?
- 15. Como llegar a la altura NSAttributedString a un ancho fijo
- 16. Reprocesamiento de imágenes en Carrierwave
- 17. CSS ancho fijo en un lapso
- 18. ancho de alternar cambiar el tamaño de la animación - jquery
- 19. Mantener el ancho de la tabla fijo
- 20. archivos Parse de ancho fijo
- 21. Determine el ancho de un ancho DIV dinámico Multivolpea de DIV 3 ancho de columna fijo
- 22. Div ancho fijo a la izquierda, relleno ancho restante div a la derecha
- 23. Cambiar el orden de las imágenes a la medianoche
- 24. Redimensionar/recortar/rellenar una imagen en un tamaño fijo
- 25. Cambiar el nombre de los archivos existentes de CarrierWave
- 26. macro de Visual Basic en Word cambiar el tamaño/Centro/Borrar todas las imágenes
- 27. En un documento html, ¿es una mala práctica cambiar el tamaño de las imágenes con las etiquetas de alto y ancho?
- 28. ¿Mantiene el ancho fijo del panel de un contenedor dividido?
- 29. Tamaño fijo en lista
- 30. ¿Cómo obtengo todas las fuentes de ancho fijo instaladas?
según lo señalado por Giang Nguyen: con respecto a carrierwave y procesamiento de imagen, '[100, nil]' parece ser equivalente a '[100, 100]'! –
gracias, actualizado – iwasrobbed