好像网上没有关于CxImage库内存泄露介绍的,如果你将其应用到实际项目的开发中,那就坑大了。

我写的测试程序界面如下:

CxImage内存泄露_图像处理

----------------------------------------------------------------------------------------------------------------------------

我通过开启一条线程,不断的进行图片的保存操作,发现程序运行30分钟左右,

内存泄露就很明显了,关键代码如下:


void CTestCxImageDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);

m_isRun=true;
_beginthreadex(NULL,0,ThreadTestProxy,this,0,NULL);
}


void CTestCxImageDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
m_isRun=false;
}

void CTestCxImageDlg::ThreadTest()
{
CString imgPath;
GetDlgItemText(IDC_TXT_IMG_PATH,imgPath);
while(m_isRun)
{
DeleteFile("123.jpg");
CxImage image(imgPath.GetBuffer(),CXIMAGE_FORMAT_JPG);
if (image.IsValid())
{
image.SetJpegQuality(80); //JPG压缩质量
//image.Crop(0,0,m_iCarHeadWidthSave,m_iCarHeadHeightSave); // 截图
image.Crop(0,0,1024,768);
//image.Crop(rcCrop);
image.Resample(800,600); //图片的分辨率
image.Save("123.jpg",CXIMAGE_FORMAT_JPG);
}
image.Destroy();
Sleep(1000);
}
}


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

不信的盆友,不妨一试。

--------------------------------------------------------------------------------------------------------------------------------------------

​​

您的十分满意是我追求的宗旨。

您的一点建议是我后续的动力。