2012-09-26 10 views
5

私は私のカスタムカメラAndroidのカスタムカメラの品質

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); 
    } 
}); 

フラッシュは私がうまく点灯しているによ火(私はオートストロボを使用しています)と部屋をしない場合には特に悪いです..

答えて

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

関連する問題