在Android中正确使用ExifInterface?

时间:2015-07-10 08:59:57

标签: android orientation exif

我在我的Android应用程序中有这个代码,但在某些设备(如LG F60)中,在Retrica这样的应用程序中制作的一些照片没有显示在正确的旋转中。

        exif = new ExifInterface(filePath);

        int exifOrientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
        Matrix matrix = new Matrix ();
        boolean flip = false;
        switch (exifOrientation) {
            case ExifInterface.ORIENTATION_FLIP_HORIZONTAL:
                flip=true;
            case ExifInterface.ORIENTATION_NORMAL:
                matrix.postRotate(0);
                break;
            case ExifInterface.ORIENTATION_TRANSVERSE:
                flip=true;
            case ExifInterface.ORIENTATION_ROTATE_90:
                matrix.postRotate(90);
                break;
            case ExifInterface.ORIENTATION_FLIP_VERTICAL:
                flip=true;
            case ExifInterface.ORIENTATION_ROTATE_180:
                matrix.postRotate(180);
                break;
            case ExifInterface.ORIENTATION_TRANSPOSE:
                flip=true;;
            case ExifInterface.ORIENTATION_ROTATE_270:
                matrix.postRotate(270);
                break;
        }

        if (flip){
            matrix.postScale(-1.0f, 1.0f);
        }

        scaledBitmap = Bitmap.createBitmap(scaledBitmap, 0, 0,scaledBitmap.getWidth(), scaledBitmap.getHeight(), matrix, true);

有谁知道这是什么问题?

0 个答案:

没有答案