CImageを使用したいのですから、CImageのドキュメントを確認しましょう。
すると、CImage::Load(),CImage::LoadFromResource()がイメージ読み込みであることがわかります。
CImage::LoadFromResource()はBITMAPリソースからの読み込みなので、もう一方のCImage::Load()
を確認します。
CImage::Load(LPCTSTR pszFileName),CImage::Load(IStream* pStream)の二つがありますが、
CImage::Load(LPCTSTR pszFileName)はファイル読み込みのため除外、
CImage::Load(IStream* pStream)はストリームからの読み込みです。
というわけで、IStreamをメモリ上から生成してやれば読み込めます。
IStreamはGlobalAllocでメモリ確保して得られたハンドルに対してCreateStreamOnHGlobalを呼ぶと生成できます。
(追記)
以下のコードでメモリ上のPNGデータをCImageに読み込めることを確認しました。
エラーチェックは省いています。
C++
1    IStream* pIstream = NULL;
2    //IStream生成
3    CreateStreamOnHGlobal(NULL, TRUE, &pIstream);
4    //PNGデータ書き込み
5    pIstream->Write(PNGデータポインタ, PNGデータサイズ, NULL);
6    //CImageに読み込み
7    CImage image;
8    image.Load(pIstream);
9    //CImageを使用した操作(例としてBMP保存)
10    image.Save(_T("c:\tmp\test.bmp"), Gdiplus::ImageFormatBMP);
11    //IStream解放
12    pIstream->Release();
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/23 12:29
2019/12/23 13:31
2019/12/23 23:41
2019/12/24 04:30
2019/12/24 05:01
2019/12/27 02:32
2019/12/28 16:44