【发布时间】:2011-03-31 16:00:10
【问题描述】:
如何使用 CImage 从 BYTE* 数组加载图像? 到目前为止,我的解决方法是简单地创建一个临时文件,但这个操作有时非常昂贵...... 可能有库,但我不想链接到其他库,我只需要获取图像大小并有效地显示到屏幕上,而 CImage 就是我所需要的......
p->pbData 是一个 BYTE* 数组,p->dwDataLen 是一个保存数组大小的 DWORD
我的代码:
ATL::CAtlTemporaryFile TempFile;
TempFile.Create(NULL, GENERIC_WRITE | GENERIC_READ);
TempFile.Write(p->pbData, p->dwDataLen);
TempFile.HandsOff();
ATL::CImage m_image;
m_image.Load(TempFile.TempFileName());
TempFile.Close();
int h = m_image.GetHeight();
int w = m_image.GetWidth();
// rest of code here
m_image.Destroy();
m_image.ReleaseGDIPlus();`
【问题讨论】: