本小节介绍UWP中摄像头的使用,使用CameraCaptureUI来拍照,不仅能够获得图像,还能够对图像进行剪裁 (目前Mobile设备还上不支持)。 在本例中, 单击Camera按钮调用摄像头来拍摄图像, 并使用CameraCaptureUI.PhotoSettings.CroppedSizeInPixels对图像进行剪裁。

MainPage.xaml页面,定位到abtnOpenCamera控件,定义单击事件为Camera_Click

<AppBarButton x:Name="abtnOpenCamera" Icon="Camera" Label="Camera" Click="Camera_Click"/>

然后,用鼠标在Camera_Click中任何位置单击,在键盘上按下F12键,进入Code Behind代码。

使用关键字async将Camera_Click修改为异步方法。

private async void Camera_Click(object sender, RoutedEventArgs e)
{
}

定义CameraCaptureUI对象,设置图像格式为CameraCaptureUIPhotoFormat.Jpeg,设置剪裁大小为400X400,代码如下:

var cameraCaptureUI = new CameraCaptureUI();
cameraCaptureUI.PhotoSettings.Format = CameraCaptureUIPhotoFormat.Jpeg;
cameraCaptureUI.PhotoSettings.AllowCropping = true;
cameraCaptureUI.PhotoSettings.CroppedSizeInPixels = new Size(400, 400); StorageFile photo = await cameraCaptureUI.CaptureFileAsync(CameraCaptureUIMode.Photo);

然后,通过文件流方式将StorageFile传给BitmapImage,再将BitmapImage传给ImageBrush,进而设置为gridMsg的背景。

if (photo == null)
return; BitmapImage bitmapImage = new BitmapImage();
using (IRandomAccessStream stream =await photo.OpenAsync(FileAccessMode.Read))
{
bitmapImage.SetSource(stream);
} ImageBrush imageBrush = new ImageBrush();
imageBrush.ImageSource = bitmapImage;
gridMsg.Background = imageBrush;

其中, IRandomAccessStream来自于Windows.Storage.Streams,用于以流的形式访问文件。

M6: 使用摄像头(CameraCaptureUI)的更多相关文章

  1. win8 metro 调用摄像头拍摄照片并将照片保存在对应的位置

    刚刚做过这类开发,所以就先献丑了,当然所贴上的源代码都是经过验证过的,已经执行成功了,希望能够给大家一些借鉴: 以下是metro UI代码: <Page x:Class="Camera ...

  2. win8 metro 自己写摄像头拍照项目

    这个项目不是用的系统自带的CameraCaptureUI.是自己写的摄像头的调用,界面做的不好所以,不放了.可是能够实现拍照功能: 以下是using 程序命名空间: using Windows.Med ...

  3. 摄像头PIN脚功能作用

    摄像头PIN脚功能作用,Camera硬件系统分析 9 f  E+ E2 b  N. j4 M2 U- a. q9 A) T# c& O& C% x+ l5 l! q           ...

  4. win8 metro 自己写摄像头录像项目

    这是要求不适用CameraCaptureUI等使用系统自带的 camera  UI界面.要求我们自己写调用摄像头摄像的方法,如今我把我的程序贴下: UI界面的程序: <Page x:Class= ...

  5. opencv打开摄像头并新建窗口显示

    几个程序使用的基本函数如下: ******************************************************************* cvCreateCameraCap ...

  6. 在DevExpress中使用CameraControl控件进行摄像头图像采集

    在我们以前的项目了,做摄像头的图片采集,我们一般还是需要做一个封装处理的,在较新版本的DevExpress控件里面,增加了一个CameraControl控件,可以直接调用摄像头显示的,因此也可以做头像 ...

  7. ubuntu-Linux系统读取USB摄像头数据(gspca)

    将摄像头图像保存为jpg格式.摄像头需要是gspca免驱的.uvc若用uvc格式的需要在图像中插入Huffman表.否则无法正常显示. 程序代码: #include <stdio.h> # ...

  8. ubuntu-Linux系统读取USB摄像头数据(uvc)

    这几天在做小车的过程中,需要用到图像采集.我想现在用的摄像头是UVC免驱的.根据国嵌的教程中有一个gspca摄像头的程序.我发现把gspca的采集程序用到uvc上时,在显示图像的时候提示没有huffm ...

  9. C# 使用AForge调用笔记本摄像头拍照

    vs2012  winform 连接摄像头设备,这里需要引入 代码: using AForge; using AForge.Controls; using AForge.Imaging; using ...

随机推荐

  1. C#获取文件时间

    在NTFS下,文件的创建及修改时间可以精确到毫秒,以下是测试过程. DirectoryInfo diSource = new DirectoryInfo(@"C:\Users\不告诉你\De ...

  2. R实战之热点图(HeatMap)

    快速实现是搜索帮助文档的首要目的,所以此处涉及实战的文章一概略去传统帮助文档的理论部分,直接上代码加注释! 本文将介绍R语言下利用ggplot2包制作heatmap的代码 -------------- ...

  3. mysql5.6中 order by 多个字段排序问题

    今天用order by排序 后面跟了多个字段,如sql语句: SELECT a.id,a.loginname,a.address,u.id,u.`name`,u.address FROM admin_ ...

  4. Android 坐标系统

    屏幕的左上角是坐标系统原点(0,0),原点向右延伸是X轴正方向,原点向下延伸是Y轴正方向. 一.View的坐标     需要注意view的坐标是相对父容器而言的,包括:getTop().getBott ...

  5. 前端工程师的PS默认工作区

    右侧依次是信息.图层.历史记录,如下图:

  6. linux 双网卡实现

    linux实现双网卡,在虚拟机中创建一个新网卡,NAT方式连接,其中eth0设置为连接外网,目前eth0为自动分配状态,所以将代码注释掉了,eth1设置为连接内网.

  7. HDU-4532 湫秋系列故事——安排座位 组合数学DP

    题意:有来自n个专业的学生,每个专业分别有ai个同学,现在要将这些学生排成一行,使得相邻的两个学生来自不同的专业,问有多少种不同的安排方案. 分析:首先将所有专业的学生视作一样的,最后再乘以各自学生的 ...

  8. 内部类 & 泛型

    内部类 主要作用 1. 内部类, 主要用于事件监听的方法实现.2. 用于多继承 注: 主要还是 1 用的比较多. 参考 : head first java (第12章) 泛型 head first j ...

  9. [Excel] Excel固定任意行或者任意列

    固定第一行第一列:点击B2单元格[以B2为中介点,找你冻结部分的中介点!行列的交叉点!] 例如只想固定第一行,那么请选择A2的单元格 为中介点,A3.A4…… 例如只想固定第一列,那么请选择B1的单元 ...

  10. 【教程】Asset Server(联合开发)

    Unity Asset Server下载 https://unity3d.com/cn/unity/team-license http://tieba.baidu.com/p/2419391804 W ...