程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> camera-截取的圖片上傳到服務器上的時候會旋轉90度

camera-截取的圖片上傳到服務器上的時候會旋轉90度

編輯:編程綜合問答
截取的圖片上傳到服務器上的時候會旋轉90度

我做了一個安卓應用程序。在我的應用中,我要截取一個圖片並把它發送到服務器上。在某種設備裡,截取的圖片上傳到服務器上的時候會旋轉90度。代碼如下:

Uri selectedImage = data.getData();

File imageFile = new File(selectedImage.toString());
ExifInterface exif;
try {
exif = new ExifInterface(imageFile.getAbsolutePath());

int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);

switch(orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:

rotate=90;

    break;
    case ExifInterface.ORIENTATION_ROTATE_180:

    rotate=180;
 break;
            }

但是很不幸,在每個設備裡我得到的orientation的值都是0,甚至圖片旋轉90度的那個設備上也是一樣的結果。

最佳回答:


我用這個方法解決了問題:

   private int getImageOrientation(){
        final String[] imageColumns = { MediaStore.Images.Media._ID, MediaStore.Images.ImageColumns.ORIENTATION };
        final String imageOrderBy = MediaStore.Images.Media._ID+" DESC";
        Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                imageColumns, null, null, imageOrderBy);

        if(cursor.moveToFirst()){
            int orientation = cursor.getInt(cursor.getColumnIndex(MediaStore.Images.ImageColumns.ORIENTATION));
            rotate=orientation;
            System.out.println("orientation==="+orientation);
            cursor.close();
            return orientation;
        } else {
            return 0;
        }
    }
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved