[JNI/NDK] Android Camera & Canvas Size


광고 한번만 클릭 부탁드립니다^^

포스팅을 보시는 분들을 위해 노력 하는 블로거를 위하여! 부탁드립니다. 재미 삼아 포스팅을 정리하지만, 광고를 달아보았습니다. 얼마나 열심히 할 수 있을지...의문이지만요^^ 

Subject Android Camera & Canvas Size

최종수정일 : 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

댓글

Designed by JB FACTORY