1. 程式人生 > >關於前置攝像頭拍照後照片方向的總結(續前篇)

關於前置攝像頭拍照後照片方向的總結(續前篇)

經過試驗,發現前置攝像頭拍照後的照片依然方向奇葩。因此我做了如下判斷和調整

 try {
            ExifInterface exifInterface = new ExifInterface(getPhotoPath());
            int result = exifInterface.getAttributeInt(
                    ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);
            Log.d(TAG,"exif方向  "+result);
            int degree = 0;
            if(getPhotoSource()){
                //如果是前置攝像頭照的照片
                switch(result) {
                    case ExifInterface.ORIENTATION_ROTATE_90: //正常豎屏拍照時
                        degree = 270;
                        break;
                    case ExifInterface.ORIENTATION_NORMAL://逆時針旋轉90度時
                        degree = 180;
                        break;
                    case ExifInterface.ORIENTATION_ROTATE_270: //逆時針旋轉180度
                        degree = 90;
                        break;
                    default:
                        break;
                }
            }else{//如果是後置攝像頭照的照片
                switch(result) {
                    case ExifInterface.ORIENTATION_ROTATE_90: //正常豎屏拍照時
                        degree = 90;
                        break;
                    case ExifInterface.ORIENTATION_ROTATE_180://逆時針旋轉270度時
                        degree = 180;
                        break;
                    case ExifInterface.ORIENTATION_ROTATE_270: //逆時針旋轉180度
                        degree = 270;
                        break;
                    default:
                        break;
                }
            }
            //旋轉圖片使其校正
            mCurrentBitmap=bitmapManager.rotate(mCurrentBitmap, degree,getPhotoPath(), displayMetrics.widthPixels, displayMetrics.heightPixels);