Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 完美解決Android三星手機從圖庫選擇照片旋轉問題

完美解決Android三星手機從圖庫選擇照片旋轉問題

編輯:關於Android編程

最近解決了一個令我頭疼好久的問題,就是三星手機拍照圖片旋轉的問題,項目中有上傳圖片的功能,那麼涉及到拍照,從相冊中選擇圖片,別的手機都ok沒有問題,唯獨三星的手機拍照之後,你會很清楚的看到會把照片旋轉一下,然後你根據路徑找到的圖片就是已經被旋轉的了,解決辦法終於被我找到了。我們可以根據圖片的路徑讀取照片exif(Exchangeable Image File 可交換圖像文件)信息中的旋轉角度,至於這個EXIF可以看一下大牛的文章

Android 下的EXIF

根據調試,可以清楚的發現三星手機拍照的圖片的旋轉角度是90度,而別的手機旋轉角度是0度

看一下代碼:

/** 
  * 讀取照片exif信息中的旋轉角度 
  * @param path 照片路徑 
  * @return角度 
  */ 
 public static int readPictureDegree(String path) { 
  int degree = 0; 
  try { 
   ExifInterface exifInterface = new ExifInterface(path); 
   int orientation = exifInterface.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; 
   } 
  } catch (IOException e) { 
   e.printStackTrace(); 
  } 
  return degree; 
 } 

那麼我們只需要根據旋轉角度將圖片旋轉過來就OK了

public static Bitmap toturn(Bitmap img){ 
  Matrix matrix = new Matrix(); 
  matrix.postRotate(+90); /*翻轉90度*/ 
  int width = img.getWidth(); 
  int height =img.getHeight(); 
  img = Bitmap.createBitmap(img, 0, 0, width, height, matrix, true); 
  return img; 
 } 

輕松解決了,是不是很完美?
以上就是本文的全部內容,希望大家喜歡。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved