Conservar proporción de imágenes

21/02/2005 - 16:12 por fernando | Informe spam
Hola,

Tengo una clase con un atributo de tipo bitmap. A ese atributo le asocio
distintas imágenes que tengo en varios ficheros. Lo que me gustarñia
hacer es poder almacenar las imágenes en otros ficheros jpeg, pero con
una resolución de 200x200 y conservando la proporción de la imagen original.

Es decir, supongamos que tengo una imagen de 600x450. Lo que quiero
hacer es reducirla para que ocupe ahora 200x200. Como la proporción es
distinta, y no quiero que aparezca la imagen deformada (que quede con un
aspecto alargado), me gustaría que quedase la imagen con una reolución
de 200x150 encuadrada en un cuadrad de 200x200.

¿Alguien sabe como hacerlo? Gracias
 

Leer las respuestas

#1 Jorge Serrano [MVP VB]
21/02/2005 - 20:15 | Informe spam
Hola Fernando,

no tengo ejemplo para mostrarte, pero la teoría sería que hicieras la
redimensión almacenándola en un atributo tipo bitmap o en un objeto tipo
Image.
Luego preparas la otra imagen de 200x200 y pones encima la que has
redimensionado de 200x150.

Obviamente, deberás calcular que aunque el ancho es de 200 y por tanto se
debe pintar en la posición del eje 0, la posición del alto será de (200 -
150) / 2 para que quede más o menos encuadrada en la imagen de 200x200 sobre
la que deberás pintar esta.

Un saludo,

Jorge Serrano Pérez
MVP VB.NET

"fernando" wrote:

Hola,

Tengo una clase con un atributo de tipo bitmap. A ese atributo le asocio
distintas imágenes que tengo en varios ficheros. Lo que me gustarñia
hacer es poder almacenar las imágenes en otros ficheros jpeg, pero con
una resolución de 200x200 y conservando la proporción de la imagen original.

Es decir, supongamos que tengo una imagen de 600x450. Lo que quiero
hacer es reducirla para que ocupe ahora 200x200. Como la proporción es
distinta, y no quiero que aparezca la imagen deformada (que quede con un
aspecto alargado), me gustaría que quedase la imagen con una reolución
de 200x150 encuadrada en un cuadrad de 200x200.

¿Alguien sabe como hacerlo? Gracias

Preguntas similares