uwp之拍照(使用后置摄像头)

参考:wp8.1之拍照(获取焦点,使用后置摄像头)

uwp开启摄像头要借助CaptureElement呈现来自捕获设备(如照相机或网络摄像机)的流。今天讲讲如何打开摄像头,获取焦点,以及拍照。废话不多说,下面直接上代码。当然前提是一定要记住在appxmanifest文件Capabilities选项选择Webcam,不然会报错

首先 XAML代码:

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Grid>
            <CaptureElement x:Name="capturePreview" Stretch="UniformToFill" />
            <Image Name="ProfilePic" />
        </Grid>
        <StackPanel VerticalAlignment="Bottom">
            <Slider
                x:Name="FocusValueSlider"
                Margin="12,0,15,0"
                Header="焦点调节:"
                LargeChange="25"
                Maximum="1000"
                Minimum="0"
                SmallChange="1"
                ValueChanged="FocusValueSlider_ValueChanged"
                Value="500" />
            <StackPanel Orientation="Horizontal">
                <Button Click="PhotographButton_Click" Content="启动摄像头" />
                <Button
                    Margin="50,0,0,0"
                    Click="CapturePhoto_Click"
                    Content="拍照" />
            </StackPanel>
        </StackPanel>
    </Grid>
    //启动摄像头
        async private void PhotographButton_Click(object sender, RoutedEventArgs e)
        {
            if (captureManager == null)
            {
                capturePreview.Visibility = Visibility.Visible;
                ProfilePic.Visibility = Visibility.Collapsed;
                captureManager = new MediaCapture();

                //选择后置摄像头
                var cameraDevice = await FindCameraDeviceByPanelAsync(Windows.Devices.Enumeration.Panel.Back);
                if (cameraDevice == null)
                {
                    System.Diagnostics.Debug.WriteLine("No camera device found!");
                    return;
                }
                var settings = new MediaCaptureInitializationSettings
                {
                    StreamingCaptureMode = StreamingCaptureMode.Video,
                    //MediaCategory = MediaCategory.Other,
                    //AudioProcessing = AudioProcessing.Default,
                    //PhotoCaptureSource = PhotoCaptureSource.Photo,
                    AudioDeviceId = string.Empty,
                    VideoDeviceId = cameraDevice.Id
                };
                await captureManager.InitializeAsync(settings);
                //摄像头旋转90度
                //captureManager.SetPreviewRotation(VideoRotation.Clockwise90Degrees);
                capturePreview.Source = captureManager;
                await captureManager.StartPreviewAsync();
            }
        }
        private static async Task<DeviceInformation> FindCameraDeviceByPanelAsync(Windows.Devices.Enumeration.Panel desired)
        {

            var allVideoDevices = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);

            DeviceInformation desiredDevice = allVideoDevices.FirstOrDefault(x => x.EnclosureLocation != null && x.EnclosureLocation.Panel == desired);

            return desiredDevice ?? allVideoDevices.FirstOrDefault();
        }
        //拍照
        async private void CapturePhoto_Click(object sender, RoutedEventArgs e)
        {

            if (captureManager != null)
            {
                capturePreview.Visibility = Visibility.Collapsed;
                ProfilePic.Visibility = Visibility.Visible;
                ProfilePic.Source = null;
                //declare string for filename
                string captureFileName = string.Empty;

                //图片格式
                ImageEncodingProperties format = ImageEncodingProperties.CreateJpeg();

                //创建本地存储文件夹
                StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync(
                    "Photo"+DateTime.Now.ToString("yyMMddHHmmss")+".jpg",
                    CreationCollisionOption.ReplaceExisting);

                await captureManager.CapturePhotoToStorageFileAsync(format, file);

                BitmapImage bmpImage = new BitmapImage(new Uri(file.Path));

               ProfilePic.Source = bmpImage;//释放摄像头资源
                capturePreview.Visibility = Visibility.Visible;
                ProfilePic.Visibility = Visibility.Collapsed;
                //captureManager.Dispose();
                //captureManager = null;
            }

        }
        private void FocusValueSlider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
        {
            try
            {

                uint focus = Convert.ToUInt32(e.NewValue);
                SetFocus(focus);
            }
            catch
            {

            }
        }
        //设置摄像头焦点方法
        private async void SetFocus(uint? focusValue = null)
        {

            try
            {

                if (!focusValue.HasValue)
                {
                    focusValue = 500;
                }

                if (captureManager.VideoDeviceController.FocusControl.Supported)
                {

                    captureManager.VideoDeviceController.FlashControl.AssistantLightEnabled = false;

                    captureManager.VideoDeviceController.FocusControl.Configure(new FocusSettings() { Mode = FocusMode.Manual, Value = focusValue, DisableDriverFallback = true });

                    await captureManager.VideoDeviceController.FocusControl.FocusAsync();
                }
            }
            catch { }
        }

 

时间: 2024-12-31 02:42:06

uwp之拍照(使用后置摄像头)的相关文章

三星Note4如何使用后置摄像头自拍?Note4后置摄像头自拍技巧

