2012-09-26 3 views
5

내 사용자 정의 카메라안드로이드 카메라 맞춤형 품질

mCamera = getCameraInstance(); 

params = mCamera.getParameters(); 
params.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO); 
params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); 
params.setSceneMode(Camera.Parameters.SCENE_MODE_AUTO); 
params.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO); 
params.setExposureCompensation(0); 
params.setPictureFormat(ImageFormat.JPEG); 
params.setJpegQuality(100); 
params.setRotation(90); 

List<Size> sizes = params.getSupportedPictureSizes(); 
Camera.Size size = sizes.get(0); 
params.setPictureSize(size.width, size.height); 

mCamera.setParameters(params); 

에 대해 다음 매개 변수를 사용하고 그리고 사진을 찍은 후, 이미지의 품질이 매우 나쁘다. 나는 오토 포커스가 있고 플래시가 사용 중이다.

이이 사진을 복용에 대한 내 방법입니다 ..

mCamera.autoFocus(new Camera.AutoFocusCallback() { 
    ShutterCallback shutterCallback = new ShutterCallback() { 

     @Override 
     public void onShutter() { 
      AudioManager mgr = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
      mgr.playSoundEffect(AudioManager.FLAG_PLAY_SOUND); 
     } 
    }; 

    PictureCallback pictureCallback = new PictureCallback() { 

     @Override 
     public void onPictureTaken(byte[] data, 
       Camera camera) { 
      ... 
     } 
    }; 

    public void onAutoFocus(boolean success, Camera camera) { 
     mCamera.takePicture(shutterCallback, 
       null, null, pictureCallback); 
    } 
}); 

플래시가 내가 잘 불에있어 화재 (I 자동 플래시를 사용하고 있습니다) 방을하지 않는 경우에 특히 나쁜 ..

답변

8

getSupportedPictureSizes()을 사용하는 경우 반드시 순서에 관계없이 반환하지는 않습니다. 아마 sizes.get(0)에 끔찍한 크기를 반환 할 것입니다. 최상의 품질을 원하면 가장 큰 크기를 찾기 위해 비교해야합니다. 뭔가 같은 :

List<Size> sizes = params.getSupportedPictureSizes(); 
Camera.Size size = sizes.get(0); 
for(int i=0;i<sizes.size();i++) 
{ 
    if(sizes.get(i).width > size.width) 
     size = sizes.get(i); 
} 
params.setPictureSize(size.width, size.height); 
+0

글쎄, 크기가 지금은 일치하지만, 나는 아직도이 한 번 때문에 최종 이미지가 화면에 이미지를 피팅 부착 할 수있는 뭔가가 않습니다 .. 이미지에 매우 가장자리의 계단 현상을보고 있어요 저장되었습니다. – Rabbott

+0

아마 미리보기 크기와 비슷한 무언가 일 것입니다. 그것을 위해'getSupportedPreviewSizes()'를 망설여보십시오. 미리보기 창의 가로/세로 크기와 가장 일치하는 것을 찾으십시오. – Geobits

관련 문제