Как я могу загрузить изображение из массива BYTE * с помощью CImage?
Мой обходной путь до сих пор состоит в том, чтобы просто создать временный файл, но иногда эта операция очень дорогая ...
Вероятно, есть библиотеки для этого, но я не хочу ссылаться на другие библиотеки, все, что мне нужно, это получить размер изображения и эффективно отобразить его на экране, и 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();`