gpt4 book ai didi

c# - 在 .Net WPF/DirectX 中显示视频信号

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:54 25 4
gpt4 key购买 nike

我有一个视频信号,它为我提供了一个带有 YCbCR 信号的缓冲区。我可以通过一些数学运算将其转换为 RGB,但我不知道如何在 Net WPF 中显示视频。我还尝试使用 SlimDX 并将流渲染为 Sprite ,但这只是一个想法,我也不知道如何开始。

感谢帮助,米尔杜尔

最佳答案

如果你能把它转换成RGB,你就拥有了Bitmap。您可以锁定位图并设置它的数据。当您创建新的位图时,您可以设置像素格式(24bpp、32bpp),因此从视频帧创建位图应该没有问题。

每次获得新帧时,您只需在 DirectX 中更新纹理即可。 DirectX 中的纹理有多种格式,其中一些与位图格式兼容,您甚至可以使用位图创建新纹理。

首先找到一些如何在 DirectX(SlimDX、ManagedDirectX...)中渲染纹理的示例,然后在每次新帧进来时更新纹理。如果您不想为纹理锁定和更新而烦恼,您可以创建新的每次新帧到来时使用此构造函数纹理

public Texture(Device, Bitmap, Usage, Pool); 

即使您不想使用 DirectX,也可以在 WPF 中直接渲染到 Canvas

class MyCanvas : Canvas {
protected override void OnRender (DrawingContext dc) {
BitmapImage img = ...;
dc.DrawImage (img, new Rect (0, 0, img.PixelWidth, img.PixelHeight));
}
}

从Bitmap获取BitmapImage,看这里link text

关于c# - 在 .Net WPF/DirectX 中显示视频信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4343766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com