Visual Basic - Visualizar foto

Life is soft - evento anual de software empresarial
   
Vista:

Visualizar foto

Publicado por Pedro (4 intervenciones) el 04/11/2008 18:50:21
Buenas tardes

Tengo una aplicación en la que quiero introducir fotos .

Las intento presentar en un control image, pero querria que se adpatara al control, sin perder las proporciones, ya que cuando pongo la propiedad stretch a false, me lo ajusta al control, pero se distorsiona la imagen
.
¿Alguien me puede decir si esto se puede hacer?. O ¿como hacerlo?

Muchas gracias a todos
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:Visualizar foto

Publicado por igor (633 intervenciones) el 04/11/2008 21:19:40
Bueno, si lo piensas un poco lo que pides es imposible.

No puedes hacer que una imagen 5x5 se presente en un image con proporcion 5x10, la imagen se alarga inevitablemente.

Lo que puedes hacer es obtener la relación de aspecto de la imagen y cada vez que se redimensina la imagen establecer las medidas adecuadas.

Ej: 5x10 -> relación de aspecto 5/10 =0,5 luego 20*0,5=40 obtenemos 20x40 manteniendo las proporciones.
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

RE:Visualizar foto

Publicado por Pedro (4 intervenciones) el 05/11/2008 09:48:48
1.- Cuando lo intento con un control image, si pongo la propiedad stretch a True (me habia equivocado) lo ajusta al control, pero no guarda las proporciones

2.- Ya lo he resuelto. La soluciónla he encontrado en otro foro y la copio aqui por si a alguien le interesara

Insertas un boton y un picture y pones los siguiente en el form:

Option Explicit
Dim ancho As Single, alto As Single, porcentaje As Single
Dim imagen As IPictureDisp

Private Sub Command1_Click()
Picture1.Cls
Set imagen = LoadPicture("I:SystemEasy Plantillas1724000001.bmp")


ancho = imagen.Width
alto = imagen.Height

If ancho > Picture1.Width Or alto > Picture1.Height Then
If ancho > alto Then
porcentaje = (Picture1.Width * 100) / ancho
Else
porcentaje = (Picture1.Height * 100) / alto
End If
CentrarPicture
Exit Sub
End If

If ancho <= Picture1.Width Or alto <= Picture1.Height Then
If ancho > alto Then
porcentaje = (Picture1.Width * 100) / ancho
Else
porcentaje = (Picture1.Width * 100) / alto
End If
CentrarPicture
End If
End Sub

Public Sub CentrarPicture()
Dim centro1 As Single, centro2 As Single
ancho = (ancho * porcentaje) / 100
alto = (alto * porcentaje) / 100
centro1 = (Picture1.Width - ancho) / 2
centro2 = (Picture1.Height - alto) / 2
Picture1.PaintPicture imagen, centro1, centro2, ancho, alto
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