如何使用CImage从BYTE *数组加载图像? 我的解决方法,直到现在只是简单地创建一个临时文件,但有时候这个操作非常昂贵... 有可能是图书馆,但我不想链接到其他图书馆,我所需要的只是获取图像大小并有效地显示到屏幕,是的CImage我需要为...使用ATL 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();`
首先,它不是一个有效的答案。然后,您所指的方法是在内部调用['GdiPlus :: Bitmap'](https://msdn.microsoft.com/zh-cn/library/ms536319)构造函数,它确实需要流,而不仅仅是文件名。 – 2016-03-01 15:46:55