BitmapFactory decodeByteArray crop图像

时间:2017-02-09 11:51:19

标签: android bitmap android-camera crop

我在Android应用程序上面临一个奇怪的问题。 我有一个自定义相机屏幕来拍摄文件。

正如您在图片中看到的,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;
    }
}

任何人都可以解释为什么会这样吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

经过多次尝试后,我发现它的输出图像大小与上面提到的Naveen一样,并用setPictureSize()

解决了它
SELECT   * 
FROM     `GSheets` 
WHERE    `sheetcat` = 'Unsubscribed' 
AND      `sheetcat` IS NOT NULL 
AND      `user` LIKE '%,r00t,%' 
OR       `user` LIKE 'r00t,%' 
OR       '%,r00t' 
OR       `user` = 'r00t'

答案 1 :(得分:0)

我不认为S4图像与屏幕相同,底部和左侧都有灰色区域。

基本上,如果您裁剪的图像与屏幕比例不同,则图像不会填满整个屏幕。然后,您可以显示空白区域(您正在显示的灰色区域)或中心裁剪它将切割图像的边缘。