Hi zusammen
Mit folgender Prozedur lade ich eine NEF-Datei:
Code:
procedure TTWICImageMain.Oeffnen1Click(Sender: TObject);
var P : TPicture; G: TGraphic; H,W: Integer; Path: String;
freq, startTime, endTime: Int64; startTimer, EndTimer: Cardinal;
begin
if OpenPictureDialog1.Execute then begin
StartTimer := GetTickCount;
QueryPerformanceFrequency(freq);
QueryPerformanceCounter(startTime);
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
QueryPerformanceCounter(endTime);
EndTimer := GetTickCount;
Image1.Invalidate;
G := Image1.Picture.Graphic;
H := G.Height;
W := G.Width;
Edit1.Text := G.ToString +' / Hoehe ='+ IntToStr(H) + ' / Breite ='+ IntToStr(W);
Memo1.Lines.Add('Format := ' + WICImageFormatDescription(FWIC));
Memo1.Lines.Add('GetTickCount benötigte etwa ' + IntToStr(EndTimer - startTimer) + ' ms');
Memo1.Lines.Add(('QueryPerformanceCounter benötigte etwa ' +
IntToStr((endTime - startTime) * 1000 div freq) + 'ms Ladezeit'));
end
else
raise
Exception.Create('Die Datei existiert nicht'); { Otherwise raise an
exception. }
end;
Dabei messe ich die Zeit, welche TPicture, bzw. TWicImage benötigt, um das Bild zu laden - sie beträgt sage und schreibe mehr als fünf Sekunden!
Ginge es nur um eines oder zwei Bilder, wäre das letztlich egal. Die Bilder sollen aber von einer Sandisk gelesen, daraus Thumbnails erstellt und schliesslich die Originale und diese Thumbnails in eine Datenbank geschrieben werden - und auf dieser Sandisk können, je nach Ergiebigkeit einer Fotopirsch, bis zu 4 - 600 Bilder liegen. Das ergäbe bis zu 50 Minuten für nur diesen Vorgang!! Kommt hinzu, dass Irwanview solche Bilder sehr viel schneller lädt. Da beträgt die gefühlte Zeit wohl weniger als eine Sekunde...
Ich suche jetzt schon weiss nicht wie lange, Stichworte sind TDirect2DCanvas, TDirect2DCanvas.Graphic etc.
Aber auch wenn ich auf den Seiten von Embarcadero wohl schon (fast?) alles dazu durch habe, fühl ich mich wie ein Fussgänger in der Wüste - ich komme irgendwie immer an den Anfang zurück...
Übrigens - ich hab das auch schon
hier zur Sprache gebracht.
Hat jemand einen Tip, wie man die Sache beschleunigen könnte?
Danke!
Gruss
Delbor
PS: Ups, vielleicht gehts ja doch etwas genauer:
Zitat:
Hat jemand einen Tip, wie man die Sache beschleunigen könnte?
Damit meine ich natürlich, wie man die Grafiken schneller laden kann