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);
VC 实现BMP转换到JPG、JPG转换到BMP
最新推荐文章于 2024-08-06 09:44:05 发布
本文介绍了如何使用Visual C++实现BMP到JPG以及JPG到BMP的转换。提供了GetEncoderClsid函数获取编码器CLSID,以及SaveFile和SaveCurScreenJpg函数分别用于将Bitmap对象保存为JPG和抓取屏幕并保存为JPG。代码中利用GDI+库进行图像处理,并调整图像质量。
摘要由CSDN通过智能技术生成