美文网首页
Android 关于相机拍照生成bitmap方向不对,适配And

Android 关于相机拍照生成bitmap方向不对,适配And

作者: wenju | 来源:发表于2021-04-26 15:51 被阅读0次
     //获取旋转角度
    public int getRotationAmount(Uri imageUri) {
        try {
            String rotationAmount = null;
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
                rotationAmount = new ExifInterface(getContentResolver().openInputStream(imageUri)).getAttribute(ExifInterface.TAG_ORIENTATION);
            }else{
                ExifInterface exifInterface = new ExifInterface(getPath(this,imageUri));
                rotationAmount = String.valueOf(exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL));
            }
            if (TextUtils.isEmpty(rotationAmount)) {
                return 0;
            }
            switch (Integer.parseInt(rotationAmount)) {
                case 3:
                    return 180;
                case 6:
                    return 90;
                case 8:
                    return 270;
                default:
                    return 0;
            }
        } catch (Exception e) {
            return 0;
        }
    }

    //获取path
    private String getPath(Context context, Uri uri) {
        String path = null;
        Cursor cursor = context.getContentResolver().query(uri, null, null, null, null);
        if (cursor == null) {
            return null;
        }
        if (cursor.moveToFirst()) {
            try {
                path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        cursor.close();
        return path;
    }


    // 旋转照片
    public static Bitmap rotateBitmap(Bitmap bitmap, int degress) {
        if (bitmap != null) {
            Matrix m = new Matrix();
            m.postRotate(degress);
            bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), m, true);
            return bitmap;
        }
        return bitmap;
    }

相关文章

网友评论

      本文标题:Android 关于相机拍照生成bitmap方向不对,适配And

      本文链接:https://www.haomeiwen.com/subject/eejerltx.html