可交換圖像文件格式(Exif)是專門為數碼相機的照片設計的,可以記錄數碼照片的屬性信息和拍攝數據。
Exif最初由日本電子工業發展協會在1996年制定,版本為1.0。1998,升級到2.1,增加了對音頻文件的支持。2002年3月,發布了2.2版。
Exif可以附加到JPEG、TIFF、RIFF等文件中,添加數碼相機的拍攝信息和索引圖片或圖像處理軟件的版本信息。
Windows 7操作系統對Exif有原生支持。單擊鼠標右鍵打開菜單,單擊屬性並切換到詳細信息選項卡,直接查看Exif信息。
Exif信息可以隨意編輯,所以只有參考作用。Exif信息以0xFFE1開頭,最後兩個字節表示Exif信息的長度。所以Exif信息最多64 kB,內部格式是TIFF。[1]
也就是說,只有JPEG、TIFF和Riff格式的照片才會有相應的EXIF信息。
對於JPEG格式的圖片,EXIF信息存在於文檔頭的某個區域。因為JPEG圖片是以二進制形式保存的,所以這裏也有相關的信息,可以知道目前的照片格式是什麽。
相關信息請參考:了解JPEG頭的格式。
使用camera2 api拍照時,有壹種方法可以將所拍圖片的旋轉角度設置為與實際角度相同:
進行照片回調,獲取相應的JPEG二進制數據:
得到JPEG的二進制數據後,如果在Api(24)以上,可以通過ExifInterface得到相應的Exif相關信息:
如果您想在所有系統中使用它,您必須讀取相關二進制文件中相應的EXIf信息:
我得到了上面JPEG圖像的旋轉角度。其實ExifInterface的源碼獲取方式和上面壹樣,只不過ExifInterface提供了更多的圖片格式。
壹般情況下(如果底層不旋轉),妳在用手機拍照的時候,拍出來的照片都是逆時針旋轉90度的:
這時候圖片需要順時針選擇90度才能得到妳拍的東西。但如果手機不在妳面前,而是旋轉各種角度拍照:
如圖所示:
手機水平拍攝時,照片旋轉180度,但我們要的是圖片的水平呈現,即手機以什麽角度拍攝,照片以什麽角度拍攝,即在原有基礎上旋轉照片使其與手機旋轉角度壹致。
實時獲取手機的角度:
根據當前傳感器獲得的手機角度,最終圖片需要旋轉如下:
最終圖片如下:
以上,分析接受thx。