【发布时间】:2014-12-21 09:48:58
【问题描述】:
我正在尝试将我刚刚从压缩文件提取到内存中的图像文件(png,但可以是任何东西)转换为 ID2D1Bitmap 以使用 Direct 2D 进行绘制。我试图寻找一些文档,但我只能找到接收“const char * path”或询问我图像的宽度和高度的方法,这是我事先无法知道的。 在谷歌上搜索它让我一无所获。
该文件在内存中是原始文件,我想避免将图像提取到硬盘驱动器到一个临时文件中,只是为了从那里读取它们的数据。
有什么想法吗?
【问题讨论】:
-
使用 WIC 从
IWICStream加载它,然后使用CreateBitmapFromWicBitmap获取您的ID2D1Bitmap- MSDN 上有示例,所以我很惊讶您没有找到任何东西。跨度> -
您必须首先将图像(例如使用 WIC)解码为原始 RGB32 像素数据(这可以在内存中完成),然后您可以使用 CreateBitmap() (msdn.microsoft.com/en-us/library/windows/desktop/…)。您应该将指向解码图像的指针传递给 srcData 参数。
标签: c++ windows direct2d imaging