GARANTIR DESCONTO

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..

:?:


Lincoln Cesar

Lincoln Cesar

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:

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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar