10、员工通过摄像头拍照,WPFMediaKit

1、基础框架准备工作
1.1 同员工管理模块
1.2 使用第三组件WPFMediaKit 下载WPFMediaKit
1.3 添加引用WPFMediaKit
2、员工编辑页面,添加一个button,text为拍照,方法如下:

private void btnCapture_Click(object sender, RoutedEventArgs e) { CaptureWindow win = new CaptureWindow(); if (win.ShowDialog() == true) { byte[] data = https://www.it610.com/article/win.CaptureData; ShowImg(data); Employee employee = (Employee)gridEmployee.DataContext; employee.Photo = data; } }



3、、建立CaptureWindow wpf应用程序
3.1 UI


3.2 交互
namespace HRMSys.UI.SystemMgr { /// /// CaptureWindow.xaml 的交互逻辑 /// public partial class CaptureWindow : Window { public CaptureWindow() { InitializeComponent(); } public byte[] CaptureData { get; set; } private void Window_Loaded_1(object sender, RoutedEventArgs e) { cbCameras.ItemsSource = MultimediaUtil.VideoInputNames; if (MultimediaUtil.VideoInputNames.Length > 0) { cbCameras.SelectedIndex = 0; //第0个摄像头为默认摄像头 } else { MessageBox.Show("电脑没有安装任何可用摄像头"); } }private void cbCameras_SelectionChanged(object sender, SelectionChangedEventArgs e) { captureElement.VideoCaptureSource = (string)cbCameras.SelectedItem; }private void btnCapture_Click(object sender, RoutedEventArgs e) { //captureElement. 怎么抓取高清的原始图像 //能不能抓视频。 //todo:怎么只抓取一部分 RenderTargetBitmap bmp = new RenderTargetBitmap( (int)captureElement.ActualWidth, (int)captureElement.ActualHeight, 96, 96, PixelFormats.Default); bmp.Render(captureElement); BitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(bmp)); using (MemoryStream ms = new MemoryStream()) { encoder.Save(ms); CaptureData = https://www.it610.com/article/ms.ToArray(); } //captureElement.Pause(); //todo:自己完成重拍的代码 DialogResult = true; } } }


【10、员工通过摄像头拍照,WPFMediaKit】转载于:https://www.cnblogs.com/xjgby/archive/2013/05/15/3079623.html

    推荐阅读