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