• 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

  • 相关阅读:
    Mysql 之根据经纬度按距离排序
    Python的列表和元组
    go实现堆排序、快速排序、桶排序算法
    微信Hook劫获protobuf数据
    手机号批量查询微信昵称/网名/名称
    保存整个网页的内容
    天地图官网引入文件
    Postman-动态传参
    JAVA FileOutputStream与BufferedOutputStream的区别
    JAVA中sleep()和wait()的区别
  • 原文地址:https://www.cnblogs.com/tianqy/p/3918246.html
Copyright © 2020-2023  润新知