본문 바로가기
Education/Bit 18th

[Windows Mobile] 간단한 카메라 제어하기 (옴니아 기준)

by ★용호★ 2009. 12. 6.

개발환경
Visual Studio 2008
C#

이번 시간에는 기본적인 카메라 실행과 썸네일을 이용해 이미지를 보는 법을 알아보겠습니다.

참고로 본 예제는 카메라를 사용하므로 에뮬레이터에서는 확인이 불가능 합니다.
삼성의 옴니아 폰을 (SCH-M490) 이용해서 테스트해 보겠습니다.



전체적인 디자인은 아래와 같습니다.
480 x 800 의 해상도를 가진 옴니아에서 사용되므로 폼의 크기는 240 x 350 으로 하고
중앙에는 pictureBox 컨트롤을 배치 합니다.
버튼 3개를 이용해 각 동작을 사용해 볼 것입니다.





우선 [참조] ->[참조추가] 를 이용해

using Microsoft.WindowsMobile
using Microsoft.WindowsMobile.Forms
using Microsoft.WindowsMobile.Status  을 추가해 줍니다.



using 선언문에 아래를 추가 합니다.

using Microsoft.WindowsMobile.Forms;
using Microsoft.WindowsMobile.Status;


button1 은 기본적인 사진촬영 동작을 합니다.
CameraCaptureDialog를 이용해서 삼성에서 제공하는 카메라 어플리케이션을 연결해 카메라를 작동시킵니다.
때문에 다른 기기로 테스트 한다면 제조사에 따라 화면 구성이나 동작방식들이 달라질 수 있습니다.

   private void button1_Click(object sender, EventArgs e)
        {
            CameraCaptureDialog ccd = new CameraCaptureDialog();

            //카메라모드설정
            ccd.Mode = CameraCaptureMode.Still;
           
            //사진 퀄러티 설정
            ccd.StillQuality = CameraCaptureStillQuality.High;       
           
           //저장 디렉토리
            ccd.InitialDirectory = @"\Temp";

            //사진 촬영 후 디스플레이
            if (ccd.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image = new Bitmap(ccd.FileName);
            }
        }


CameraCaptureMode 에는
일반 사진을 위한 Still,
동영상 촬영을 위한 VideoOnly, VideoWithAudio 로 나누어 집니다.

InitialDirectory을 이용해 폴더를 지정해 주면 해당 폴더로 사진이 저장됩니다.


동영상 촬영의 경우 Mode를 바꾸어 주고  pictureBox에는 오류가 날수 있으므로 표시 하지 않습니다. 

       private void button2_Click(object sender, EventArgs e)
        {
            CameraCaptureDialog ccd = new CameraCaptureDialog();

            ccd.Mode = CameraCaptureMode.VideoWithAudio;
            ccd.StillQuality = CameraCaptureStillQuality.High;

            ccd.InitialDirectory = @"\Temp";

            if (ccd.ShowDialog() == DialogResult.OK)
            {
               
            }
        }




마지막 버튼에는

SelectPictureDialog 을 이용해 촬영한 사진 목록을 썸네일 방식으로 볼 수 있게 구성하겠습니다.

   private void button3_Click(object sender, EventArgs e)
        {
            int signal = SystemState.PhoneSignalStrength;

            SelectPictureDialog spd = new SelectPictureDialog();
            spd.Owner = this;
            //탐색기 창 제목
            spd.Title = "사진 선택";
            
            spd.CameraAccess = false;
            
           //저장 폴더 지정
            spd.InitialDirectory = @"\Temp";
           
           //초기 디렉터리 외는 표시안함
            spd.LockDirectory = true;

           if (spd.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image = new Bitmap(spd.FileName);         
            }
        }



테스트 화면 입니다.
실제 옴니아기기로 테스트 하였습니다.





사진 촬영 버튼을 누루면 옴니아 내에 있는 카메라 어플리케이션이 구동 됩니다.




기존 어플리케이션 보다는 제한적인 메뉴 사용을 하게됩니다.
기본적인 해상도 조절과 밝기 조절, 초점 조절 등을 할 수 있습니다.
촬영 후에는  해당폴더에 저장되며 pictureBox 에 찍은 사진이 표시됩니다.







목록 보기를 누루면 썸네일 형식으로 볼 수 있습니다.



댓글