본문 바로가기

work/delphi

[델파이] 폼 화면 캡쳐하기

화면을 캡쳐해서 bmp 파일로 저장하는 코딩이다.
소스를 적당히 수정하면 화면내에서 특정부분을 캡쳐하는 코딩으로
일반화 할 수 있겠다.


procedure TFPAT070M.CaptureForm;  
var  
Pt :TPoint; // 캡쳐할 화면의 Left, Top 좌표  
DC :HDC;  
Bmp :TBitmap;  
begin  
 
// 폼전체를 하기 위해 (0, 0) 으로 설정하였다.  
Pt.x := 0; // x => 폼에서의 Left 값  
Pt.y := 0; // y => 폼에서의 Top 값  
 
// 폼의 좌표를 스크린 좌표로 변환한다.  
Pt := ClientToScreen(Pt);  
 
// 캡쳐할 비트맵 생성  
Bmp := TBitMap.Create;  
 
try  
// 비트맵 크기 지정 => 폼전체를 하기위해 폼의 크기를 지정하였다.  
Bmp.Width := Width;  
Bmp.Height := Height;  
DC := GetDC(0);  
BitBlt(Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, DC, Pt.x , Pt.y, SRCCOPY);  
ReleaseDC(0,DC);  
 
Bmp.SaveToFile(Name + '.bmp') // 비트맵 파일로 저장  
// Clipboard.Assign(Bmp); // 클립보드로 복사  
finally  
Bmp.Free;  
end;  
 
end;  
Posted by 동그랑땡88