Alguns softwares de visualização de imagem comumente usados têm uma função que pode ampliar imagens locais.
Adicione dois componentes de tempo ao formulário, com um dos componentes de tempo definidos como Image1, que atua como transportadora para a exibição de imagem original. Outro componente de tempo tem a propriedade de nome definida como Image2, que pode exibir a imagem ampliada. O formulário após a adição de componentes é mostrado na Figura 1.
Figura 1 O formulário após adicionar componentes
O núcleo deste exemplo é a função Stretchbt, que usa a função Stretchbt para obter a amplificação da imagem local.
Procedimento TForm1.Image1MouSEMove (remetente: TOBJECT; SHIFT: TSHIFTSTATE; X, Y: INTEGER);
Começar
StretchBlt (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;
fim;
O programa chamará primeiro a função StretchBlt, usará a posição atual do mouse como ponto central, selecione a imagem local no componente Image1 com um comprimento lateral de 40 e ampliará a imagem local no componente Image2. Em seguida, a exibição do componente Image2 é atualizada chamando o método de atualização do componente Image2. Finalmente, defina o ponteiro do mouse para a nova forma.
O código do programa é o seguinte:
unidade de unidade1;
interface
usos
Janelas, mensagens, sysutils, variantes, classes, gráficos, controles, formulários,
Diálogos, extctrls, stdctrls;
tipo
Tform1 = classe (tform)
Image1: Timage;
Image2: Timany;
Procedimento Image1MouSEMove (remetente: Tobject; Shift: TSHIFTSTATE; X, Y: INTEGER);
Procedimento formmouseMove (remetente: Tobject; Shift: TSHIFTSTATE; X, Y: INTEGER);
Privado
{Declarações privadas}
público
{Declarações públicas}
fim;
var
Form1: TForm1;
Implementação
{$ R *.dfm}
Procedimento TForm1.Image1MouSEMove (remetente: TOBJECT; SHIFT: TSHIFTSTATE; X, Y: INTEGER);
Começar
StretchBlt (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;
fim;
Procedimento TForm1.FormMouSEMOVE (remetente: TOBJECT; SHIFT: TSHIFTSTATE; X, Y: INTEGER);
Começar
Screen.cursors [1]: = crDefault;
Self.cursor: = 1;
fim;
fim.
Salve o arquivo e pressione F9 para executar o programa.
Figura 2 Resultados da operação do programa
O Zoom in Images é um recurso necessário de um excelente software de visualização de imagens. Este exemplo fornece um método muito simples e fácil, não apenas com códigos pequenos, mas também com alta eficiência de execução.