我正在使用 AForge.NET 库定期从我的网络摄像头获取图像数据。出于调试原因,我必须将过滤后的图像绘制到屏幕上。目前,我的主窗体上有 6 个 WPF 图像,并且每秒钟我都会处理一个事件,该事件给了我一个 UnmanagedImage,我将其转换为 System.Drawing.Bitmap,然后转换为 BitmapSource - 我的代码如下所示:
private void OnImageFiltered(object sender, FilterEventArgs e)
{
var bitmapSource = e.UnmanagedImage.ToManagedImage().ToBitmapSource();
pictureBox.Source = bitmapSource;
}
但正如我之前所说,我有 6 张图像,它会减慢整个程序的速度。我怎样才能让它更快?
我的 ToBitmapSource 扩展方法在这里:
public static BitmapSource ToBitmapSource(this System.Drawing.Image source)
{
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(source);
var bitSrc = bitmap.ToBitmapSource();
bitmap.Dispose();
bitmap = null;
return bitSrc;
}