GDI+ Bitmap保存到本地图片

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013183287/article/details/81353956
Bitmap bmp;

//bmp构建方法,根据具体情况构建Bitmap 
......


CLSID pngClsid;
GetEncoderClsid(_T("image/bmp"), &pngClsid);
bmp.Save(strPic, &pngClsid, NULL);

//GetEncoderClsid函数的第一个参数是图片格式,"/"后面的为图片的后缀

这里用到一个函数GetEncoderClsid,具体实现如下:


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
}

猜你喜欢

转载自blog.csdn.net/u013183287/article/details/81353956