[JNI/NDK] Android Camera & Canvas Size
- Mobile/android
- 2011. 6. 6.
광고 한번만 클릭 부탁드립니다^^
포스팅을 보시는 분들을 위해 노력 하는 블로거를 위하여! 부탁드립니다. 재미 삼아 포스팅을 정리하지만, 광고를 달아보았습니다. 얼마나 열심히 할 수 있을지...의문이지만요^^
Subject : Android Camera & Canvas Size
최종수정일 : 2011.06.06
최종수정일 : 2011.06.06
앞에 정리하였던 Android Camera 를 사용함에 있어서, Impage Processing 을 한 결과를 가지고 있다가
OnDraw() 함수에서 호출하여 결과를 출력하면 Canvas 에 출력이 되는 것을 알수가 있습니다.
여기서, 간혹 문제가 발생을 하게 됩니다.
발생하는 문제
- surfaceChanged() 함수에서 설정한 Camera 의 사이즈와 Draw 를 하기위해서 사용하는 Canvas 의 Size가 틀리다.
SurfaceChanged() 함수에서, 즉 Android 의 Camera 가 지원되는 해상도는 다음과 같다.
(스마트폰의 기기에 따라서 틀려지니, 주의하자)
해결방법!
[소스코드]
canvas.scale( x, y );
[end]
를 사용하도록 한다.
위에 보이는 scale() 함수를 사용하면 된다. 예를 들테니, 적당히 알아서 짱구돌리도록하자.
위에 숨겨진 공간을 살펴보면, 대략적으로 눈치가 챗으리라고 생각한다.
현재 Caemra 는 800*600 이미지를 출력한다.
그리고 Canvas 에서는 1024*600 의 크기이다.
즉 비율이 맞지 않다. 어떻게 해야할까? 고민하고, 검색도 해보았지만,
당연히 Canvas 의 size 를 늘리는 방법도 한가지 방법이라 생각된다.
산수 계산을 해볼까요?
800x:600y = 1024:600 의 비율이 있을 때
X = 의 값은 얼마?
Y = 의 값은 당연 1
그러므로 canvas.scale( x(?), 1 ); 으로 canvas size 를 조절해 주기만 하면된다.
by 퓨림노
'Mobile > android' 카테고리의 다른 글
[secret] My GoogleMap API Key (0) | 2011.06.06 |
---|---|
Android Google Map API Key 등록하기 (0) | 2011.06.06 |
[JNI/NDK] Android Camera ( YUV420 to RGB, RGBA) (5) | 2011.06.06 |
[Android] Android JavaCV - Setting & Quick Guide (3) | 2011.05.13 |
Android JavaCV (1) | 2011.05.12 |