GDI+支持各種常見的圖像格式之間進行轉換,支持的格式有BMP、JPEG、GIF、TIFF和PNR。
方法:
使用GDI+的Image類,有Save方法,可以進行轉換操作。Save方法需要一個CLSID來表示轉換目標格式,可以使用GetImageEncoders方法來獲取所有支持的格式。
以下代碼示例可以從string指定的格式來獲取對應的CLSID(從MSDN裏面摘錄):
- int GetEncoderClsid(const WCHAR* format, CLSID* pClsid)
- {
- UINT num = 0; // number of image encoders
- UINT size = 0; // size of the image encoder array in bytes
- ImageCodecInfo* pImageCodecInfo = NULL;
- GetImageEncodersSize(&num, &size);
- if(size == 0)
- return -1; // Failure
- pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
- if(pImageCodecInfo == NULL)
- return -1; // 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 j; // Success
- }
- }
- free(pImageCodecInfo);
- return -1; // Failure
- }
支持的格式字符串有:
- image/bmp
- image/jpeg
- image/gif
- image/tiff
- image/png