Bitmap laden und einzelne Pixelfarben auslesen
-
Hallo zusammen,
Ich habe eine normale Bitmap, wie man sie mit Paint erstellen kann.
Wie kann ich diese Bitmap nun laden, sodass ich mit der Funktion
GetPixel() Informationen über bestimmte Pixel erhalten kann?
Wäre super, wenn mir das jemand erklären könnte (Am besten mit Beispielcode).Vielen Dank schonmal für eure Antworten!
-
Hab noch ein wenig Code gefunden, jetzt habe ich das hier gebastelt:
HBITMAP hBitmap; BITMAP bmp; HDC hDC; HDC hBitmapDC; HWND hwnd; hBitmap = (HBITMAP)LoadImage(NULL, "MeineBitmap.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); GetObject(hBitmap,sizeof(bmp),&bmp); hwnd = FindWindow(NULL,"MeinProgramm"); hDC = GetDC(hwnd); hBitmapDC = CreateCompatibleDC(hDC); SelectObject(hBitmapDC, hBitmap); // Pixel auslesen ReleaseDC(hwnd, hBitmapDC); ReleaseDC(hwnd, hDC); DeleteObject(hBitmap);Das funktioniert auch soweit ganz gut, allerdings frage ich mich jetzt, Ob diese
Lösung auch sauber ist, d.h. es keine Speicherlecks entstehen, usw.
Wäre nett, wenn sich das mal jemand ansehen könnte.
-
Ich hab noch ne Frage:
Ist es irgendwie möglich, die Breite und die Höhe (in Pixeln) der geladenen Bitmap zu bestimmen? Wär super, wenn mir das jemand zeigen könnte (am besten anhand eines Codebeispiels).
-
Das Code Beispiel steht bereits in diesem Posting.

Wie wäre es, wenn Du Dir mal ansiehst was die einzelnen Strukturen bedeuten:
BITMAP Structure
http://msdn.microsoft.com/de-de/library/k1sf4cx2(VS.80).aspx
-
Vielen Dank, das klappt jetzt, mit den Maßen der Bitmap.
