跟进:Directdraw: Rotate video stream
我设法预览了相机的视频流,但图像旋转了90°到横向模式。我现在正在寻找一种方法将相机图像旋转回正常,但问题是我甚至不知道从哪里开始:这是在DDSURFACEDESC结构中的VideoCaptureFilter,VideoInfoHeader中完成的吗?只能通过使用额外的过滤器来完成旋转吗?它是过滤器设置吗?
答案 0 :(得分:1)
我发现这通常是通过BI_SRCPREROTATE标志完成的:
开发了一个特殊的旗帜 (BI_SRCPREROTATE)告诉GDI和 视频渲染器那个 图像的方向来自 相机处于正确的方向 (渲染时不要旋转)。这个 是必要的,因为当你旋转 设备上的外壳你也是 物理旋转设备。当。。。的时候 显示驱动程序将位图旋转到 渲染它需要的shell和UI 知道这个特定的位图 不应该旋转。标志是or'd 进入biCompression字段 BITMAPINFO结构。
示例代码可能如下所示:
pVih->bmiHeader.biCompression &= ~BI_SRCPREROTATE;
然而,这种方法不适用于我正在使用的HTC HD2,但它可能适用于其他设备,因此我决定将此添加到我的问题中。