Android圖片旋轉操作

jopen 10年前發布 | 27K 次閱讀 Android Android開發 移動開發

拍照后的照片有時被系統旋轉,糾正步驟如下:

1.先讀取圖片文件被旋轉的角度:

    /** 
         * 通過ExifInterface類讀取圖片文件的被旋轉角度 
         * @param path : 圖片文件的路徑 
         * @return 圖片文件的被旋轉角度 
         */  
        public static int readPicDegree(String path) {  
            int degree = 0;  

            // 讀取圖片文件信息的類ExifInterface  
            ExifInterface exif = null;  
            try {  
                exif = new ExifInterface(path);  
            } catch (IOException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  

            if (exif != null) {  
                int orientation = exif.getAttributeInt(  
                        ExifInterface.TAG_ORIENTATION,  
                        ExifInterface.ORIENTATION_NORMAL);  
                switch (orientation) {  
                case ExifInterface.ORIENTATION_ROTATE_90:  
                    degree = 90;  
                    break;  

                case ExifInterface.ORIENTATION_ROTATE_180:  
                    degree = 180;  
                    break;  

                case ExifInterface.ORIENTATION_ROTATE_270:  
                    degree = 270;  
                    break;  
                }  
            }  

            return degree;  
        }  

2.再將上述角度作為參數,傳遞給下面函數糾正:
/** 
 * 將圖片糾正到正確方向 
 *  
 * @param degree : 圖片被系統旋轉的角度 
 * @param bitmap : 需糾正方向的圖片 
 * @return 糾向后的圖片 
 */  
public static Bitmap rotateBitmap(int degree, Bitmap bitmap) {  
    Matrix matrix = new Matrix();  
    matrix.postRotate(degree);  

    Bitmap bm = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),  
            bitmap.getHeight(), matrix, true);  
    return bm;  
}  
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!