Hallo zusammen,
es ist mal wieder soweit: Und zwar habe ich ein Problem mit der super schönen
GDI Funktion CreateDIBitmap (mal wieder).
Ich habe mir eine Routine geschrieben, mit der ich eine Icon Datei parsen und alle Einzelbitmaps extrahieren kann. Die Daten liegen dann in der Form eines TBitmapInfoHeader Structs inklusive der eigentlichen Bilddaten vor.
Nun möchte ich die Funktionalität der LoadIcon
API implementieren. Sprich: ich übergebe die gewünschten Maße und erhalte dann ein HICON, welches ich auf ein beliebiges Canvas zeichnen kann. Soweit die Theorie.
Mein erster Ansatz war CreateBitmap mit anschließendem CreateIconIndirect. Das funktionierte bei meinem ersten Testicon überraschend gut. Dann jedoch hatte ich andere Icons, die entweder komplett schwarz waren oder auf dem Kopf standen.
Bei meinen Recherchen im Internet bin ich auf die CreateDIBitmap Funktion gestoßen, welche sich zumindest um die bottom up Images selbst kümmern sollte. Das Problem ist, das hierbei mein umgedrehtes Testicon ein 0
Handle verursacht (GetLastError ist aber ebenfalls 0). Die Icons die vorher schwarz waren, werden nun total verzerrt und falschfarbig dargestellt.
Der CreateDIBitmap
API übergebe ich momentan einfach exakt den Info Header, den ich vorher aus der Icon Datei ausgelesen hatte.
Hat jemand sowas ähnliches vielleicht schonmal gemacht und kann mir etwas auf die Sprünge helfen?
Viele Grüße
Zacherl