Ho un'immagine bitmap che voglio caricare dinamicamente. Ma non riesco a caricarlo.Carica dinamicamente un CBitmap
CBitmap bmp;
bmp.LoadBitmap("c:\\aeimg");
non sembra funzionare. Qualcuno può aiutarmi per favore.
Grazie.
Ho un'immagine bitmap che voglio caricare dinamicamente. Ma non riesco a caricarlo.Carica dinamicamente un CBitmap
CBitmap bmp;
bmp.LoadBitmap("c:\\aeimg");
non sembra funzionare. Qualcuno può aiutarmi per favore.
Grazie.
Si può anche provare qualcosa di simile:
CImage image;
image.Load(_T("C:\\image.png"));
CBitmap bitmap;
bitmap.Attach(image.Detach());
Per caricare una bitmap da un file, si desidera utilizzare LoadImage
con il flag LR_LOADFROMFILE
.
CImage non funziona con i png ultima volta che ho provato/controllato. Dai un'occhiata a CxImage - http://www.codeproject.com/KB/graphics/cximage.aspx.
Potrebbe essere semplice come dimenticare di scappare dal backslash. Invece di
bmp.LoadBitmap("c:\aeimg");
uso
bmp.LoadBitmap("c:\\aeimg");
In caso contrario si sta passando un percorso non valido al metodo LoadBitmap.
Non funziona anche dopo aver assegnato il percorso "c: \\ aeimg". – Ashish
Non c'è bisogno di sottovalutare, ha fatto un suggerimento perfettamente valido. –
In base alla documentazione di CBitmap: la funzione LoadBitmap()
accetta l'identificatore di risorsa della bitmap o id risorsa della bitmap.
Non è possibile specificare il percorso del file bitmap.
E.g.
MyProject.rc
------------
MYBMP BITMAP "res\myimage.bmp"
e assicurarsi che resource.h non ha alcun ingresso di MYBMP altrimenti durante la pre-elaborazione propria sostituito da id e, infine, LoadBitmap()
fallirà dato che l'applicazione non è in grado di individuare la risorsa come FindResource()
fallisce.
Ora fare questo:
CBitmap bmp;
bmp.LoadBitmap(L"MYBMP");
Sarà sicuramente caricare il bitmap.
CBitmap
non supporta la lettura diretta da un file .bmp. Puoi invece utilizzare la classe CImage
come suggerito in altre risposte. Avrete bisogno di includere atlimage.h
nel codice per rendere CImage
lavoro:
#include <atlimage.h>
:
CImage img;
img.Load (_T("C:\\image.bmp"));
CBitmap bitmap;
bitmap.Attach(img.Detach());
Un altro modo è quello di caricare l'immagine utilizzando LoadImage
API Win32 e quindi collegare CBitmap
a che:
HBITMAP hBitmap = (HBITMAP)LoadImage(NULL,"c:\\image.bmp",
IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
if (hBitmap != NULL)
bitmap.Attach(hBitmap);
Esso supporta bmp, jpg, gif e png. http://msdn.microsoft.com/en-us/library/d06f3fhw(VS.80).aspx –
Ho dovuto cercare, e sei corretto per quanto riguarda il caricamento da un file. Il mio ricordo deriva dal fatto che è impossibile caricare file PNG dalle risorse, poiché CImage :: LoadFromResource() usa :: LoadImage() mentre Load() usa GDI +. – Roel