Android 调用系统拍照后返回的图片变小了(变模糊了)

解决Android调用系统拍照返回模糊小图的问题,需将拍照图片保存到本地并从指定路径获取。通过设置Intent的EXTRA_OUTPUT参数为保存路径,能确保获取到原图。在onActivityResult中解码本地文件得到清晰的Bitmap。

最近有一个需求需要调用系统的拍照功能

因为照片要做人脸识别处理,所以要求清晰度比较高,

但是发现拍照后返回的图片特别模糊,查看了相关文档,

原来系统拍照默认返回的是缩略图(为了节省内存)


想要返回原图的话,需要进行如下设置:


private String photoPath ;//照片保存路径

默认拍照(返回缩略图)

 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
 startActivityForResult(intent, CAMERA_REQUEST_CODE);

修改后(返回大图)

 Intent intent2 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
 photoPath = Environment.getExternalStorageDirectory() + "/text/text.jpg"; //拍照文件保存路径
 intent2.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(new File(photoPath)));
 startActivityForResult(intent2, CAMERA_REQUEST_CODE);


然后在

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == CAMERA_REQUEST_CODE) {

Bitmap bm = BitmapFactory.decodeFile(photoPath);

//使用过后记得释放掉bitmap,节省内存

bm.recycle();

}

   }


没错,就是先把拍照后的照片保存到本地,在根据uri获取到的就是大图了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值