안드로이드 개발 질문/답변
(글 수 45,052)
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
기기에 있는 카메라를 인텐트르르 이용해서 찍어 저장 하려고 하는데
보통 카메라 해상도를 높게 설정해 둬서 JPG용량이 너무 크게 저장되네요
소스로 제어해서 카메라모드가 작동될때 해상도 설정을 640 * 480으로 고정 시켜 버리고 싶은데
어떻게 방법 할 방법이 없나요.
case R.id.btn:
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Camera camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
parameters.setPictureSize(640, 480);
camera.setParameters(parameters);
camera.release();
File file = new File(Environment.getExternalStorageDirectory(), "20120302.jpg");
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(cameraIntent, TAKE_PICTURE);
break;
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Camera camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
parameters.setPictureSize(640, 480);
camera.setParameters(parameters);
camera.release();
File file = new File(Environment.getExternalStorageDirectory(), "20120302.jpg");
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(cameraIntent, TAKE_PICTURE);
break;
이런식으로 해봤는데 안되는거 같더라구요 ㅜㅜ
카메라 설정을 제어 못하더라도 JPG용량을 줄여서 SD카드에 저장할 수 있는 방법이라도
서버 전송 하려니까 파일이 너무 크네요
고수님들 젭알 답변 부탁드려요 ㅜㅜ
카메라에서 지원하는 해상도를 리스트로 가져올 수 있습니다. 사진 찍기전에 미리보기와 이미지 사이즈를 적절한 사이즈로 세팅하게 해주면 어떨까요? 저도 똑같은 문제가 있었지만 아래처럼 해서 해결이 되었거든요. 사진 이미지 사이즈 확인해보면 300-400KB정도 나오더군요.
Camera.Parameters parameters = camera.getParameters();
Camera.Size size = getOptimalPreviewSize(parameters.getSupportedPictureSizes(), w, h); //=>여기서 최적화된 해상도를 결정
parameters.setPreviewSize(size.width, size.height);
parameters.setPictureSize(size.width, size.height);
camera.setParameters(parameters);
camera.startPreview();