zoukankan      html  css  js  c++  java
  • Windows 8 开发之摄像头应用

    1.更新项目中package.appmanifest 文件,本文让webcam和microphone可用。只需要在功能选项卡中勾选对应的框即可。如下图所示:

       如果不按照上面的设置,那么这些功能是不可以使用的,所以,确保首先设置好了。

       在Windows  8中,非常好的是摄像头的所有事情都由你来决定。也就是说,有些事情,你不得不考虑好了。首先,当你试图访问摄像头时,程序将会提示用户将使用摄像头和麦克风,由用户决定是否授权。

    2.代码实现

      1).照片的获取和保存

            private async void Camera_Click(object sender, RoutedEventArgs e)
            {
                CameraCaptureUI camera = new CameraCaptureUI();
                camera.PhotoSettings.CroppedAspectRatio = new Size(16, 9);//获得图片的宽高比例
                StorageFile file = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo);
                if (file != null)
                {
                    StorageFolder folder = KnownFolders.PicturesLibrary;    //将图片保存到图片库中
                    await file.CopyAsync(folder,file.Name,NameCollisionOption.ReplaceExisting);
                }
    
            }

      这里有几个选项可以设置(比如分辨率和计时器),然后通过tap 或者单击屏幕,就可以触发照相。如果我们设置了一个CroppedAspectRatio,那么将会看到画面中将会出现四个白点,画面中有4个白色的圆圈,表示裁减的区域。用户可以改变这个box的size,不过指定一个CroppedAspectRatio,我们可以强制用户选这个具有一定比例的图片。在示例中,我使用16:9,如果1:1这是一个正方形图片。没有这个选项的话,用户就不必裁减图片,不过在bottom中的菜单选项中,有一个任意裁剪的选项:

    如果用户选择Crop,那么用户就可以裁减图片的任意内容:

    最后,当用户点击OK按钮,将会返回一个图片到我们程序中,这个图片我们可以随意使用。

      2).获得视频和保存视频

            private async void Video_Click(object sender, RoutedEventArgs e)
            {
                CameraCaptureUI video = new CameraCaptureUI();
                video.VideoSettings.Format = CameraCaptureUIVideoFormat.Mp4;
                video.VideoSettings.AllowTrimming = true;
                video.VideoSettings.MaxResolution = CameraCaptureUIMaxVideoResolution.HighestAvailable;
                video.VideoSettings.MaxDurationInSeconds = 600;
                StorageFile file = await video.CaptureFileAsync(CameraCaptureUIMode.Video);
                if (file != null)
                {
                    StorageFolder folder = KnownFolders.VideosLibrary;
                    await file.CopyAsync(folder,file.Name,NameCollisionOption.ReplaceExisting);
                }
            }

      首先可以指定视频的格式:MP4或WMV。一般你是看不出这些格式的区别的。MP4要比WMV使用更流行,但是MP4文件会很大,所以值得考虑一下。

      其次,我将AllowTrimming设置为true,这样用户可以选择根据喜好,选择录制视频的片段。如下是相关截图,用户可以拖动白色的裁减圈来裁减视频:

      第三,我指定了一个MaxDurationInSeconds,这个值显示用户录制视频的最长时间。如果用户录制的视频比这个时间长,那么用户只能选择30秒(或者是你指
    定的一个长度)的视频。
      最后,我还指定了一个MaxResolution,这是管理用户可以录制的分辨率,这也决定了最终文件的大小,有下面四个可选项:

      以上就完成了windows8中摄像头的应用。

      简单的来说,从用户摄像头获取相片和视频的很容易的,并且可以定制。大多数复杂的UI都是有Windows 8直接处理了,所以,我们不用担心与用户的交互
    问题 。

  • 相关阅读:
    Java JMX 监管
    Spring Boot REST(一)核心接口
    JSR 规范目录
    【平衡树】宠物收养所 HNOI 2004
    【树型DP】叶子的颜色 OUROJ 1698
    【匈牙利匹配】无题II HDU2236
    【贪心】Communication System POJ 1018
    【贪心】Moving Tables POJ 1083
    Calling Extraterrestrial Intelligence Again POJ 1411
    【贪心】Allowance POJ 3040
  • 原文地址:https://www.cnblogs.com/akwwl/p/2852242.html
Copyright © 2011-2022 走看看