갤3 환경입니다.

 

아시는 분은 아시겠지만 해상도가 720*1280 입니다.

 

근데 결론은 자꾸 이놈이 해상도를 960*720 으로 잡아버려서 골치가 아픕니다.

 

메니페스트에서 오리엔테이션은 당연 포트레이트로 했구요.

 

 

public void surfaceChanged(SurfaceHolder arg0, int format, int w, int h) {
  // Now that the size is known, set up the camera parameters and begin
  // the preview.
  Camera.Parameters parameters = m_Camera.getParameters();
  parameters.setPreviewSize(w, h);
  Log.e(TAG, "해상도 : " + w + ", " + h);
  m_Camera.setParameters(parameters);
  m_Camera.setDisplayOrientation(90);

 

...

 

이렇게 했어요. 뭐 오픈소스에 나와있는 것처럼 최적화 크기 찾을 필요 없이 w h 에 각각 720 1280 잘 넘어오더군요.

그래서 해상도를 설정하고 오리엔테이션도 잘 설정했습니다만!!

 

근데 콜백에서는 왜 자꾸 960*720이 되는거죠??

처음은 그렇다쳐도 서페이스체인지드에서 set을 했는데도 960..720...

 

public void onPreviewFrame(byte[] data, Camera camera) {
  try {
   Camera.Size size = camera.getParameters().getPreviewSize();
   Log.e(TAG, "해상도 : " + size.width + ", " + size.height);
   processImage(data, size.width, size.height);
   camera.addCallbackBuffer(data);
  } catch (RuntimeException e) {
   Log.e(TAG, e.toString());
  }
 }