2013-01-24 21 views
1

我一直試圖使用sanselan庫的android來正確更新我的圖像旋轉數據,但我不能讓它工作。我想知道是否有人在這裏工作。我整天都在檢查類似問題的答案,但似乎沒有任何工作。在銀河系s3和摩托羅拉剃鬚刀m中,出於某種原因,我總是會在圖片中嵌入一個風景旋轉。我已經在我分配給我的相機的參數中設置了旋轉屬性,但除此之外,它還沒有解決。有沒有人有任何想法,鏈接或例如他們如何成功手動更新Android中的圖像中的Exif數據?Android - 使用sanselan手動更新圖片Exif數據

回答

2

某些設備(如Galaxy S3,Note2)會給出旋轉的圖像。爲了得到正確的圖像 遵循belove步驟:

  1. 使用方向EXIF信息
  2. 設置適當的值到圖像EXIF方向

如果我看得很清楚旋轉位圖,你的問題就來了步驟2.如果嘗試更新exif方向,Sanselan將複製方向屬性。首先,您必須刪除方向值,然後添加值。我已經工作了這種方式:

  List<?> sourceDirectories = outputSet.getDirectories(); 
      for (int i = 0; i < sourceDirectories.size(); i++) { 
       TiffOutputDirectory sourceDirectory = (TiffOutputDirectory) sourceDirectories.get(i); 

       List<?> sourceFields = sourceDirectory.getFields(); 
       for (int j = 0; j < sourceFields.size(); j++) { 
        TiffOutputField sourceField = (TiffOutputField) sourceFields.get(j); 
        if (sourceField.tagInfo.name.equals("Orientation")) { 
         sourceDirectory.removeField(sourceField.tagInfo); 
        } 
       } 
      } 

      TiffOutputDirectory tiffDirectory = outputSet.getExifDirectory(); 
      TiffOutputField orientationField = TiffOutputField.create(TiffConstants.EXIF_TAG_ORIENTATION, outputSet.byteOrder, 1); 
      tiffDirectory.add(orientationField); 

This article could help you in orientation value

+0

最後我用這樣的事情,但仍對某些怪球設備,你不能從與硬件設備拍攝的照片讀取EXIF數據。在這種情況下,我只是讓圖像做自己的事情,一切正常 –