HBITMAP von Datei laden
-
Hallo!
Wie kann ich ein HBITMAP von einer beliebigen Bilddatei (z.B.: *.jpg) laden. Leider habe ich bis jetzt fast nur Infos gefunden, wie das von den Ressourcen einer Anwendung geht, ich muss aber ein externes Bild laden.
Danke schon mal im Voraus!
-
mit LoadImage geht das
-
Wenn ich folgenden Code ausführe, wobei datei der String ist, in dem der Pfad zu meinem Bild steht,
HBITMAP img = (HBITMAP) LoadImage(0, datei, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);ist img am Ende immer NULL

-
MSDN schrieb:
The LoadImage function loads an icon, cursor, animated cursor, or bitmap.
Da steht nichts von jpg & co.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-54279.html
Bastle noch ne GetHBITMAP methode dazu in der du ein m_IPicture->get_Handle(hBitmap) machts und fertig

-
-
Beide der obigen Methoden verwenden OleLoadPicture, laut MSDN muss ein Bild, dass damit geladen wird ein BMP, JPEG, WMF, ICO oder GIF sein. Ich bräuchte aber auch PNG und TIFF. Kennt jemand etwas das mir weiterhelfen könnte?
-
Sieh dir mal die entsprechenden Libs zu den Bildformaten an.
1. libpng
2. ImageMagick
3. ... (Es gibt bestimmt noch mehr, aber mehr fallen mir gerade nicht ein)
-
GDI+ kann png und jpegs sowohl laden als auch speichern.
tiff kennt GDI+ glaube sogar ich auch...
-
Vielen Dank für den Tipp mit den Libraries, GDI+ ist mir jedoch etwas zu groß, deswegen habe ich mich letztendlich für CxImage entschieden.