首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BitmapFactory decodeByteArray作物图像

BitmapFactory decodeByteArray作物图像
EN

Stack Overflow用户
提问于 2017-02-09 19:51:19
回答 2查看 298关注 0票数 0

我在我的android应用上遇到了一个奇怪的问题。我有一个自定义的相机屏幕来为文档拍照。

正如你在图片中看到的,Galaxy S4 (Android5.0.1)保存的图像与相机屏幕相同,但在Galaxy S7 (Android6.0.1)中,图像是从顶部和底部裁剪的。

S4摄像头屏幕

S4结果图像

S7摄像头屏幕

S7结果图像

我的相关代码块是;"onPictureTaken“

代码语言:javascript
复制
 @Override
public void onPictureTaken(byte[] data, Camera camera) {

    if (data == null) {
        return;
    }

    Bitmap bmp = Tools.getBitmap(data);

    super.onBackPressed();        
}

"getBitmap“

代码语言:javascript
复制
public class Tools {
/*.....*/
    public static Bitmap getBitmap(byte[] data){
/*.....*/
        Bitmap unscaledBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);

        return unscaledBitmap;
    }
}

有人能解释一下为什么会这样吗?

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2017-03-17 21:47:29

经过多次尝试,我找到了上面提到的关于输出图片大小的问题,并用setPictureSize()解决了这个问题。

代码语言:javascript
复制
 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);
票数 1
EN

Stack Overflow用户

发布于 2017-02-09 19:55:55

我不认为S4图像和屏幕是一样的,在底部和左边有灰色区域。

基本上,如果你裁剪图像不同于你的屏幕比例,图像不会充满整个屏幕。然后,您可以显示空白区域(您正在显示的灰色区域),也可以对其进行中心裁剪,这将剪切图像的侧面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42135989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档