PDA

Ver la versión completa : Zoom en imágenes



Arielo
10/02/2009, 15:12
Vamos a tratar aquí una pequeña y simple rutina (para Visual Basic) para hacer zoom en una determinada zona de una imagen

En un Form nuevo, agregar los siguientes controles:
* Un PictureBox que contendrá la imagen original. A éste lo llamaremos "pctImagen"
* Un PictureBox que contendrá el zoom sobre la imagen original. Este tendrá por nombre "pctZoom"
* Un Shape, que utilizaremos para seleccionar la zona que será ampliada. Se llamará "shpZona"

- Primero, le cargamos una imagen a pctImagen, que será la que luego ampliaremos (más adelante, se le podrá agregar al programita, un seleccionador de imágenes guardadas en disco...)
- A continuación, hacemos un doble clic en pctImagen para pasar a programar un evento de la misma.
- Tipear lo siguiente en el evento "MouseMove":


shpZona.Move X - (shpZona.Width / 2), Y - (shpZona.Height / 2)
pctZoom.PaintPicture pctImagen.Picture, 0, 0, pctZoom.ScaleWidth, pctZoom.ScaleHeight, X - (shpZona.Width/2), Y - (shpZona.Height/2), shpZona.Width, shpZona.Height
Idealmente, pctZoom debería tener la misma relación ancho/alto que shpZona. Una buena medida es: shpZona.Widht*10 para el ancho, y shpZona.Height*10 para el alto.
De esta manera, si hacemos que shpZona tenga 400x400 Twips de tamaño, pctZoom debería tener un tamaño de 4000x4000 Twips.


Ejemplo de uso de la rutina:

http://img11.imageshack.us/img11/5128/zoomsm1.jpg (http://imageshack.us)