//使用GDI+保存BITMAP到文件
//CLSID encoderClsid
//GetEncoderClsid(L"image/png", &encoderClsid); //png
//GetEncoderClsid(L"image/bmp", &encoderClsid);
//GetEncoderClsid(L"image/gif", &encoderClsid);
//GetEncoderClsid(L"image/jpeg",&encoderClsid);
//GetEncoderClsid(L"image/tiff",&encoderClsid);
int GetEncoderClsid(const WCHAR* format, CLSID* pClsid)
{
UINT num = 0;
UINT size = 0;
ImageCodecInfo* pImageCodecInfo = NULL;
GetImageEncodersSize(&num, &size);
if(size == 0) {
return -1;
}
pImageCodecInfo= (ImageCodecInfo*)(malloc(size));
if(pImageCodecInfo == NULL) {
return -1;
}
GetImageEncoders(num, size, pImageCodecInfo);
for(UINT j=0; j< num; ++j) {
if(wcscmp(pImageCodecInfo[j].MimeType, format) == 0) {
*pClsid= pImageCodecInfo[j].Clsid;
free(pImageCodecInfo);
return j;
}
}
free(pImageCodecInfo);
return -1;
}
BOOL SaveBitmap(HBITMAP hBitmap, LPCTSTR lpszFileName, LPCTSTR lpszFormat)
{
Bitmap bmp(hBitmap,NULL);
CLSID encoderClsid;
GetEncoderClsid(lpszFormat, &encoderClsid);
if(Status::Ok == bmp.Save(lpszFileName, encoderClsid, NULL)) {
return TRUE;
}
return FALSE;
}
//SaveBitmap(hBitmap, L"C:\\123.jpeg", L"image/jpeg");
使用GDI+保存BITMAP到文件
最新推荐文章于 2022-06-10 19:25:14 发布