마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

SurfaceView 를 사용한 카메라로 사진을 찍으면 해상도가 640*480 으로만 나옵니다

0 추천

http://developer.android.com/guide/topics/media/camera.html 소스를 사용했구요, 사진은 정상적으로 잘 찍힙니다.

근데 

Camera.Parameters parameters = mCamera.getParameters();
List<Camera.Size> previewSizes = parameters.getSupportedPreviewSizes();
for (Camera.Size size : previewSizes)
{
   Log.i("Preview.java | surfaceCreated", "|" + size.width + "x" + size.height);
}
// Camera.Size size = previewSizes.get(0); // 1280*720
parameters.setPreviewSize(960, 720);
mCamera.setParameters(parameters);

이렇게 PreviewSize 를 줘도 항상 640*480 사이즈로만 찍힙니다.

 

getSupportedPreviewSizes 로 해서 나온 사이즈는

1280x720
960x720
960x540
720x540
800x480
720x480
640x480
480x320
384x288
352x288
320x240
240x160
176x144

입니다.

해상도를 주나 안주나 640*480으로 나오는 이유가 있는건가요?

 

* 블루투스를 이용해서 사진을 찍는거라 intent를 사용한 카메라뷰는 화면을 띄우는 것까지만 되고 촬영버튼은 수동으로 눌러야해서 사용을 못해요.

쎄미 (162,410 포인트) 님이 2014년 1월 21일 질문

1개의 답변

+1 추천

setPreviewSize는 말그대로 프리뷰상에 보여지는 해상도를 결정하고요,

사진으로 저장되는 이미지의 사이즈는 Camera.Parameters.setPictureSize() 로 결정됩니다.

프리뷰와 마찬가지로 지원되는 해상도와 포멧 리스트를 가져오는 함수도 따로 있고요.

b22n (22,940 포인트) 님이 2014년 1월 21일 답변
한 줄만 더 추가했으면 됐었군요 ㅎㅎ
고맙습니다~
...