好像网上没有关于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); } }
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
不信的盆友,不妨一试。
例子VS2010工程下载:http://download.csdn.net/detail/friendan/7723703
--------------------------------------------------------------------------------------------------------------------------------------------
您的十分满意是我追求的宗旨。
您的一点建议是我后续的动力。