HRESULT GetEncoderClsid(const WCHAR* format, CLSID* pClsid) { /* format support : "image/png" "image/bmp" "image/gif" "image/jpeg" "image/tiff" */ UINT num = 0; // number of image encoders UINT size = 0; // size of the image encoder array in bytes GetImageEncodersSize(&num, &size); if(size == 0) return E_FAIL; // Failure ImageCodecInfo* pImageCodecInfo = NULL; pImageCodecInfo = (ImageCodecInfo*)(malloc(size)); if(pImageCodecInfo == NULL) return E_FAIL; // Failure 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 S_OK; // Success } } free(pImageCodecInfo); return E_FAIL; } void SaveBitmap(Bitmap* bitmap) { // Get the CLSID of the JPEG encoder. CLSID clsid; GetEncoderClsid(L"image/jpeg", &clsid); bitmap.Save(L"C:\\test.jpg", &clsid, NULL); }
16 3月 2012
[Win32] Save Bitmap
Save Gdiplus::Bitmap
訂閱:
文章 (Atom)