이것은 onPreviewFrame 메서드의 코드입니다.안드로이드 카메라 해상도를 변경할 수 없습니다
surfaceHolder에 표시되는 프레임이 좋습니다.
나는 이미 첫번째
mCameraParameter = mCamera.getParameters();
mCameraParameter.setPreviewSize(100,150);
mCameraParameter.setPreviewFrameRate(20);
mCameraParameter.setPreviewFormat(PixelFormat.JPEG);
mCamera.setParameters(mCameraParameter);
에서이 코드를 사용하여 해상도를 설정하지만 사진은 이미지 GET는 640 * 내가 미리보기 해상도를 변경할 수없는 이유를 궁금해
480.
public void onPreviewFrame(byte[] data, Camera camera) {
Log.e("PreviewCallBack", "Preview");
Camera.Parameters parameters = camera.getParameters();
Log.e("Picture Size", "width : " + parameters.getPreviewSize().width);
Log.e("Picture Size", "height : " + parameters.getPreviewSize().height);
Log.e("Array Size", "data.length : " + data.length);
YuvImage image = new YuvImage(data, parameters.getPreviewFormat(),
parameters.getPreviewSize().width,parameters.getPreviewSize().height, null);
File file = new File(Environment.getExternalStorageDirectory()
.getPath() + "/"+/*System.currentTimeMillis()*/"out.jpg");
FileOutputStream filecon = null;
try {
filecon = new FileOutputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
image.compressToJpeg(
new Rect(0, 0, image.getWidth(), image.getHeight()), 90,
filecon);
}
};
'setPreviewFormat (PixelFormat.JPEG)'은 쓸모가 없습니다. 나는 이것을 지원하는 안드로이드 장치를 본 적이 없다. 자신의 예제에서'onPreviewFrame()'콜백에서받은 데이터에 대한 YUV 형식을 기대합니다. –