![]() |
Graphics32 / TBitmap32 -> Verkleinern mit "StretchTr
Ich möchte Bitmaps geglättet verkleinern und nutze dafür die Graphics32 Lib. Hier meine beisherigen Ergebnisse:
Delphi-Quellcode:
Jetzt will ich wissen, was ich für ein Rect für DstClip angebe???
procedure TForm1.Button1Click(Sender: TObject);
var a, b: TBitmap32; drect, srect: TRect; begin a := TBitmap32.Create; b := TBitmap32.Create; b.SetSize(200, 100); if OpenDialog1.Execute then a.LoadFromFile(OpenDialog1.FileName); dRect.Left := 0; dRect.Top := 0; dRect.Right := 200; dRect.Bottom := 100; sRect.Left := 0; sRect.Top := 0; sRect.Right := a.Width; sRect.Bottom := a.Height; StretchTransfer(b, drect, srect, a, srect, sfLanczos, dmOpaque, nil); b.SaveToFile('d:\new.bmp'); end; StretchTransfer wurde in der Hilfe von Graphics32 folgendermaßen deklariert:
Delphi-Quellcode:
procedure StretchTransfer(
Dst: TBitmap32; DstRect: TRect; DstClip: TRect; Src: TBitmap32; SrcRect: TRect; StretchFilter: TStretchFilter; CombineOp: TDrawMode; CombineCallBack: TPixelCombineEvent = nil); |
Re: Graphics32 / TBitmap32 -> Verkleinern mit "Stret
ich würde dRect nehmen, da du das Bild ja genau passend in das Ziel kopierst. Wenn du aber gleichzeitig etwas wegschneiden wolltest, dann würde man DstClip anders wählen, oder denn DstRect größer wäre als das Ziel selber, dann müsste man glaube ich selber drauf achten, dass DstClip nur so groß ist wie das Ziel.
Fazi: DstRect gibt an auf welche Zielgröße das Bild gebracht werden soll, und DstClip dient zum ausschneiden. Nix schneiden mit DstRect = DstClip ...ich hoffe das war a) richtig, und b) verständlich ;) gruss, dizzy \\edit: Den Kram mit den Rects selber erstellen kannst du dir sparen: TBitmap32.BoundsRect ;) |
Re: Graphics32 / TBitmap32 -> Verkleinern mit "Stret
Super :-D ... und das mit den Rects hat echt genervt :oops:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz