各位高手啊:
我现在想实现一个用delphi做图象放大的程序,就象作图工具那样的,但要注意图象不能失真。
谢谢啊,

解决方案 »

  1.   

    一个放大镜unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls;type
      TForm1 = class(TForm)
        Timer1: TTimer;
        Image1: TImage;
        procedure Timer1Timer(Sender: TObject);
        procedure FormShow(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Timer1Timer(Sender: TObject);
    var
      FullscreenCanvas:TCanvas;
      dc:HDC;
      PointTemp: TPOINT;
    begin
      Timer1.Enabled := False;  GetCursorPos(PointTemp);  DC := GetDC (0);
      FullscreenCanvas := TCanvas.Create;
      FullscreenCanvas.Handle := DC;
      Image1.Canvas.CopyRect(Rect(0, 0,form1.Width,form1.Height),
                             fullscreenCanvas,
                             Rect(PointTemp.X - form1.Width div 18 ,
                                  PointTemp.Y - form1.Height div 18 ,
                                  PointTemp.X + form1.Width div 18,
                                  PointTemp.Y + form1.Height div 18
                                  )
                             );
     // FormMagnifier.Left:= PointTemp.X - 25 ;
     // FormMagnifier.Top:= PointTemp.Y -25;
      FullscreenCanvas.Free;          //释放CANVAS对象
      ReleaseDC (0, DC);              //释放DC  Timer1.Enabled := True;
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
       image1.Height:=form1.Height;
    image1.Width:=form1.Width;
    end;end.