1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| procedure ControlToBitMap(aControl: TWinControl; var aBitmap: TBitmap;
Ratio: integer = 2);
var
BmpControl : TBitmap;
// BmpResult: TBitmap;
begin
try
BmpControl := TBitmap.Create;
BmpControl.Width := aControl.Width;
BmpControl.Height := aControl.Height;
BmpControl.Canvas.Lock;
aControl.PaintTo(BmpControl.Canvas.Handle, 0, 0);
BmpControl.Canvas.UnLock;
aBitMap.Width := BmpControl.Width div Ratio;
aBitMap.Height := BmpControl.Height div Ratio;
SetStretchBltMode(aBitMap.Canvas.Handle, HalfTone);
StretchBlt(aBitMap.Canvas.Handle, 0, 0, aBitMap.Width, aBitMap.Height,
BmpControl.Canvas.Handle, 0, 0, BmpControl.Width, BmpControl.Height,
SRCCOPY);
//aBitMap.Canvas.StretchDraw(Rect(0, 0, aBitMap.Width, aBitMap.Height)
// , BmpControl);
finally
BmpControl.Free;
end;
end; |
Partager