CImage를 사용하여 BYTE * 배열에서 이미지를로드하려면 어떻게해야합니까? 지금까지 임시 파일을 만드는 것만으로도이 작업을 수행하는 것은 매우 비쌉니다. 아마도 라이브러리가 있지만 다른 라이브러리에 연결하고 싶지는 않습니다. 이미지 크기를 얻으려면 모두 필요합니다. 효과적으로 화면으로 표시하고 C 화상 내가 그것을 위해 필요한 모든 것입니다 ...ATL CImage를 사용하여 메모리 버퍼에서 이미지로드
P-> pbData가 바이트 * 배열 및 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/en-us/library/ms536319) 생성자를 호출하는데, 실제로 파일 이름뿐만 아니라 스트림을 가져옵니다. –