Algunos software de visualización de imágenes comúnmente utilizado tienen una función que puede ampliar las imágenes locales.
Agregue dos componentes de tiempo al formulario, con uno de los componentes de tiempo establecidos en Image1, que actúa como el portador para la pantalla de imagen original. Otro componente de tiempo tiene la propiedad Nombre establecida en Image2, que puede mostrar la imagen ampliada. El formulario después de agregar componentes se muestra en la Figura 1.
Figura 1 El formulario después de agregar componentes
El núcleo de este ejemplo es la función STRINGBLT, que utiliza la función STRINGBLT para lograr la amplificación de la imagen local.
Procedimiento tForm1.Image1MouseMove (remitente: tobject; shift: tshiftState; x, y: entero);
Comenzar
Estiramiento (image2.canvas.handle, 0,0, image2.width, image2.Height,
Image1.canvas.handle, X-20, Y-20,40,40, srcCopy);
Image2.Refresh;
Screen.cursors [1]: = LoadCursorFromFile ('Magnify.cur');
Self.cursor: = 1;
fin;
El programa primero llamará a la función Stretchblt, usará la posición actual del mouse como punto central, seleccione la imagen local en el componente Image1 con una longitud lateral de 40 y amplíe la imagen local en el componente Image2. Luego, la visualización del componente Image2 se actualiza llamando al método de actualización del componente Image2. Finalmente, configure el puntero del mouse en la nueva forma.
El código del programa es el siguiente:
Unidad Unidad1;
interfaz
usos
Windows, mensajes, sysutils, variantes, clases, gráficos, controles, formularios,
Diálogo, extctrls, stdctrls;
tipo
TForm1 = class (tForm)
Imagen1: Tiempo;
Image2: Timage;
procedimiento Image1MouseMove (remitente: tobject; shift: tshiftstate; x, y: entero);
procedimiento FormMouseMove (remitente: tobject; shift: tshiftState; x, y: entero);
Privado
{Declaraciones privadas}
público
{Declaraciones públicas}
fin;
varilla
Form1: tform1;
Implementación
{$ R *.dfm}
procedimiento tForm1.Image1MouseMove (remitente: tobject; shift: tshiftState; x, y: entero);
Comenzar
Estiramiento (image2.canvas.handle, 0,0, image2.width, image2.height, image1.canvas.handle, x-20, y-20,40,40, srccopy);
Image2.Refresh;
Screen.cursors [1]: = LoadCursorFromFile ('Magnify.cur');
Self.cursor: = 1;
fin;
procedimiento tForm1.FormMouseMove (remitente: tobject; shift: tshiftState; x, y: entero);
Comenzar
Screen.cursors [1]: = CRDefault;
Self.cursor: = 1;
fin;
fin.
Guarde el archivo, luego presione F9 para ejecutar el programa.
Figura 2 Resultados de la operación del programa
Zoom en imágenes es una característica necesaria de un excelente software de visualización de imágenes.