zoukankan      html  css  js  c++  java
  • wpf mediakit 摄像头截图

    在用VideoCaptureElement的过程中,不知道怎么获得摄像头的截图,纠结了整整一天,

    最终在下面的网站上找到了答案,哈哈。(困的都不清醒的大脑,让我耐下心来看英文,上天还是很优待我的)

    例子截图:

    XAML:

    <Window x:Class="Fish.AccountBook.View.Test.CameraWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="CameraWindow" Height="200" Width="300"
            xmlns:WPFMediaKit="clr-namespace:WPFMediaKit.DirectShow.Controls;assembly=WPFMediaKit">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="30" />
                <RowDefinition Height="auto" />
            </Grid.RowDefinitions>
            <StackPanel Orientation="Horizontal">
                <Button Name="button1" Content="截图" Height="23"  Width="75" Click="button1_Click" />
            </StackPanel>
            <WPFMediaKit:VideoCaptureElement x:Name="m_VideoCaptureElement" Grid.Row="1" />
        </Grid>
    </Window>

    CS:

        public partial class CameraWindow : Window
        {
            public CameraWindow()
            {
                InitializeComponent();
    
                string[] inputNames = MultimediaUtil.VideoInputNames;
                m_VideoCaptureElement.VideoCaptureSource = inputNames[0];
            }
    
            private void button1_Click(object sender, RoutedEventArgs e)
            {
                RenderTargetBitmap bmp = new RenderTargetBitmap((int)m_VideoCaptureElement.ActualWidth, (int)m_VideoCaptureElement.ActualHeight, 96, 96, PixelFormats.Rgb24);
                bmp.Render(m_VideoCaptureElement);
                BitmapEncoder encoder = new JpegBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(bmp));
                string now = DateTime.Now.Year + "" + DateTime.Now.Month + "" + DateTime.Now.Day + "" + DateTime.Now.Hour + "" + DateTime.Now.Minute + "" + DateTime.Now.Second;
                string filename = "D:\\" + now + "pic.jpg";
                FileStream fstream = new FileStream(filename, FileMode.Create);
                encoder.Save(fstream);
                fstream.Close();
    
    
            }
        }

    参考:http://wpfmediakit.codeplex.com/

    参考:http://wpfmediakit.codeplex.com/discussions/287507

  • 相关阅读:
    WCF配置文件注释
    WCF 契约
    等待窗口 or splash 窗体用法
    SOA架构概述
    在高负载网站性能优化
    WCF应用实例
    SOA快速指南 1 2 3,第 3 部分: 服务实现及架构设计
    WCF Binding
    已经添加了对EXCEL的引用,但在出现Microsoft.Office.Interop.Excel.Application没有定义
    Oracle 11g 转换内部编码
  • 原文地址:https://www.cnblogs.com/sshoub/p/2552277.html
Copyright © 2011-2022 走看看