GDI+拉伸或者缩放图片并另存为

其实就绘制一个图片然后存为文件,同理也可以自己作画,然后保存为文件。

直接上代码,这里只是另存为了png格式,如需另存为其他格式,请自行查询。

void Saveimg(const wstring& strsrcImg,const wstring& strdstFile,const int& nDstX,const int& nDstY)
{
	Bitmap srcImg(strsrcImg.c_str());
	Bitmap dstImg(nDstX,nDstY);
	Graphics gdip(&dstImg);
	
	gdip.SetInterpolationMode(InterpolationModeHighQualityBicubic);
	gdip.DrawImage(&srcImg,0,0,nDstX,nDstY);

	// number of image encoders
	UINT  num = 0 ,size = 0;
	// size of the image encoder array in bytes
	ImageCodecInfo* pImageCodecInfo = NULL;
	if(GetImageEncodersSize(&num, &size)!= Ok || size == 0 )
		return;  // Failure
	pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
	if(pImageCodecInfo == NULL)
		return ;  // Failure
	if(GetImageEncoders(num, size, pImageCodecInfo)!= Ok )
		return ;

	for(UINT j = 0; j < num; ++j)
	{
		if( wcsicmp(pImageCodecInfo[j].MimeType, L"image/png") == 0 ) //保存为png格式
		{
			dstImg.Save(strdstFile.c_str(),&(pImageCodecInfo[j].Clsid));
			break;
		}
	}
	free(pImageCodecInfo);
}

猜你喜欢

转载自blog.csdn.net/u012081284/article/details/93641817