Wie konvertiert man ein Array von Pixeln in HBITMAP

8

Ich habe ein Array von Pixeln, die ich in HBITMAP konvertieren muss, um es in einem Fenster anzuzeigen. Ich habe versucht, CreateDIBitmap () zu verwenden, aber ich habe nicht die BMP-Header. Ich habe versucht, sie manuell nach MSDN-Dokumentation zu erstellen, aber das hat nicht funktioniert.

Hier, wie mein Code aussieht

%Vor%

Jetzt bekomme ich eine nicht NULL hBitmap, die gut ist, aber es zeigt immer ein schwarzes Bild, als ob es nicht auf das Pixelfeld zeigt. Ich habe es mit dem Code

überprüft %Vor%

Und tatsächlich ist qB.bmBits NULL. Was ist das Problem und wie kann man es beheben?

    
DanielHsH 10.04.2013, 15:46
quelle

2 Antworten

6

Ich habe herausgefunden, wie es geht. Wir müssen CreateDIBSection() anstelle von CreateDIBitmap() verwenden Also hier ist der Arbeitscode

%Vor%

Kopieren Sie die Pixel bei Graustufenbildern in eine Schleife, anstatt mit memcpy ()

%Vor%     
DanielHsH 11.04.2013, 07:14
quelle
3

Ihr Beitrag war sehr hilfreich (die Antwort), aber es hat nicht für mich funktioniert, hier ist der Code mit kleinen Korrekturen:

%Vor%     
greenoldman 26.01.2016 10:38
quelle

Tags und Links