2016-03-02 46 views
2

是否可以讀取字節[]或位圖對象的Exif標頭而不將其寫入磁盤? 我只找到一個構造函數ExifInterface(String filename),似乎不可能這樣做。能否請你確認?Android:字節[]或位圖對象的Exif

否則,我怎樣才能將該位圖保存在緩存目錄中並將其取回以讀取Exif頭?

+0

對於難度爲1-10的比例,解壓縮JPEG圖像可能是8,而解析EXIF信息更接近2.不難走過JPEG標記列表以找到包含EXIF標頭的APP1,然後處理假TIFF文件以查找方向標籤。 – BitBank

+0

如果不難做,那麼請顯示一些代碼。 @BitBank。 – greenapps

回答

0

位圖沒有exif標頭。您可以將位圖保存爲.png,但exif不適用於.png。您可以將位圖保存爲.jpg文件。但它沒有exif信息。但是你可以添加Exifinterface我希望。

一個字節數組,如果它包含一個帶有exif頭的.jpg文件就沒問題。但Exifinterface確實無法讀取。

+0

是的,這是一個jpg文件。我拍了一張照片並保存在服務器上。問題是,當它回來時,圖片的方向已經改變。這就是爲什麼我需要閱讀Exif元數據才能正確顯示它。 – Denis

+0

你有沒有想過丹尼斯?我正在同樣的事情上掙扎。 –

+0

如果您將jpg文件上傳到服務器,exif方向不會改變。或者如果你下載一個。你在兩者之間做錯了什麼。 – greenapps

2

您可以使用我的metadata-extractor庫。它具有將從byte[],流,文件...解碼的Exif(等格式)

像這樣的東西應該工作類:

Metadata metadata = new Metadata(); 
new ExifReader().extract(new ByteArrayReader(bytes), metadata); 

現在你可以檢查Metadata對象。

該lib可通過Maven獲得。