我使用了一个函数在Delphi 7中创建我的桌面的截图。我得到了正确的截图,但是拍摄的照片大小约为3 MB。通常,屏幕截图的大小为150 KB左右。我不知道为什么。 这是我的代码:
procedure TForm1.btnDesktopShotClick(Sender: TObject);
VAR
ScreenH, ScreenW : Integer;
dc : HDC;
hWin :Cardinal;
bm : TBitMap;
begin
//get handle of desktop
try
hWin :=GetDesktopWindow;
dc:=getDC(hWin);
ScreenH :=GetDeviceCaps(dc,VertRes);
ScreenW :=GetDeviceCaps(dc,HORZRES );
//set bitmap
bm:=TBitmap.Create;
bm.Width :=ScreenW ;
bm.Height :=ScreenH ;
//copy to dest bitmap
BitBlt(bm.Canvas.Handle,0,0,bm.Width ,bm.Height ,dc,0,0,SRCCOPY );
Image1.Picture.Bitmap.Assign(bm);
Image1.Picture.SaveToFile('screenShotDesktop.jpeg');
finally
ReleaseDC(hWin,DC);
end;
end;
帮助将不胜感激。
由于
答案 0 :(得分:10)
您保存的文件是bmp格式,例如保存jpeg:
with TJPEGImage.Create do
try
Assign(bm) ;
SaveToFile('screenShotDesktop.jpeg') ;
finally
Free;
end;
答案 1 :(得分:7)
我怀疑您正在将位图(.bmp)写入.jpg文件。位图不会被压缩,这就是为什么你的图片有这么大的原因。