2017-06-03 34 views
0

我試圖從EXTERNAL_CONTENT_URI意圖中選擇的圖像中收集EXIF信息(拍攝圖片的日期,地理標記,方向),但似乎如果圖片來自互聯網(例如Google Photos)EXIF數據被截斷。使用EXTERNAL_CONTENT_URI從圖庫中選擇的圖像中缺失EXIF信息

例如,如果我在PC上從photos.google.com的Web瀏覽器下載圖片,其大小爲4.377.104字節,並且所有EXIF數據都在那裏。 而如果我使用命令下載完全相同的圖像:

Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

其大小爲4.363.578字節(比原來少了13526個字節),所有的EXIF數據丟失

如何任何想法下載完整的原始圖像?

PS:如果我選擇從從手機拍攝的畫廊的圖片,它仍然駐留在手機的存儲,EXIF數據存在

回答

1

我終於找到了一個解決方案。的imageinfo - 獲取源圖像的​​Uri使用

Uri selectedImage = data.getData(); 

我用下面的函數從圖片

public static ImageInfo getImageInfo(Context context, Uri photoUri) { 

     Cursor cursor = context.getContentResolver().query(photoUri, 
       new String[] { 
         MediaStore.Images.ImageColumns.ORIENTATION, 
         MediaStore.Images.ImageColumns.LATITUDE, 
         MediaStore.Images.ImageColumns.LONGITUDE, 
         MediaStore.Images.ImageColumns.DATE_TAKEN } , null, null, null); 

     if (cursor.getCount() != 1) { 
      return null; 
     } 

     cursor.moveToFirst(); 

     ImageInfo i = new ImageInfo(); 
     i.Orientation = cursor.getInt(0); 
     i.Lat = cursor.getDouble(1); 
     i.Lon = cursor.getDouble(2); 
     i.DateTakenUTC = cursor.getLong(3)/1000; 

     cursor.close(); 

     return i; 
    } 
+0

它所獲得必要的數據onActivityResult方法之後? – abbath0767

+0

這是一個包含我需要的數據的自定義對象 – Niddu

相關問題