另类解决android中用三星手机拍的照片存储后旋转问题。

这几天在做安卓图片的处理,偶然发现在测试三星手机的时候存在一个小bug。就是调用手机拍摄图片后,照片保存时自动旋转了90度。 测试其他机型并不存在这样的问题,只有三星机子有这样的bug。

网上有很多类似的解决方案,大多都是先获取照片原来的角度,然后在进行旋转恢复正确的角度。

我发现了一个另类的解决方法,其实很简单:只要把拍摄的照片改成jpg格式就自动解决了。之前一直困扰在这个问题上,因为项目中把照片制定成了png的格式,造成了存储的误差。 


具体存储代码如下:

    private void startCamera() {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, this.getCameraTempFile());
        intent.putExtra("return-data", false);
        startActivityForResult(intent, Constants.REQUEST_GETIMAGE_BYCAMERA);
    }

    // 拍照保存的绝对路
    private Uri getCameraTempFile() {
        String timeStamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
        // 照片命名
        String cropFileName = "osc_camera_" + timeStamp + ".jpg";         //这里设置后缀名
        // 裁剪头像的绝对路
        portraitFilePath = PHOTO_PATH + "/" + cropFileName;
        portraitFile = new File(portraitFilePath);
        fileUri = Uri.fromFile(portraitFile);
        return this.fileUri;
    }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值