Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#4

AW: GDI+ Performance Tipps

  Alt 23. Aug 2011, 21:23
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

Geändert von EWeiss (24. Aug 2011 um 00:48 Uhr)
  Mit Zitat antworten Zitat