以下方法中只有方法二为.NET调用,其它均为C++程序实现。
方法一:
利用OpenCV库中的imwrite函数或者cvSaveImage函数实现。
(1) Imwrite
vector<int>CompressionPara;
CompressionPara.push_back(CV_IMWRITE_PNG_COMPRESSION);
CompressionPara.push_back(9); //参数越大,压缩比例越高
imwrite(pic1, SaveImgFront, CompressionPara);
(2) cvSaveImage
int CompressionParams[3];
CompressionParams[0]= CV_IMWRITE_PNG_COMPRESSION;
CompressionParams[1]= 9;
cvSaveImage(saveSubName.c_str(), img, CompressionParams);
以上代码段重点在于函数的第3个输入参数,该参数用于调整压缩比例。
优点:代码易于管理,压缩比率可调整,不需要保存图片后再压缩,时间短。无损压缩。
缺点:压缩比例小,压缩后图片大概缩小为原图的90%左右。
方法二: