如何使用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