vc6下的图片格式转换
听说下面这个函数MSDN有,但我一直都没找到。既然是MSDN有的,代码就已经固定了,此函数照抄即可
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;
}
下面是调用此函数的代码
Image img(L"d://12.jpg");//这里的图片可以是其它格式
CLSID pngClsid;
GetEncoderClsid(L"image/jpeg", &pngClsid);
img.Save(L"d://12_0.bmp", &pngClsid, NULL);//这里的图片可以是其它格式,此处转化为BMP格式
下面的代码是分别获得5中图像编码器的CLSID
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);
摘自:srxumin的专栏