[QUOTE]Originariamente inviato da MItaly
La bitmap creata deve essere compatibile con il DC dello schermo, non con quello di destinazione (visto che esso quando viene creato contiene una bitmap 1x1 1bpp). [/code]
Giustissimo, non ci avevo pensato.
Avevo anche io notato che il costrutture chiedeva una bitmap non selezionata nel DC; così ho pensato bastasse evitare di chiamare SelectObject (che ancora adesso rimane una funzione abbastanza ambigua: ma a che serve?)
Grandissima la documentazione Microsoft: The SelectObject function Select an Object in desidered HDC
Grazie mille, eh.
Ad ogni modo, la classe Bitmap richiede di dover chiudere esplicitamente la bitmap e le palette passategli, ma allo stesso tempo non puoi chiuderle finchè hai la bitmap aperta.
Alla fin fine ho dovuto fare così
codice:
CLSID jpgsid;
{
Bitmap GBitmap(DestBitmap,NULL);
GBitmap.SetResolution(300.0f,200.0f);
GetEncoderClsid(L"image/jpeg",&jpgsid);
GBitmap.Save(L"image.jpeg",&jpgsid,NULL);
}
GdiplusShutdown(gditoken);
DeleteObject(DestBitmap);
DeleteObject(OldBitmap);
Per forzare la chiusura prima di togliere gli oggetti.
Altra domanda: per ridimensionare l'immagine?