Fórum Zoom em um componente image.. #176307
20/08/2003
0
Como faço para dar um Zoom in ou Zoom out em uma imagem carregada do componente image ?
Agradeço qualquer ajuda..
Grato..
:?:
Agradeço qualquer ajuda..
Grato..
:?:
Lincoln Cesar
Curtir tópico
+ 0
Responder
Posts
21/08/2003
Marcelo Saviski
Use o canvas.
Coloque 2 images no form, em um deles carregue um BITMAP, tem que ser um BITMAP (.bmp)
no 2º image será exibida a imagem com zoom.
Coloque também um Edit, que é aonde você vai digitar o valor para o zoom, em ¬, se você colocar 200, aumenta em 2X, se colocar 50, diminui pela metade
Ai vai o código:
Coloque 2 images no form, em um deles carregue um BITMAP, tem que ser um BITMAP (.bmp)
no 2º image será exibida a imagem com zoom.
Coloque também um Edit, que é aonde você vai digitar o valor para o zoom, em ¬, se você colocar 200, aumenta em 2X, se colocar 50, diminui pela metade
Ai vai o código:
procedure TForm1.Button1Click(Sender: TObject); var zoom : integer; Center : TPoint; X1, Y1, X2, Y2 : integer; begin zoom := strtointdef(edit1.Text, 100); Center := Point(image1.Picture.Bitmap.Width div 2, image1.Picture.Bitmap.Height div 2); X1 := Trunc(Center.X - (Center.X / (Zoom/100))); Y1 := Trunc(Center.Y - (Center.Y / (Zoom/100))); X2 := Trunc(Center.X + (Center.X / (Zoom/100))); Y2 := Trunc(Center.Y + (Center.Y / (Zoom/100))); image2.canvas.copyrect(bounds(0,0,image2.width,image2.height), image1.picture.bitmap.canvas, rect(X1, Y1, X2, Y2)); end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)