Windows Phone용 앱에서 캡처한 사진 해상도를 조정하는 방법

2013-12-05

적용 대상: Windows Phone 8 | Windows Phone OS 7.1

 

Windows Phone OS 7.1 로 시작하여 Microsoft.Devices.PhotoCamera 클래스를 사용하여 휴대폰의 카메라에 프로그래밍 방식으로 액세스할 수 있습니다. 이 항목에서는 Windows Phone 앱에서 촬영한 사진의 해상도를 프로그래밍 방식으로 설정하는 방법에 대해 설명합니다. 이 내용은 Windows Phone용 기본 카메라 앱 만드는 방법에서 연결되며 해당 항목에서 기본 카메라 프로젝트를 만들었다는 가정 하에 작성되었습니다.

팁팁:

Windows Phone 8 부터 앱에서는 고급 캡처 시나리오에 대해 Windows.Phone.Media.Capture.PhotoCaptureDevice 클래스를 사용할 수 있습니다. Windows.Phone.Media.Capture.PhotoCaptureDevice를 사용하여 앱에서 ISO, 노출 보정 및 수동 초점 위치(휴대폰에서 사용 가능한 경우) 등의 사진 속성을 제어할 수 있습니다. 이 항목에서는 Windows.Phone.Media.Capture.PhotoCaptureDevice를 보여 주지 않습니다. 이 클래스의 사용에 대한 자세한 내용은 Windows Phone 8의 고급 사진 캡처를 참조하세요.

이 항목은 기본 카메라 예에 해당합니다.

이 섹션에서는 버튼을 UI에 추가하고, 코드 숨김 파일에서 필요한 논리를 추가하여 촬영한 사진의 해상도를 해상도 버튼을 탭하면 다음 크기로 설정합니다.

촬영한 사진의 해상도를 설정하려면

  1. Windows Phone용 기본 카메라 앱 만드는 방법에서 만든 기본 카메라 프로젝트를 엽니다.

  2. 기본 페이지 XAML 파일 MainPage.xaml에 있는 StackPanel 요소에서 ShutterButton이라는 Button 요소 아래에 다음 코드를 추가합니다.

    <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에서, Disable UI 주석 바로 아래의 OnNavigatedTo 메서드에 다음 코드를 추가합니다.

    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 구조체의 컬렉션입니다. 각 SizeHeightWidth 속성을 지정합니다.

  6. 휴대폰에서 디버그 | 디버깅 시작 메뉴 명령을 선택하여 앱을 실행합니다.

표시:
© 2014 Microsoft