![]() |
Ajustar imagen a control sin deformar 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. |
Este es el código que soluciona el problema 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 |
| La zona horaria es GMT -6. Ahora son las 02:01. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.