Detectar la orientación de la imagen con ImageMagick
-
21-09-2019 - |
Pregunta
Quiero cambiar el tamaño de una imagen a un nuevo tamaño usando un parámetro: ancho.
Si la imagen es horizontal, el nuevo tamaño será: ancho = ancho, altura = proporcional al ancho.
Y si la imagen es vertical, el nuevo tamaño será: altura = ancho, ancho = proporcional a la altura.
¿Alguna idea de cómo implementar esto?
Estoy usando ImageMagick con Magicknet Wrapper.
Solución
De la referencia de uso en http://www.imagemagick.org/usage/resize/
convert org.jpg -resize widthxwidth final.jpg
por ejemplo, ancho de ancho puede ser 256x256
La relación de aspecto se mantendrá y el cambio de tamaño se realizará dentro del límite de 256 x 256 píxeles de cuadrado.
Citado de la página anterior:
El cambio de tamaño se ajustará a la imagen al tamaño solicitado. No se llena, el tamaño de la caja solicitado.
Otros consejos
No estoy seguro exactamente a qué te refieres aquí. Dices que solo quieres definir el ancho, pero en el caso "vertical", establece que la altura es el ancho? De todos modos, si desea cambiar el tamaño de algo usando solo el ancho, use este pseudo-código:
ratio = width / height
newWidth = <the new width>
newHeight = newWidth / ratio
Si desea cambiar el tamaño del tamaño más largo a un valor dado, intente esto:
ratio = width / height
if ratio > 1 // wider than it is tall
newWidth = <theValue>
newHeight = newWidth / ratio
else // taller than it is wide
newHeight = <theValue>
newWidth = newHeight * ratio