C# WPF使用AForge类库操作USB摄像头拍照并保存

2020-01-05 09:39:41王冬梅

最终效果如下:

C#,WPF,AForge,类库,USB,摄像头,拍照

首先单击打开按钮,然后单击拍照按钮,就会在指定路径下生成一个 jpg 文件。

单击打开按钮之后需要等待 2s 以上才能点击拍照(需要等待连接到摄像头),否则会报出异常,如下图:

C#,WPF,AForge,类库,USB,摄像头,拍照

二、显示摄像头拍摄画面和截取的图片

首先添加 System.Windows.Forms 和 WindowsFormsIntegration 的引用。 
然后在 MainWindows.xmal 文件中加命名空间:


xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
xmlns:aforge ="clr-namespace:AForge.Controls;assembly=AForge.Controls"12

添加 VideoSourcePlayer 和 Image 控件:


<wfi:WindowsFormsHost Grid.Row="0">
 <aforge:VideoSourcePlayer x:Name="player" Height="480" Width="640"/>
</wfi:WindowsFormsHost>

<Image Grid.Row="0" Grid.Column="1" Name="imgCapture" Stretch="Fill" Height="480" Width="640"/>

这里有个小细节,注意对 VideoSourcePlayer 命名时,一定要使用 x:Name 不要省略 x: ,否则无法在后台代码中使用(不要问我是怎么知道的)。