ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
497
497
EMPFEHLEN
-
07.12.11 15:19 #1
- Registriert seit
- Mar 2008
- Beiträge
- 147
Hallo,
zunächst zu meinen Voraussetzungen:
- Dev-Cpp 5.0.0.8 (ja, es gibt eine neue Version aus dem Nov 2011
)
- WinXp 32
- Winapi soll verwendet werden
Nun zu meinem Problem:
Ich möchte aus einem Byte Array heraus eine gültige HBITMAP erstellen.
Mein Ansatz:
Code cpp:1 2 3 4 5
//buf ist ein BYTE array //bi ist vom Typ BITMAPINFO HDC hMem = CreateCompatibleDC(GetDC(NULL)); HBITMAP hBitmap = CreateCompatibleBitmap(hMem, bi.bmiHeader.biWidth, bi.bmiHeader.biHeight); SetDIBits(hMem, hImage, 0, bi.bmiHeader.biHeight, buf, &bi, DIB_RGB_COLORS);
Leider ist die erstellte HBITMAP komplett schwarz. O.g. Aufrufe liefern alle ERROR_SUCCESS.
An den übergebenen Infos (Byte Array, BI) kann es nicht liegen, da folgender Aufruf problemlos geht:
Code cpp:1 2 3 4 5 6
HANDLE hFile=CreateFile("abc.bmp", GENERIC_WRITE,0,0,OPEN_ALWAYS,0,0); WriteFile(hFile, &bfh, sizeof(bfh), &written, NULL); WriteFile(hFile, &bi.bmiHeader, sizeof(BITMAPINFOHEADER), &written, NULL); WriteFile(hFile, buf, bi.bmiHeader.biSizeImage, &written, NULL); CloseHandle(hFile); HBITMAP hImage = (HBITMAP)LoadImage(NULL,"abc.bmp", IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
Die Anzeige realisiere ich so:
Code cpp:1
SendMessage(bmpHwnd, STM_SETIMAGE, IMAGE_BITMAP, hImage);
Wie gesagt, erscheint im ersten Fall nur ein schwarzer Bildschirm; im zweiten Fall läuft alles korrekt ab. Allerdings ist es natürlich unschön und unperformant alles auf einer Festplatte zwischenzuspeichern.
Kann mir wer helfen?
Vielen Dank,
kickerxy123hilfreiche Antwort? Es gibt einen Danke-Button ;)
Rettet das Internet!
-
Du hast vergessen dem DC die Bitmap zuzuordnen.
Code :1 2 3
HDC hMem = CreateCompatibleDC(GetDC(NULL)); HBITMAP hBitmap = CreateCompatibleBitmap(hMem, bi.bmiHeader.biWidth, bi.bmiHeader.biHeight); HBITMAP hbmOld = (HBITMAP)SelectObject(hMem,hBitmap);
Geändert von Thomasio (08.12.11 um 02:48 Uhr)
Ähnliche Themen
-
[C++/WinApi] Bitmap Ladebalken
Von posi90 im Forum C/C++Antworten: 9Letzter Beitrag: 24.12.10, 11:18 -
[C++/WinApi] Edit control mit Bitmap Hintergrund möglich?
Von posi90 im Forum C/C++Antworten: 3Letzter Beitrag: 20.10.10, 22:41 -
buffer aufteilen
Von tifa im Forum C/C++Antworten: 2Letzter Beitrag: 02.08.05, 22:32 -
[winAPI] Bitmap aus dem Clipboard (Webcam)
Von uhu01 im Forum C/C++Antworten: 18Letzter Beitrag: 24.04.05, 13:43 -
[oracle] create table oder create view
Von m3000 im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 07.01.05, 13:35





Zitieren
Login






