其实就绘制一个图片然后存为文件,同理也可以自己作画,然后保存为文件。
直接上代码,这里只是另存为了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);
}