CxImage:Encode时程序崩溃解决思路
CxImage::Encode时程序崩溃内存中,我得到一张位图(HBITMAP hbmp),现在我想用CxImage在内存中,把BMP数据转
CxImage::Encode时程序崩溃
内存中,我得到一张位图(HBITMAP hbmp),现在我想用CxImage在内存中,把BMP数据转换成JPG数据,代码如下:
C/C++ codeCxImage img;img.CreateFromHBITMAP(hbmp);long size=0;//得到图像大小BYTE* buffer=0;//存储图像数据的缓冲img.Encode(buffer, size, CXIMAGE_FORMAT_JPG);//把image对象中的图像以type类型数据copy到buffer
在image.Encode时,程序崩溃了,提示信息:
Windows 已在 XXX.exe 中触发一个断点。
其原因可能是堆被损坏,这也说明 XXX.exe 中或它所加载的任何 DLL 中有 bug。
输出窗口可能提供了更多诊断信息
第一次使用CxImage,先谢谢大家了:)
[解决办法]你的buffer没有分配内存空间??
就不知道它的CxImage类中的Encode函数里有没有对buffer分配空间的操作,你可以到他的源代码看看
[解决办法]恩,应该是buffer没有分配空间的问题
[解决办法]有没有想过可能是你的img这个玩意儿出现了问题,img真的保存了一幅图像?
[解决办法]CXImage或者GDI+
NB点的用OPENCV
[解决办法]C/C++ codeBYTE* buffer=0;//存储图像数据的缓冲img.Encode(&buffer, size, CXIMAGE_FORMAT_JPG);