我实现了一个 C# 应用程序,它以 30fps 的帧速率接收帧 RGB。
帧到达事件由以下代码管理:
void client_ColorFrameReady(object sender, ColorFrameReadyEventArgs e)
{
mycounter++;
Console.WriteLine("new frame received: " + mycounter);
if (writer != null)
{
count++;
if (count % 2== 0)
{
using (var frame = BitmapImage2Bitmap(e.ColorFrame.BitmapImage))
using (var thumb = ResizeBitmap(frame, 320, 240))
{
writer.WriteVideoFrame(thumb);
}
}
}
else
{
writer.Close();
}
}
在 if 条件下,我只管理两个帧之一。
当我的代码调用时BitmapImage2Bitmap
,我得到了这个异常:
英文的例外应该是:
A first chance exception of type 'System.NotSupportedException' occurred in `PresentationCore.dll`
Additional information: BitmapMetadata is not available on BitmapImage.
奇怪的是,我的应用程序“运行良好”,因为帧已正确插入到输出文件中。
我读过这个,所以这个问题似乎是 WPF 框架中的一个错误。