當前位置:編程學習大全網 - 源碼下載 - 相機2拍照時的角度旋轉處理

相機2拍照時的角度旋轉處理

最近在使用Camera2 API做相關照片操作處理時,遇到了拍攝的照片角度旋轉的問題。在網上搜索了相應的資料後,發現網上寫的大部分都只是解釋了如何通過返回的數據得到當前的照片角度。但由於最終顯示的照片要和相機拍攝的照片壹致,所以需要得到當前設備的旋轉角度,通過照片的原始角度和設備的角度最終得到顯示照片的角度。

可交換圖像文件格式(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。

  • 上一篇:收不到telegram驗證短信
  • 下一篇:我的世界的物品id是什麽?
  • copyright 2024編程學習大全網