zoukankan      html  css  js  c++  java
  • 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         }
      View Code

    ************Code虽易,Debug不易,且码且珍惜************


    本博客仅用于学习记录之用,如有侵权,请Email:tianqy@live.com

  • 相关阅读:
    pyhon3 mysql的下载和配置
    python3 进程池和线程池
    python3 udp socketserver
    python3 多进程实现socket通讯
    python3 在一个进程内开启多个线程实现socket通讯
    python3 单线程(gevent)实现并发的socket通讯
    python3 协程gevent模块(遇到IO自动切换)
    python3 greenlet模块
    python3 协程函数yeild
    python3 线程队列queue
  • 原文地址:https://www.cnblogs.com/tianqy/p/3918246.html
Copyright © 2011-2022 走看看