Höhe und Breite eines Bitmap auslesen

Michbeck1983

Mitglied
Hallo,

ich hätte folgende Frage: Ich lade ein Bitmap mit folgendem Code in ein Picture-Control:

Code:
 hBitmap = (HBITMAP) LoadImage(NULL, szFilePath, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
// Error-message if the image couldn't be loaded correctly
if (!hBitmap)
    AfxMessageBox(IDS_FALSE_PATH, MB_OK);
// Set the bitmap to the static-control
m_PictureBox.SetBitmap((HBITMAP) hBitmap);

Jetzt ist es ja so, wenn ich bei LoadImage den vierten fünften Parameter auf 0 setze, dann nimmt er die Originalgröße des Bildes, was ich nicht will. Ich möchte allerdings auch net einen festen Wert vorgeben.

Gibt es eine Möglichkeit, die Höhe und Breite eines Bitmaps auszulesen, ohne gleich direkt in das Dateiformat reinsteigen zu müssen

Danke für jede Hilfe :)
 
Michbeck1983 hat gesagt.:
Jetzt ist es ja so, wenn ich bei LoadImage den vierten fünften Parameter auf 0 setze, dann nimmt er die Originalgröße des Bildes, was ich nicht will. Ich möchte allerdings auch net einen festen Wert vorgeben.

macht für mich zwar keinen Sinn...

Wenn du die Größe feststellen willst OHNE das Bild zu laden musst du die Bitmap selbst öffnen (mir ist keine Funktion bekannt, mit der du die Größe direkt abfragen kannst).

Aber es ist nicht alzu schwer da die Größe herauszufinden.
[EDIT]

Eine Bitmap ist so aufgebaut:


FileHeader - BITMAPFILEHEADER
InfoHeader - BITMAPINFOHEADER
RGBQuad ...
Color-Index ...

du brauchst den InfoHeader. Da steht alles drin was du brauchst.

[EDIT2]

Mit laden:

- Bild komplett laden
- GetBitmapDimensionEx benutzen
- Bild löschen
 
Zuletzt bearbeitet:
Zurück