Hallo,
ich will auf dem Desktop ein Bitmap zeichnen.
Das Problem ist jetzt, das ich nur die bitmap im Sinne des Wortes habe:
Also wirklich nur die map!
Den Header kann ich neu generieren, da ich die Parameter bereits weis.
Mein Code sieht bis jetzt so aus:
Die Ausgabe ist 200, also müsste es doch geklappt haben.
Die übergebenen daten sind richtig, denn der Bitmap lässt sich pixelweise damit zeichen, was aber leider zu langsam ist.
Ich habe so das Gefühl das alles grundlegend falsch ist...
Bitte um Hilfe!
ich will auf dem Desktop ein Bitmap zeichnen.
Das Problem ist jetzt, das ich nur die bitmap im Sinne des Wortes habe:
Code:
BYTE* bmp;
Den Header kann ich neu generieren, da ich die Parameter bereits weis.
Mein Code sieht bis jetzt so aus:
Code:
#include <iostream>
using namespace std;
//Hier habe ich ein 100x200 24bit BMP verwendet
void drawBMP(BYTE* bmp)
{
HWND hWnd = GetDesktopWindow();
HDC hdc = GetDC(hWnd);
HBITMAP hbm = CreateCompatibleBitmap(hdc, 100, 200);
BITMAPINFO bmi;
memset(&bmi, '\0', sizeof(bmi));
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmi.bmiHeader.biWidth = 100;
bmi.bmiHeader.biHeight = 200;
bmi.bmiHeader.biBitCount = 24;
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biCompression = BI_RGB;
bmi.bmiHeader.biSizeImage = 24 * 100 * 200 / 8;
cout << SetDIBits( hdc,
hbm,
0,
bmi.bmiHeader.biHeight,
bmp,
&bmi,
DIB_RGB_COLORS );
ReleaseDC(hWnd,hdc);
DeleteObject(hbm);
}
Die Ausgabe ist 200, also müsste es doch geklappt haben.
Die übergebenen daten sind richtig, denn der Bitmap lässt sich pixelweise damit zeichen, was aber leider zu langsam ist.
Ich habe so das Gefühl das alles grundlegend falsch ist...

Bitte um Hilfe!