我用這個代碼做一個截圖:德爾福 - 截圖質量
function GetScreenShot: TBitmap;
var
Desktop: HDC;
begin
Result := TBitmap.Create;
Desktop := GetDC(0);
try
try
Result.PixelFormat := pf32bit;
Result.Width := Screen.Width;
Result.Height := Screen.Height;
BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height,
Desktop, 0, 0, SRCCOPY);
Result.Modified := True;
finally
ReleaseDC(0, Desktop);
end;
except
Result.Free;
Result := nil;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.Bitmap := GetScreenShot;
end;
現在我要問我如何改變質量。例如,我可以選擇25%,50%,75%和100%。
我怎麼能實現這個到我的代碼?
你在你的代碼中的內存泄漏。您的函數中的TBitmap將永遠不會被釋放 –
泄漏位於'Button1Click'而不是'GetScreenShot',FWIW。 –
我一直都是通過JPEG壓縮來完成這個工作的。 1)將屏幕快照爲BMP,2)將BMP分配給JPG對象,3)壓縮JPG對象。 –