2017-02-09 1 views
0

私はAndroidアプリで奇妙な問題に直面しています。 ドキュメントの写真を撮るためのカスタムカメラ画面があります。BitmapFactory decodeByteArray crops画像

写真のように、Galaxy S4(Android 5.0.1)の保存画像はカメラ画面と同じですが、Galaxy S7(Android 6.0.1)では画像が上下から切り取られています。

S4カメラスクリーン

S4 Camera Screen

S4結果画像

S4 Result Image

S7カメラスクリーン

S7 Camera Screen

S7結果画像

S7 Result Image

マイ関連のコードブロックがあります。 "onPictureTaken"

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

    if (data == null) { 
     return; 
    } 

    Bitmap bmp = Tools.getBitmap(data); 

    super.onBackPressed();   
} 

"getBitmap" これはあるかもしれない理由

public class Tools { 
/*.....*/ 
    public static Bitmap getBitmap(byte[] data){ 
/*.....*/ 
     Bitmap unscaledBitmap = BitmapFactory.decodeByteArray(data, 0, data.length); 

     return unscaledBitmap; 
    } 
} 

は誰が説明できますか?事前

+1

私はカメラのプレビュー解像度は、その出力が異なるため、この問題が発生したと考えています解決。 –

答えて

0

おかげで私は、S4の画像が画面と同じであり、底部および左側の灰色の領域があることが私には見えません。

基本的には、画面比とは異なる画像をトリミングすると、画像が画面全体に塗りつぶされません。空白を表示する(その灰色の領域を表示している)か、画像の中央を切り取って画像の辺を切り取ることができます。

1

のNaveenは上記とsetPictureSize(とそれを解決するよう試みの多くの後、私はその程度の出力画像サイズを見つけた)

Camera.Size size=getBestPreviewSize(display.getHeight(), display.getWidth(), parameters); 
parameters.setPreviewSize(size.width, size.height); 
parameters.setPictureSize(size.width, size.height); 
this.camera.setParameters(parameters); 
関連する問題