AForge是一个C#开源库(官网www.aforgenet.com),包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,机器人等领域。
ChartX利用其AForge.Video.DirectShow名字空间下的相关类,开发了一个简单的视频预览视图。
/// <summary>
/// 将通过AForge获取的实时视频图像(GDI的Bitmap对象)在一个Image控件实时更新和显示
/// </summary>
public class VideoLayer_WPF : VideoLayer
/// <summary>
/// 将通过AForge获取的实时视频图像(GDI的Bitmap对象)在一个PictureBox控件实时更新和显示
/// </summary>
public class VideoLayer_WinForm : VideoLayer
因为视图需要实时刷新显示通过AForge获取的帧图像,所以考虑内存管理,经过测试,使用PictureBox + WindowsFormsHost控件,能比使用WPF的Image控件更好地控制内存增长。
因为如果使用Image控件显示图像,需要将由AForge提供的Bitmap对象转换为托管的BitmapSource对象,这需要使用Imaging.CreateBitmapSourceFromHBitmap方法:
internal class Win32
{
internal sta