WPF中实现拍照功能(利用“WPFMediaKit.dll”)

开始先展示下效果图:

  

-------------------------------下面记录步骤:------------------------------------------------------

  1. 下载“WPFMediaKit.dll”程序开发包,用在项目中添加引用;
  2. 在WPF窗口引入并命名: xmlns:wpfMedia="clr-namespace:WPFMediaKit.DirectShow.Controls;assembly=WPFMediaKit"
  3. 在界面用到一个VideoCaptureElement的控件:
  4. 在窗口加载时加载摄像头设备、选择摄像头切换时,界面控件的设备源也跟着变化:
  5. 点击“拍照”和“确定的代码“:
  6.  1 //定义一个用于传到UI照片数据的属性
     2         public byte[] CaptureData { get; set; }
     3
     4         /// <summary>
     5         /// 点击“拍照”
     6         /// </summary>
     7         private void btnCapture_Click(object sender, RoutedEventArgs e)
     8         {
     9             RenderTargetBitmap bmp = new RenderTargetBitmap((int)captureElement.ActualWidth,(int)captureElement.ActualHeight,
    10                 96,96,PixelFormats.Default);
    11             bmp.Render(captureElement);
    12             BitmapEncoder encoder = new JpegBitmapEncoder();
    13             encoder.Frames.Add(BitmapFrame.Create(bmp));
    14             using (MemoryStream ms = new MemoryStream())
    15             {
    16                 encoder.Save(ms);
    17                 CaptureData = ms.ToArray(); //将形成的照片留传递给属性
    18             }
    19             captureElement.Pause();
    20         }
    21 //点击确定
    22 private void btnOK_Click(object sender, RoutedEventArgs e)
    23         {
    24             DialogResult = true;
    25         }

WPF中实现拍照功能(利用“WPFMediaKit.dll”),布布扣,bubuko.com

时间: 2024-10-11 16:26:09

WPF中实现拍照功能(利用“WPFMediaKit.dll”)的相关文章

WPF中实现验证码功能

其实和winform中的实现差不多,只是由于WPF中控件使用的库与winform中的有区别,大体上还是差不多的,直接看代码: 产生验证码的类:ValidCode.cs public class ValidCode { #region Private Fields private const double PI = 3.1415926535897932384626433832795; private const double PI2 = 6.2831853071795864769252867665

WPF换肤之三:WPF中的WndProc

原文:WPF换肤之三:WPF中的WndProc 在上篇文章中,我有提到过WndProc中可以处理所有经过窗体的事件,但是没有具体的来说怎么可以处理的. 其实,在WPF中,要想利用WndProc来处理所有的事件,需要利用到SourceInitialized  Event,首先需要创建一个HwndSource对象,然后利用其AddHook方法来将所有的windows消息附加到一个现有的事件中,这个就是WndProc. void WSInitialized(object sender, EventAr

在WPF中使用AForge.net控制摄像头拍照

原文:在WPF中使用AForge.net控制摄像头拍照 利用AForge.net控制摄像头拍照最方便的方法就是利用PictureBox显示摄像头画面,但在WPF中不能直接使用PictureBox.必须通过<WindowsFormsHost></WindowsFormsHost>来提供交换功能.其解决方法如下: 1.按照常规方法新建一个WPF应用程序: 2.添加引用 WindowsFormsIntegration  (与WinForm交互的支持) System.Windows.For

WPF中利用WebClient向服务器上传文件

转载:原文地址http://blog.csdn.net/wj1589300/article/details/9255631 WPF中利用WebClient向服务器上传文件 忽然接到一个任务,在WPF中上传文件至服务器~在网上搜了很多种方法,最终决定利用WebCient实现文件的上传工作,看似很简单的任务,却遇到了很多问题.先说一下我的探索步骤吧~ 一.选用WebClient.UploadFile方法 (String,String, String) [csharp] view plaincopyp

在WPF中让ListBox和ComboBox的快速检索功能失效

问题来源: 自定义一个ComboBox,用来显示日期.后台数据使用的是DateTime,经过Converter转化成“2015年01月01日”样子的成字符串用于显示. 但是,在实际使用中,不停的按下“[”键,光标会从以一个元素一下一下的向下移动. 经过调查,这是ComboBox的“快速检索”功能在作祟. 关于快速检索: WPF中ListBox和ComboBox有一个“快速检索”的功能. 比如在ListBox里,按下“a”键,光标会定位到第一个首字母为“a”的Item上. ComboBox也是一样

WPF中使用AxisAngleRotation3D实现CAD的2D旋转功能

原文:WPF中使用AxisAngleRotation3D实现CAD的2D旋转功能 ????? 对于CAD图形来说,3D旋转比较常用,具体实现方法在上篇文章<WPF中3D旋转的实现 >中做了讲解,可以参考Daniel. ????? 今天说一下CAD的2D旋转,2D旋转虽然不如3D那么常用,但也是CAD操作的基本功能需要实现.刚开始的做法是觉得用AxisAngleRotation3D没法实现2D旋转,所以用RotateTransform去实现.但是用它遇到的问题是旋转的transform没有考虑在

在wpf中利用异步lambda编程,模拟数据库连接,防止界面假死

参考<图解C#>第20章异步编程第五节程序,解决在wpf中连接数据库,界面假死问题. public partial class MainWindow : Window { private bool isConnected = false; public MainWindow() { InitializeComponent(); startWorkButton.Click += async (sender, e) => { SetGuiValues(false, "正在连接数据库

浏览器扩展系列————在WPF中定制WebBrowser快捷菜单

原文:浏览器扩展系列----在WPF中定制WebBrowser快捷菜单 关于如何定制菜单可以参考codeproject上的这篇文章:http://www.codeproject.com/KB/books/0764549146_8.aspx?fid=13574&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=26#xx0xx 本文主要讲述如何在这篇文章中的ShowContextMenu方法中弹出自己的Conte

WPF中DPI的问题

先搞清楚一下几个概念: DPI:dots  per  inch ,每英寸的点数.我们常说的鼠标DPI,是指鼠标移动一英寸的距离滑过的点数:打印DPI,每英寸的长度打印的点数:扫描DPI,每英寸扫描了多少个点.(更多请参考百度百科http://baike.baidu.com/view/49853.htm) 像素:pixel,picute和element的缩写.像素可以简单的理解为DPI里面的点.例如,显示器的分辨率为1024像素*768像素,就是说显示器的横向可显示1024个点(像素),纵向科研可