1.在待机页面下,点击[应用程序].    2.点击[照相机].    3.点击[模式].    4.选择[后置照相机自拍].    5.阅读屏幕提示后,点击[确定].    6.后置摄像头会自动检测并对焦您的面部,当面部全部进入方框后,照相机将发出哔声并在2秒钟后拍照.   

苹果新iPod Nano将配备后置摄像头,并取消背夹设计

来自一个名为Apple.pro的台湾博客.照片显示,iPod Nano将配备一个后置摄像头.该网站还声称,摄像头像素数为130万.如果这张图片属实,那么即将发布的第7代iPod Nano就将与第6代采用相同的手表设计,但却取消了背夹.Apple.pro以往在披露苹果iPod Nano消息时都比较准确.例如,该博客2010年发布的一组照片显示,新一代iPod Nano将配备触控屏,并最终得到了验证.苹果公布的最新财报显示,在截至3月26日的第二财季内,该公司共计售出900万部iPod,同比下滑17

消息称iPad2后置摄像头为100万像素(图)

SDK文档显示iPad 2后置摄像头为100万像素 北京时间1月22日凌晨消息,据美国科技博客9 to 5 Mac报道,据一份最新iOS SDK(开发者工具)文档显示,苹果下一代iPad将采用100万像素的后置摄像头,能够拍摄720P质量的视频. 而前置摄像头分辨率为VGA,与iPhone 4和iPod touch四代相同.iPad 2前置摄像头同样支持FaceTime.照相和摄像功能. 9 to Mac还从iOS SDK中发现了一些iPad 2的图标,从图标上判断,iPad 2的分辨率将比上一

传iPad 2后置摄像头为100万像素

据国外http://www.aliyun.com/zixun/aggregation/31646.html">媒体报道,根据最新的iOS SDK(软件工具开发包)文档显示,iPad 2的后置摄像头为100万像素.这个分辨率与四代iPod Touch 70万像素的后置摄像头分辨率相仿,这意味着iPad 2也可以支持720P视频的拍摄,但二代iPad能否原生播放720P视频仍然是未知数.iPad 2的前置摄像头为VGA分辨率,与iPhone 4和四代iPod Touch相同,拥有摄像.自拍和F

android视频切换到后置摄像头之后本地的图像是正常的但对方显示的接收到的图像是倒立的

问题描述 android视频切换到后置摄像头之后本地的图像是正常的但对方显示的图像是倒立的,是在传输的过程之前就要修改?怎么修改? 解决方案 在cameraHelper中修改下这个方法YUV420spRotate180(yuv_Rotate90,yuv_frame,mwidth,mheight);这是调整视频角度参数的解决方案二:嗯 ,谢谢!之前是没有这个方法的,现在修改下,不过里面的方法看得不太明白,好像用加了这些方法之后没有以前那么的流畅了,有点卡

iPhone 6后置摄像头曝光 集成光学防抖功能

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断淘宝客 站长团购 云主机 技术大厅 iPhone 6主镜头(左),iPhone 5s主镜头(右) 北京时间9月6日早间消息,iPhone改款服务Feld & Volk本周公布了iPhone 6一些元件的照片,包括后置摄像头,以及喇叭和麦克风保护网等. iPhone 6镜头(左)比iPhone 5s镜头(右)薄 根据此次曝光的照片,5.5英寸iPhone 6的后置

苹果疑因iPhone后置摄像头的蓝宝石被起诉

据台湾公司兆晶科技(Tera Xtal)今天提交的一份专利诉讼显示,苹果涉嫌侵犯了该公司的蓝宝石镜头专利.这家蓝宝石水晶生产商声称苹果,Senao International,和 Vibao 销售的产品中使用了他们的 TW M438642 的专利而没有获得他们的授权,目前兆晶希望从上述的这三家公司获得总计 988 万美元的损失赔偿.苹果疑因iPhone后置摄像头的蓝宝石被起诉这个TWM438642专利涉及使用蓝宝石的图像捕捉装置作为镜头保护的材料.苹果在iPhone5开始将保护后置摄像头的材料从

苹果将iPhone 4S/4后置摄像头重新命名为iSight

昨天苹果发布了全新iPad,在介绍摄像头的时候,苹果再次使用iSight这个名称.iSight之前被用来形容Mac电脑上的摄像头,随后苹果使用http://www.aliyun.com/zixun/aggregation/16556.html">FaceTime和FaceTime HD两个名称替换了iSight这个名称.第三代iPad发布之后,苹果重新启用iSight这个名称,iSight这里指的是全新iPad的后置500万像素摄像头,此外iPad前置摄像头仍然被称为FaceTime摄像头

iPhone 6的机身设计过薄,导致后置摄像头是突出手机表面的

9月10日,苹果发布了两款大屏手机.一款智能手表及一个支付系统,错过发布会实况的网友,可以阅读下面的14个重点.新一代iPhone手机1.毫无悬念的大屏手机本次苹果发布的两款手机尺寸均超过以往,分别为4.7英寸的iPhone6和iPhone 6 Plus,除了名字,新款iPhone已被提前"剧透".金属材质机身,采用类似第一代iPhone的弧形边框设计,有金色.银色和黑色三种颜色可选.2.更薄由于机身变大,为了照顾用户的操作体验, iPhone 6电源键从顶部挪到了右侧.但机身厚度并没