wpf使用WPFMediaKit调用平板(surface2)摄像头拍照

wpf中怎么调用surface(或者其他平板)的摄像头进行拍照那?今天分享一下使用WPFMediaKit调用平板(surface2)摄像头拍照。

下载最新的代码,加入到项目中。

 


2、test项目引用WPFMediaKit

xaml代码:

 代码如下 复制代码
<Window x:Class="test.WPFMediaKitWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:wpfmedia="clr-namespace:WPFMediaKit.DirectShow.Controls;assembly=WPFMediaKit"
Title="WPFMediaKitWindow" Loaded="Window_Loaded"WindowState="Maximized">
<Grid>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<ComboBox Name="cb" SelectionChanged="cb_SelectionChanged" Width="100" />
<Button Content="打开摄像头" x:Name="btnOpen" Click="btnOpen_Click"Width="100"/>
<Button Content="拍照" x:Name="btnCapture" Click="btnCapture_Click"Width="100" />
<Button Content="保存" x:Name="btnSave" Click="btnSave_Click" Width="100" />
</StackPanel>
<wpfmedia:VideoCaptureElement Name="vce" />
 
</StackPanel>
</Grid>
</Window>

后台代码:

获取摄像头:

 代码如下 复制代码
private void cameraOpen()
{
cb.ItemsSource = MultimediaUtil.VideoInputNames;
if (MultimediaUtil.VideoInputNames.Length > 1)
{
cb.SelectedIndex = 1;
}
else
{
cb.SelectedIndex = 0;
}
}

拍照保存到硬盘:win8注意有文件夹的权限问题

 代码如下 复制代码

private void TakePhoto()
{
RenderTargetBitmap bmp = new RenderTargetBitmap(
(int)vce.ActualWidth, (int)vce.ActualHeight,
96, 96, PixelFormats.Default);
//vce.Stretch = Stretch.Fill;
vce.Measure(vce.RenderSize);
vce.Arrange(new Rect(vce.RenderSize));
bmp.Render(vce);
BitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmp));
using (MemoryStream ms = new MemoryStream())
{
encoder.Save(ms);
CaptureData = ms.ToArray();
File.WriteAllBytes(@"C:aaaa" + DateTime.Now.ToString("yyyy-mm-dd-hh-mm-sss")+".png", CaptureData);
}
vce.Play();
//capCreateCaptureWindowA()
return;
}

时间: 2024-12-01 16:50:20

wpf使用WPFMediaKit调用平板(surface2)摄像头拍照的相关文章

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

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

HTML 调用电脑手机摄像头拍照

问题描述 关于调用电脑摄像头拍照怎么不行,我在网上下载很多,运行都不行,运行浏览器也没有提示.是用谷歌浏览器.<!doctypehtml><html><head><title>html5capturetest</title></head><body><videoautoplay></video><imgsrc=""><canvasstyle="disp

调用摄像头拍照

问题描述 请问WPF程序如何调用摄像头拍照??? 解决方案 解决方案二:Help!!!!!thanks解决方案三:哦哦,没弄过,help2222解决方案四:帮你顶一下,之前看了点点WPF,录像监控..解决方案五:该回复于2011-12-13 11:48:48被版主删除解决方案六:你是要拍照还是视频?视频是可以使用encoder的api开发,拍照的话没有用过!

android-Android平板通过OTG调用外接的摄像头

问题描述 Android平板通过OTG调用外接的摄像头 如题,需求是点击手机自带的相机调用,怎么实现这个功能呢?特别是代码部分,该如何下手?求教下,谢谢各位了. 解决方案 http://www.guokr.com/post/357593/

vb.net-VB.NET调用摄像头拍照只能拍一次,再拍就会出现捕获源,选择视频设备,点确定后没有用

问题描述 VB.NET调用摄像头拍照只能拍一次,再拍就会出现捕获源,选择视频设备,点确定后没有用 VB.NET调用摄像头拍照只能拍一次,再拍就会出现捕获源,选择视频设备,点确定后没有用,依然是黑屏,但是将笔记本重启后再打开就可以拍一次,然后又不行,还要重启后才能拍. 这个代码只能在2008里打开,如果谁能给编一个2010的调用摄像头拍照的更好,不要糊弄,csdn里的我们都下载尝试了,没一个好的,谢谢,以下是代码,感觉需要在stop那里做文章,求大神帮忙,重赏. Public Class Form

利用html5调用本地摄像头拍照上传图片

原文:利用html5调用本地摄像头拍照上传图片 xmlns="http://www.w3.org/1999/xhtml">    html5概念啥的就不废话了,不知道的 百度, 谷歌一堆..今天学了学html5中的Canvas结合新增的<video>标签来获取本地摄像头,在html5之前,要在浏览器获取本地摄像头只有通过插件(ActiveX,但是这种只有IE支持)或者是flash来获取(或许你没学过flash那就很坑爹了),在之后微软的silvertlight中也可以

C#调用本机摄像头

原文:C#调用本机摄像头 这段时间一个小项目中需要调用本机的摄像头进行拍照,网上搜集了一些资料以及解决的一些小问题,在此记录以便后续使用. 硬件环境:联想C360一体机,自带摄像头 编写环境:vs2010 语言:C# WPF   下载AForge类库,并添加引用: using AForge; using AForge.Controls; using AForge.Video; using AForge.Video.DirectShow; using Size = System.Drawing.S

activex-JSP页面用js调用ActiveX使用摄像头

问题描述 JSP页面用js调用ActiveX使用摄像头 这是一个VB程序,调用了一个TesoSeeu.ocx打开摄像头拍照的程序http://pan.baidu.com/s/1sjyyo0H 现在我想在JSP页面上使用这个ocx,可以吗? 求各位大神给一个例子 这个ocx好像是拍照后把数据保存在内存,js没法调用了吧? 解决方案 可以,不过需要预先安装这个控件到客户端计算机,并且在浏览器的安全设置中允许.而且不是所有浏览器都支持ocx,只能用IE或者兼容的浏览器. 解决方案二: 控件有暴露接口给

js打开摄像头拍照保存,摄像头镜像。摄像头可以识别二维码功能

问题描述 js打开摄像头拍照保存,摄像头镜像.摄像头可以识别二维码功能 js打开摄像头拍照保存.摄像头镜像.摄像头可以识别二维码功能.求大神回答~ 解决方案 这个需要和安卓或者ios开发人员合作,安卓或者ios给实现二维码扫描功能,和js交互,提供给你js方法.供你调用,你就可以识别二维码了. 解决方案二: 可以先不考虑二维码扫描