Ich würde die Bilder nicht ins PixelFormat32bppPARGB Konvertieren sondern direkt das richtige Format verwenden.
Bei den Konvertieren hast du keine kontrolle darüber wie groß die Dateien eigentlich werden.
Lieber prüfen ob deine Bilder das richtige Format verwenden anstatt sie zu Konvertieren.
Delphi-Quellcode:
if FBild1 <> 0 then
begin
GdipGetImagePixelFormat(FBild1, format);
if format = PixelFormat32bppARGB then // Accept files with alpha channel
begin
GdipCreateHBITMAPFromBitmap(pointer(FBild1), hbmReturn, $000000);
if hbmReturn <> 0 then
Result := hbmReturn;
end;
GdipDisposeImage(FBild1);
end;
Ob das jetzt einen Einfluss auf die gewünschte FPS hat ist fraglisch.
Obwohl die größe einer Datei schon einfluss darauf haben könnte!
PS:
Verstehe jetzt auch nicht warum du ein *.png Konvertieren musst.
Hat das nicht immer das PixelFormat32bppARGB ?
Wenn du nicht sicher bist kannst du ja vorher erstmal prüfen ob es vorhanden ist
ansonsten Konvertierst du etwas das schon im richtigen Format vorliegt.
Dann verwendest du quasi einen Wrapper welcher zwischen deiner Anwendung und der GdiPlus.dll rumwurschtelt
Das kann auch nochmal zu performance problemen führen.
Warum dann nicht direkt die
Unit für GDIplus aus D2010 (Denke die gibt es doch Oder? )
gruss