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.

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top