Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Großes Bitmap laden/scrollen

  Alt 29. Apr 2009, 08:56
Am sinnvollsten wäre es wohl nur die maximal 4 Bilder zu laden, die du brauchst um die gerade aktuelle Ansicht zusammenzubauen. Welche du brauchst lässt sich ja über die Koordinaten ermitteln.

Eine weitere Optimierung wäre dann noch, wenn du die Richtung mit in Betracht ziehst um die das Bild verschoben wird. Oftmals musst du nicht das gesamte Bild neu zusammenstellen, sondern kannst den aktuellen Ausschnitt (z.B. via BitBlt) verschieben, und musst dann nur noch die dann frei gewordenen Stellen anfügen. Dann musst du nur noch die Bilder laden, die an diesen Stellen bebraucht werden.

Falls das Nachladen von 1024x1024 großen Stücken zu lange dauert, könntest du auch noch überlegen sie noch feiner zu unterteilen - das begünstigt kleine Verschiebungen wo nur wenig angefügt werden müsste, ist aber evtl. für große Sprunge bei denen alles neu gezeichnet werden muss etwas langsamer (möglicherweise aber kaum merkbar).

Wie weit du es letztlich treiben willst hängt davon ab was du brauchst. Wenn es nur via Klicks in einer Map herumspringen wie z.B. bei Google Maps ist, reicht es locker den ersten Ansatz zu nehmen. Möchtest du aber ruckfreies "smoothes" Scrollen der Map haben (wie in einem Spiel z.B.), ist es wohl günstiger den Mehraufwand der feineren Unterteilung sowie der Ermittlung gebrauchter Elemente zu betreiben. Das kann man sogar so weit führen, dass man über eine Heuristik wahrscheinlich demnächst gebrauchte Bildteile schon vorab lädt, wobei das für deine Anwendung vermute ich dezenter Overkill wäre

Ich würde das Schritt für Schritt angehen, und sobald das Ergebnis für dich gut ist stoppen, weil der Zugewinn den Aufwand dann nicht mehr rechtfertigen würde. Da die Verfahren ja alle ähnlich sind und quasi aufeinander aufbauen machst du dabei auch kaum Arbeit zu viel.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat