카테고리 없음
[윈도우즈 API] 화면 캡쳐하여 JPEG로 저장
쇼핑스크래퍼2
2023. 9. 5. 08:01
uese jpeg;
procedure JPEGprocess;
var
DeskTopDC: HDc;
DeskTopCanvas: TCanvas;
BitmapRect: TRect;
Bitmap: TBitmap;
jpeg1: TJpegimage;
begin
try
jpeg1 := TJpegimage.Create;
Bitmap := TBitmap.Create; {BMP를 저장할 bitmap 생성}
BitMap.Width := Screen.Width;
BitMap.Height := Screen.Height;
BitmapRect := Rect(0, 0, Screen.Width, Screen.Height); {full screen 영역}
{전체 window의 device context(DC) 을 얻는다}
DeskTopDC := GetWindowDC(GetDeskTopWindow);
DeskTopCanvas := TCanvas.Create;
DeskTopCanvas.Handle := DeskTopDC; {전체 window의 canvas를 얻습니다}
// BitmapRect영역의 DeskTopCanvas에서 BitmapRect영역의 Bitmap.Canvas로
// 복사받습니다
Bitmap.Canvas.CopyRect(BitmapRect, DeskTopCanvas, BitmapRect);
jpeg1.Assign(bitmap);
jpeg1.SaveToFile('.bitmap.jpg');
form1.Image1.Picture.LoadFromFile('.bitmap.jpg');
finally
ReleaseDC(GetDeskTopWindow, DeskTopDC);
DeskTopCanvas.Free;
Bitmap.Free;
jpeg1.Free;
end;
end;