C++ Windows编程:ID2D1Bitmap接口-获取位图数据

C++ Windows编程:ID2D1Bitmap接口-获取位图数据,c++,windows,direct2d,wic,C++,Windows,Direct2d,Wic,我一直在编写自己的函数库来访问一些新的Direct2D Windows库。特别是,我一直在开发ID2D1Bitmap接口。我想写一个函数来返回指向位图数据起始点的指针(用于编辑特定像素,或自定义编码,或将来可能需要的任何东西)。不幸的是。。。前面的问题 我似乎找不到从ID2D1Bitmap接口访问原始像素数据的方法 有人知道如何访问这个吗?我的一个朋友建议将位图绘制到曲面上,然后从曲面上提取位图数据。我不知道这是否有效。这显然是低效的,我不知道该使用哪种表面 感谢您的帮助。(特别是c++语言,但

我一直在编写自己的函数库来访问一些新的Direct2D Windows库。特别是,我一直在开发ID2D1Bitmap接口。我想写一个函数来返回指向位图数据起始点的指针(用于编辑特定像素,或自定义编码,或将来可能需要的任何东西)。不幸的是。。。前面的问题

我似乎找不到从ID2D1Bitmap接口访问原始像素数据的方法

有人知道如何访问这个吗?我的一个朋友建议将位图绘制到曲面上,然后从曲面上提取位图数据。我不知道这是否有效。这显然是低效的,我不知道该使用哪种表面

感谢您的帮助。(特别是c++语言,但我认为不同语言之间的代码不会有太大差异)


(我知道我可以直接从文件中读取数据,但我使用的是WIC解码器,这意味着它可以是任何数量的无法识别的格式)

由于您使用的是WIC解码器,您应该能够直接使用它来获取位图数据。

通常,您无法访问
ID2D1Bitmap
数据。将is视为仅限GPU的数据。但是,由于某些限制,您可能无法使用其他接口访问数据,具体取决于位图的创建方式

由于位图由
IWICBitmap
支持,因此使用。[]

如果位图由
ID3D11Texture2D
支持,则应使用

IDXGISurface
的情况下,您可以使用