Delphi屏幕截图技术实现d

来源:百度文库 编辑:神马文学网 时间:2024/04/26 22:55:01
Delphi屏幕截图技术实现2008-02-20 13:18

procedure TForm1.SnapScreen(a,b,c,d:Integer);    //任意区域截图,参数为截图坐标
var
   bmpscreen:Tbitmap;
    jpegscreen:Tjpegimage;
    FullscreenCanvas:TCanvas;
    dc:HDC;
    sourceRect, destRect: TRect;
begin
    try
       dc:=getdc(0);
       fullscreencanvas:=Tcanvas.Create;
       fullscreencanvas.Handle:=dc;
       bmpscreen:=Tbitmap.create;
       bmpscreen.Width :=c-a;
       bmpscreen.Height :=d-b;
       sourcerect:=Rect(0,0,c-a ,d-b );
       destrect:= Rect(a,b,c,d);
       bmpscreen.Canvas.CopyRect(sourcerect,fullscreenCanvas,destrect);
       jpegscreen:=Tjpegimage.Create ;
      jpegscreen.Assign (bmpscreen);
       jpegscreen.CompressionQuality:=100;
       jpegscreen.SaveToFile(ExtractFilePath(ParamStr(0))+'tmp.jpg');
       FullscreenCanvas.Free;
       bmpscreen.Free;
       jpegscreen.Free ;
       ReleaseDC(0, DC);
   except
   end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
    SnapScreen(self.Left,self.Top,Self.Left+self.Width,Self.Top+self.Height); //截取当前活动窗口

    SnapScreen(0,0,Screen.Width,Screen.Height);   //截取全屏
end;