Visual Basic - Ajustar imagen a control

Life is soft - evento anual de software empresarial
 
Vista:

Ajustar imagen a control

Publicado por Alex (3 intervenciones) el 05/06/2006 13:25:13
Hola, estoy realizando un control ActiveX en Visual Basic 6.0 para usar en una aplicación de un club de Fútbol. El ActiveX tiene 3 controles Image (o Picture me da igual). Cuando le pase el código del jugador y ejecute el método Refresh que le he puesto el ActiveX debe visualizar la foto, el escudo del equipo y un bitmap con la posición en el campo del jugador.

Hasta aquí todo funciona bien, pues ya he diseñado varios ActiveX y esto no representa ninguna complejidad especial.

Lo que me está volviendo loco es el tema de ajustar una imagen al control image o picture. Cuando cargo una imagen y la fuerzo a ajustarse al tamaño del control se deforma según como sea la imagen original y se como hacer que se ajuste sin deformarse.

¿Existe algún código o rutina para ajustar sin deformar o es necesario algún ActiveX mejorado para usar en vez de el PictureBox o Image?

Lo curioso del caso es que el control Image que incorpora el Access 2000 para los formularios incluye la propiedad SizeMode cuyo valor acOLESizeZoom hace precisamente esta función.

Muchas gracias por adelantado.
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:Ajustar imagen a control

Publicado por Arnoldo (9 intervenciones) el 05/06/2006 18:46:28
El control Image tiene la propiedad Stretch, si la pones a True ajusta la imagen al control.
Saludos
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:Ajustar imagen a control

Publicado por Alex (3 intervenciones) el 05/06/2006 19:05:27
Si eso ya lo he probado, ajusta la imagen pero deformandola, es el problema.
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:Ajustar imagen a control

Publicado por Alex (3 intervenciones) el 06/06/2006 00:14:12
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:\System\Easy Plantillas\1724000001.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
1
Comentar