Visual Basic - Convertir guardar imagen

Life is soft - evento anual de software empresarial
 
Vista:

Convertir guardar imagen

Publicado por Fernando (1 intervención) el 06/10/2009 15:24:13
Hola , a todos... despues de estar varios dias y ver un monton de codigo no encuentro lo que deseo hacer.

Tengo un codigo para convertir imagenes a distintos formatos.

Pero lo que no encuentro en la red es la forma de guardar una imagen en otro tamaño del original.

Me esplico (ejemplo) tengo una imagen en jpg en 1024x768 y esta la quiero luego guardar en otro formato por ejemplo 320x240

Como puedo hacerlo y si hay un ejemplo de codigo.

El tema de convertirlo a otro formato ya lo tengo aunque no lo he probado.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Convertir guardar imagen

Publicado por juan carlos (518 intervenciones) el 07/10/2009 03:12:44
hola Fernando encontre esto en internet el enlace esta arriba

Bueno de entrada el Image te permite (si tiene el "strech" puesto a true) el redimensionar imagenes

El "problema" es que no mantiene las proporciones (la relacion ancho/alto)

Mas o menos, se me ocurre esto:

Un Picture1 (o un image o un frame , lo que sea que tenga forma cuadrada :) puesto en blanco , que define el "area" del control (el tamaño maximo)

Dentro de ese un Image1 , que si que cambiara de tamaño (pero siempre dentro del anterior y siendo lo "mayor" posible)

El image ese con strech a true cuando cargas una imagen , necesitas saber su ancho y su alto (para eso la puedes cargar primero en un picture oculto , con autosize=true , visible=false, y consultar el width y height)

Calculas la relacion "ancho/alto"
R= pictureoculto.width/pictureoculto.height

Ahora hay que calcular el ancho y alto del image
Hay que decidir que manda el alto o el ancho
(osea , si la imagen quedara corta a lo ancho o a lo largo)

Ancho=picture1.width
Alto=picture1.width/R
If Alto>picture1.height then
Ancho=picture1.height*r
Alto=picture1.height
end if

Image1.height=alto
Image1.width=ancho

Y cargas lel dibujo en el image1

si quieres podrias "centrar" el image1 dentro del picture1
(suponiendo que tengas el picture1 como contenedor)
image1.top=picture1.height/2-image1.height/2
image1.left=picture1.width/2-image1.width/2

***************************************************************
Por ejemplo quedaria algo asi
***************************************************************
(recordad , el image que le pasais debe tener el strech a true)
Y el Contenedor, en verdad puede ser cualquier cosa (un frame o
algo asi, que ocupe menos sitio)

Sub Carga (contenedor As PictureBox, oculto As PictureBox, i As Image, nombre As String)
'' Por Daniel Castillo. Junio 98
''
oculto.AutoSize = True
oculto.Picture = LoadPicture(nombre)
Dim r
r = oculto.Width / oculto.Height
Dim Ancho, Alto

Ancho = contenedor.Width
Alto = contenedor.Width / r
If Alto > contenedor.Height Then
Ancho = contenedor.Height * r
Alto = contenedor.Height
End If

i.Picture = oculto.Picture
i.Height = Alto
i.Width = Ancho
i.Top = contenedor.Height / 2 - i.Height / 2
i.Left = contenedor.Width / 2 - i.Width / 2

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar