Du benutzt gdipDrawImageRectRectI quasi genauso wie gdipDrawCachedBitmap nur dass du nicht 10 einzelne Bilder hast sondern 1 Bild aus dem du nur einen Ausschnitt zeichnest, den du darstellen willst.
Dafür gibts die src und dest Parameter. srcX/Y/Width/Height sind das Rechteck dass aus dem Bild mit den Einzelbildern ausgeschnitten wird und destX/Y/Width/Height ist das Rechteck in dem der ausgeschnittene Teil dargestellt werden soll. Also wahrscheinlich 0,0,Einzelbild.Width,Einzelbild.Height.
Oder hab ich was falsch verstanden?
ImageRectI
Delphi-Quellcode:
GDIP_DrawImageRectRectI(PngGraphics, PngImage, X, Y, w, h, w * integer
(CurPngPlayInfo.PngFrame) - w, 0, w, h, 2, nil, False, nil);
gdipDrawCachedBitmap hat nur die Weite und die höhe.
Dieser Part ist besonders wichtig weil er das Bild im Bild von der Aktuellen Frame Position zeichnet.
Delphi-Quellcode:
w * integer
(CurPngPlayInfo.PngFrame) - w
Ich möchte vom GDIP_DrawImageRectRectI weg und anstelle dessen gdipDrawCachedBitmap verwenden weil es 3x mal schneller ist.
Glaube aber das es so nicht umsetzbar ist.
gruss