Entwickler-Ecke
Multimedia / Grafik - Prog mit großer Bitmap nach kurzer Zeit langsam
kloti - Di 04.02.03 22:02
Titel: Prog mit großer Bitmap nach kurzer Zeit langsam
Hi,
ich habe ein Delphi Prog geschrieben, in der man eine Namen-Suchfunktion hat, wo dann bei einem Treffer, das Wohnhaus der jeweiligen Person angezeigt wird. Bei dieser Anzeige handelt es sich um ein riesige Bitmapdatei (4000x4000Pixel, ca.35MB).
Bei einem Treffer wird nur ein kleiner Ausschnitt aus der KArte dargestellt. Das mache ich mit der Methode
Quelltext
1:
| Image.Canvas.Draw(-2500,-2500,StrassenkarteBitmap);[ |
Beim Testen ist mir aufgefallen, dass die ersten Treffer schnell in der Karte dargestellt werden. Wenn man aber mehrere Anfragen hintereinander stellt, verlansamt sich die Darstellung auf dem Bildschirm !!
Meine Frage:
1. Gibt es "Techniken", um den Speicher nach einer Anfrage/Darstellung auf dem Bildschirm wieder freizugen ??
2. Gibt es ne (schnelle) Alternative zu meiner doch sehr großen Bitmap ??
(ich muß allerdings in dieser Karte auch zeichnen- so ner Art Fadenkreuz)
Bin wie immer für jeden Tipp dankbar !!!
Andreas Pfau - Di 04.02.03 22:46
Du könntest versuchen, die Bits der Bitmap mit GetDiBits() zu extrahieren, zu speichern, und manuell in eine kleinere Bitmap zu zeichnen. Das müsste schneller sein. Ich kann dir aber nix garantieren!
Sivar - Di 04.02.03 23:05
Versuch es sonst mal mit
Quelltext
1:
| TBitmap.Canvas.CopyRect(DestRect : TRect; SourceCanvas : TCanvas; SourceRect : TRect); |
Alternativ mit BitBlt
Das sollte beides schnell genug sein.
Habe es gerade mal mit einem 4000x3800 Bitmap versucht. Ging sehr gut.
Gruß´
Sivar
Andreas Pfau - Mi 05.02.03 18:11
Äh, ja klar logisch, sorry, da habe ich kurz nicht mitgedacht :oops:. Mit Canvas.Draw() wird ja das gesamte Bild gezeichnet, nicht nur der sichtbare ausschnitt. Oder er wird zumindest auf sichtbarkeit geprüft.
kloti - Mi 05.02.03 21:48
Titel: Besten Dank für eure Hilfe !!!
Hi Andreas Pfau und Sivar,
wollte mich nur kurz bei euch bedanken. Habe es geändert. Es läuft jetzt tatsächlich schneller *freu*.
Vielen, vielen Dank !!
Gruß
kloti
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!