Windows Mobile 예제 [12] - 간단한 카메라 제어하기 (옴니아 기준)Windows Mobile 예제 [12] - 간단한 카메라 제어하기 (옴니아 기준)
Posted at 2009/06/02 17:20 | Posted in Windows Mobile/Windows Mobile 예제개발환경
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) //카메라모드설정 //사진 촬영 후 디스플레이 |
CameraCaptureMode 에는
일반 사진을 위한 Still,
동영상 촬영을 위한 VideoOnly, VideoWithAudio 로 나누어 집니다.
InitialDirectory을 이용해 폴더를 지정해 주면 해당 폴더로 사진이 저장됩니다.
동영상 촬영의 경우 Mode를 바꾸어 주고 pictureBox에는 오류가 날수 있으므로 표시 하지 않습니다.
|
private void button2_Click(object sender, EventArgs e) ccd.Mode = CameraCaptureMode.VideoWithAudio; if (ccd.ShowDialog() == DialogResult.OK) |
마지막 버튼에는
SelectPictureDialog 을 이용해 촬영한 사진 목록을 썸네일 방식으로 볼 수 있게 구성하겠습니다.
|
private void button3_Click(object sender, EventArgs e) SelectPictureDialog spd = new SelectPictureDialog(); if (spd.ShowDialog() == DialogResult.OK) |
테스트 화면 입니다.
실제 옴니아기기로 테스트 하였습니다.
사진 촬영 버튼을 누루면 옴니아 내에 있는 카메라 어플리케이션이 구동 됩니다.
기존 어플리케이션 보다는 제한적인 메뉴 사용을 하게됩니다.
기본적인 해상도 조절과 밝기 조절, 초점 조절 등을 할 수 있습니다.
촬영 후에는 해당폴더에 저장되며 pictureBox 에 찍은 사진이 표시됩니다.
목록 보기를 누루면 썸네일 형식으로 볼 수 있습니다.
'Windows Mobile > Windows Mobile 예제' 카테고리의 다른 글
| Windows Mobile 예제 [13] - 뉴스나 블로그 사이트 Rss Feed 얻어오기 (13) | 2009/12/15 |
|---|---|
| Windows Mobile 예제 [12] - 간단한 카메라 제어하기 (옴니아 기준) (13) | 2009/06/02 |
| Windows Mobile 예제 [11] - 배경화면 만들기 & 글씨 그리기 (6) | 2009/05/26 |
| Windows Mobile 예제 [10] - 간단한 로딩 화면 구현해 보기 (3) | 2009/05/25 |
| Windows Mobile 예제 [9] - DataGrid에 MS SQL 2005 데이터베이스 자료 쓰기 (7) | 2009/05/18 |
| Windows Mobile 예제 [8] - WebRequest 를 이용한 파일 다운로드 (2) | 2009/05/12 |







항상 좋은 글을 올려주셔서 감사합니다^^
질문이 있어서 이렇게 댓글을 달게 되었습니다
위의 본문에
"전체적인 디자인은 아래와 같습니다.
480 x 800 의 해상도를 가진 옴니아에서 사용되므로 폼의 크기는 240 x 350 으로 하고"
부분에서 480 x 800 의 해상도 > 240 x 350 의 폼의 크기로 된 부분이 있는데
어떤 방식으로 저렇게 화면이 나오는지 알고 싶습니다 제가 아직 초보라 모르는것이 너무 많네요 ^^
WM을 이용해 어플 제작시 해상도를
기기에 딱 맞게 480 x 800 이런식으로 해도 상관은 없겠지만
폼의 속성중 AutoScaleMode 를 DPI로 설정하면
자동으로 기기의 해상도에 맞게 어플의 해상도가 변경됩니다.
옴니아를 기준으로 한다면 240 x 350 이 자동으로 확대되
실제 기기에서 위아래 기본 메뉴를 제외 하고 거의 딱 맞게 됩니다.
이부분에 관한 내용은 이전에 올렸던
http://mobilepot.net/4
에서 확인하실수 있습니다.
위의 강좌를 따라하다가 질문이 생겨서 이렇게 질문을 드립니다.
SelectPictureDialog class를 생성하면
비록 폴더에 동영상 파일과 그림 파일이 둘 다 있다고 할지라도
동영상 파일은 보이지 않는 것 같은데...
동영상 파일도 같이 보이게 하는 방법이 없을까요? 궁금해서 여쭈어 봅니다.
이미지 전용 파일을 미리보기 형식으로 보는것이라서
동영상은 표시가 되질 않습니다.
단순히 파일을 표시 하는것이면
파일다이얼로그 등으로 목록 형태로 표시하는
방법이 있습니다.
동영상 촬영시 ShowDialog()를 실행시키지 않고
바로 촬영되게 할 순 없을까요?
이 소스를 크게 벗어나는 형식은 없는거 같습니다.
C++ 처럼 자유자재로 제어가 아직 힘든데
혹시 나중에라도 찾아 내면 추가 하겠습니다.
버전업 지켜보겠습니다 홧팅이요 ^^
질문이 몇 개 있어서요.
카메라를 사용해서 에뮬레이터상으로 확인할 수 없다고 하셨는데
1.옴니아2도 마찬가지 인가요?
2.에뮬레이터로 확인할 수 있는 폰이 따로 있기도 한건지요?
에뮬레이터 특성상
하드웨어적인 동작들은 확인하기가 힘듭니다.
카메라 뿐만 아니라 각종 센서들을 동작시킬 수 없기 때문이죠.
때문에 이러한 동작들을 테스트 하려면 기기가
꼭 필요한 상황입니다.
옴니아의 전면카메라로 실행하고 싶은데..
언뜻 찾아보니 레지스트리를 조작하라고 하던데..
아니면 다른 방법이 있는지 혹시 문의드립니다.
옴니아 1용 SDK 중에 카메라 API 사용하시면 됩니다.