(Co-Admin)
Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
Turbo Delphi für Win32
|
Re: Bmp verkleinern
31. Jan 2008, 08:44
Hallo,
hier ein Beispiel für die Umsetzung mit der Prozentangabe. Dazu habe ich in dem beispiel ein 2. Bitmap eingeführt.
Die Resourcenschutzblöcke (try-finally) solltest du bei dir ebenfalls ergänzen, wie in folgendem Code zu sehen ist.
Delphi-Quellcode:
var
// ...
bmp, bmp_small: TBitmap;
// ...
begin
// ...
bmp := TBitmap.Create;
try
bmp.Width := dateien[0];
bmp.Height := dateien[1];
DCDesk := GetWindowDC(GetDesktopWindow);
BitBlt(bmp.Canvas.Handle, 0, 0, dateien[0], dateien[1],
DCDesk, dateien[2], dateien[3], SRCCOPY);
bmp.SaveToFile('ScreenShot.bmp');
// ab hier ist es neu
bmp_small := TBitMap.Create;
try
bmp_small.Height := round(dateien[4] * dateien[1] / 100);
bmp_small.Width := round(dateien[4] * dateien[0] / 100);
bmp_small.Canvas.StretchDraw(Rect(0, 0, bmp_small.Width, bmp_small.Height), bmp);
bmp_small.SaveToFile('ScreenShot_small.bmp');
finally
FreeAndNil(bmp_small);
end;
ReleaseDC(GetDesktopWindow, DCDesk);
finally
FreeAndNil(bmp);
end;
end;
Grüße
|
|
Zitat
|