Das ständige Laden eines JPEG aus dem Stream in
GetMaximumColumnsAndRows
kann man sich durch das Cachen der Werte (die werden sich zur Laufzeit nicht mehr verändern) schenken. Einmal reicht.
Das ständige Laden der Grafiken als JPEG ist auch langsamer, als wenn man sich die Bilder beim ersten Zugriff als Bitmap merkt und dann immer dieses gecachte Bitmap verwendet.
Erstelle dir ein Surrogate (Stellvertreter) für die Bilder. Der Konstruktor erhält z.B. den Dateinamen. Beim ersten Zugriff wird das Bild aus der datei geladen und intern als Bitmap gespeichert. Danach erfolgt jeder weitere Zugriff direkt auf das Bitmap.
Den Surrogate leitet man von
TPersistent
ab und überschreibt die virtuelle Methode
AssignTo
.
Zum Zeichnen braucht es dann nur noch
Delphi-Quellcode:
img := TBitmap.Create;
img.Assign( Surrogates[i] ); // temp. Bitmap mit dem Surrogate füllen
// Zeichnen von img