Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [GDI+] Zeichnen riesiger Bilder optimieren (https://www.delphipraxis.net/66409-%5Bgdi-%5D-zeichnen-riesiger-bilder-optimieren.html)

sieppl 29. Mär 2006 12:53


[GDI+] Zeichnen riesiger Bilder optimieren
 
Hi!

Ich habe ein 35 MegaPixel-Bild und möchte bestimmte Ausschnitte dieses Bildes schnell erhalten.
Leider benötigt TGPGraphics.DrawImage zu lange um den Auschnitt aus dem Original in meinen Kontext zu zeichnen (Zeitmessung durchgeführt).
(Der genaue Hintergrund ist ein ScrollBox bei der man in Bilder zoomen kann und dann scrollt)

Delphi-Quellcode:
ClientRect := Parent.ClientRect;
TempBitmap := TGPBitmap.Create(Min(Width, ClientRect.Right), Min(Height, ClientRect.Bottom));
DestRect := MakeRect(0, 0, Integer(TempBitmap.GetWidth), Integer(TempBitmap.GetHeight));
GetSrcRect; //lädt in SrcRect den aktuellen Auschnitt
TempGraphics := TGPGraphics.Create(TempBitmap);
TempGraphics.SetSmoothingMode(SmoothingModeNone);
TempGraphics.SetInterpolationMode(InterpolationModeBilinear); //schon alle möglichen durchprobiert
//FGPImage ist das Original mit 35MP
TempGraphics.DrawImage(FGPImage, DestRect, SrcRect.Left, SrcRect.Top, SrcRect.Right, SrcRect.Bottom, UnitPixel); //das dauert
Klar habe ich die Idee unächst den Auschnitt von einer kleineren Version zu nehmen. Ich möchte aber evaluieren, ob DrawImage tatsächlich so lange benötigt und welche Gründe es dafür gibt.

Grüße

Sebastian


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz