导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

如何在 Windows Phone 8 应用中调整所拍摄照片的分辨率

2014/6/18

适用于:Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

从 Windows Phone OS 7.1 开始,您可以使用 Microsoft.Devices.PhotoCamera 类以编程方式访问手机的相机。本主题介绍如何采用编程方式设置在 Windows Phone 应用中拍摄的照片的分辨率。本主题是如何为 Windows Phone 8 创建基本相机应用的继续,并且假定您已在该主题中创建了基本相机项目。

提示提示:

从 Windows Phone 8 开始,应用可以将 PhotoCaptureDevice 类用于高级捕获方案。PhotoCaptureDevice 允许应用控制照片属性,例如 ISO、曝光补偿和手动对焦位置(在手机上可用时)。本主题没有演示 PhotoCaptureDevice;有关使用此类的更多信息,请参见 Windows Phone 8 的高级照片拍摄

本主题与基本相机示例相对应。

在本节中,向 UI 中添加一个按钮并在代码隐藏文件中添加所需的逻辑,以将所拍摄照片的分辨率设置为在点击“分辨率”按钮时的下一个大小。

设置所拍摄照片分辨率的步骤

  1. 打开在如何为 Windows Phone 8 创建基本相机应用中创建的基本相机项目。

  2. 在主页 XAML 文件 MainPage.xamlStackPanel 元素中添加以下代码,放在名为 ShutterButtonButton 元素下面。

    <Button Content="Res" Name="ResButton" Click="changeRes_Clicked" 
        FontSize="26" FontWeight="ExtraBold" Height="75"/>
    
    
    

    该代码就是用于设置照片分辨率的按钮。

  3. 打开主页的代码隐藏文件 MainPage.xaml.cs,在 MainPage 类构造函数上面添加以下变量声明。

    // Holds the current resolution index.
    int currentResIndex = 0;
    
    
  4. MainPage.xaml.cs 中,向 OnNavigatedTo 方法中添加以下代码,放在 Disable UI 注释下面。

    ResButton.IsEnabled = false;
    

    该代码禁用分辨率按钮。当手机上的相机不可用时使用。

  5. MainPage.xaml.cs 中,向 MainPage 类添加以下代码。

        private void changeRes_Clicked(object sender, System.Windows.RoutedEventArgs e)
        {
            // Variables
            IEnumerable<Size> resList = cam.AvailableResolutions;
            int resCount = resList.Count<Size>();
            Size res;
    
            // Poll for available camera resolutions.
            for (int i = 0; i < resCount; i++)
            {
                res = resList.ElementAt<Size>(i);
            }
    
            // Set the camera resolution.
            res = resList.ElementAt<Size>((currentResIndex + 1) % resCount);
            cam.Resolution = res;
            currentResIndex = (currentResIndex + 1) % resCount;
    
            // Update the UI.
            txtDebug.Text = String.Format("Setting capture resolution: {0}x{1}", res.Width, res.Height);
            ResButton.Content = "R" + res.Width;
        }
    
    

    该代码将照片分辨率更改为下一个可用的分辨率。可用的拍摄分辨率由 PhotoCamera 类的 AvailableResolutions 属性提供。这些分辨率是 Size 结构的集合。每一个 Size 都指定 HeightWidth 属性。

  6. 在手机上,通过选择“调试 | 启动调试”菜单命令来运行应用。

Microsoft 正在进行一项网上调查,以了解您对 MSDN 网站的意见。 如果您选择参加,我们将会在您离开 MSDN 网站时向您显示该网上调查。

是否要参加?
显示:
© 2014 Microsoft