相关疑难解决方法(0)

从 IWICBitmapSource、IWICBitmap、IWICBitmapDecoder 获取位图 BitsPerPixel(无论在何处)

我想主题已经说明了一切。但在一些细节上,我正在加载、操作、然后显示位图,并且是在 GDI 中完成的。现在我想增加一些速度,因为它反复发生。

许多年前,我将 DirectX 用于其他用途,但我所看到的一切都表明要摆脱 DirectX,转向 Direct2D。所以是时候扔掉所有这些知识并重新开始了。真正的 MS 方式;-)

好吧,为了操作位图,在进行渲染之前,我发现可以使用“Lock()”来获取它。界面上的功能也会告诉我尺寸。但我还需要了解 BBP,并跨步。

在有人说“你为什么不使用 ::GetBBP()... DUH”之前,经过数小时的 MSDN 和其他来源搜索后,我一直无法远程找到类似的东西。还有很多非常令人困惑的 COM 接口。

我唯一能找到的是 GetPixelFormat(),它返回一个 GUID,然后我编写大约 150 个“if (...)”语句来比较它。这样我就可以测试它的三个值,如果不是其中一个值则拒绝(1,8,32),这几乎不是处理这个问题的有效方法。

GetPixelFormat() 也不告诉我步幅。

有没有办法做到这一点?

(位图也是未压缩的,所以我什至不需要通过 IWICBitmapDecoder 运行它们,但我还没有弄清楚如何简单地告诉 IWICBitmap“这是一个 blob,将其用作大小为 xy 的位图”)

感谢您的任何帮助。

-斯科特

bitmap directdraw direct2d

2
推荐指数
1
解决办法
2354
查看次数

WIC位图处理最有效的像素格式是什么?

我正在尝试使用Direct2D和WIC Bitmap制作一个简单的视频播放器.
它需要YUV像素格式帧数据的快速和CPU经济绘制(具有拉伸).

我已经用GDI测试了.我希望切换到Direct2D可以获得至少10倍的性能提升(较小的CPU开销).

我要做的基本上如下:

  1. 创建一个空的WIC位图A(用于绘制画布)
  2. 使用YUV帧数据创建另一个WIC位图B(格式转换)
  3. 将位图B绘制到A上,然后将A绘制到D2D渲染目标

对于1,2步,我必须选择像素格式.
WIC Native Pixel格式

有一个MSDN页面推荐WICPixelFormat32bppPBGRA.
http://msdn.microsoft.com/en-us/library/windows/desktop/hh780393(v=vs.85).aspx

有什么区别WICPixelFormat32bppPBGRAWICPixelFormat32bppBGRA?(前者有额外的P)

如果WICPixelFormat32bppPBGRA是要走的路,总是这样吗?无论硬件和/或配置?

实际上WIC位图处理最有效的像素格式是什么?

windows wic direct2d

2
推荐指数
1
解决办法
1563
查看次数

标签 统计

direct2d ×2

bitmap ×1

directdraw ×1

wic ×1

windows ×1