방법: Windows Phone의 카메라 캡처 작업 사용

2012-02-09

카메라 캡처 작업을 사용하여 사용자가 응용프로그램에서 기본 제공 카메라 응용프로그램으로 사진을 찍을 수 있게 합니다. 사용자가 작업을 완료하면 이벤트가 발생하며 그 결과로 이벤트 처리기에 사진이 수신됩니다.

선택기를 사용하면 Windows Phone 플랫폼 전체에서 일관된 사용자 환경을 제공하는 데 도움이 됩니다. 자세한 내용은 Windows Phone의 실행기 및 선택기 개요를 참조하십시오.

참고참고:

Windows Phone OS 7.1 부터 응용프로그램에서 바로 단말기 카메라를 사용할 수 있습니다. 자세한 내용은 Windows Phone의 카메라 및 사진 개요를 참조하십시오.

Windows Phone 에뮬레이터에는 카메라가 없지만 에뮬레이터가 기본 이미지를 응용프로그램에 반환하지 않습니다. 실제 단말기에서 카메라 캡처 작업을 테스트하려면 연결 도구를 사용하여 응용프로그램을 시작합니다. 자세한 내용은 방법: Windows Phone의 연결 도구 사용을 참조하십시오.

카메라 캡처 작업을 사용하려면

  1. 다음 문을 코드에 추가합니다.

    using Microsoft.Phone.Tasks;
    
  2. 작업 개체를 선언합니다. 페이지 범위가 있어야 하므로 생성자 앞의 페이지에서 선언합니다.

    CameraCaptureTask cameraCaptureTask;
    
  3. 다음 코드를 페이지 생성자에 추가합니다. 이 코드는 작업 개체를 초기화하고 사용자가 작업을 완료한 후 실행할 메서드를 식별합니다.

    cameraCaptureTask = new CameraCaptureTask();
    cameraCaptureTask.Completed += new EventHandler<PhotoResult>(cameraCaptureTask_Completed);
    
  4. 버튼 클릭 이벤트 등 코드가 필요한 위치마다 다음 코드를 응용프로그램에 추가합니다. 이 절차를 테스트하려면 페이지 생성자에 코드를 넣을 수 있습니다. 다음은 작업을 시작하는 코드입니다.

    try
    {
        cameraCaptureTask.Show();
    }
    catch (System.InvalidOperationException ex)
    {
        MessageBox.Show("An error occurred.");
    }
    
  5. Completed 이벤트 처리기에 대한 코드를 페이지에 추가합니다. 이 코드는 사용자가 작업을 완료한 후 실행됩니다. 그 결과, 이미지 데이터가 포함된 스트림을 노출하는 PhotoResult 개체가 생성됩니다. 사진 이미지 스트림 작업에 대한 자세한 내용은 Windows Phone의 카메라 및 사진을 참조하십시오.

    void cameraCaptureTask_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            MessageBox.Show(e.ChosenPhoto.Length.ToString());
    
            //Code to display the photo on the page in an image control named myImage.
            //System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
            //bmp.SetSource(e.ChosenPhoto);
            //myImage.Source = bmp;
        }
    }
    

표시: