Android檢視Jpg圖片出現顛倒的問題
編者:李國帥
qq:9611153 微信lgs9611153
時間:2018/11/12
背景原因:
今天遇到了一個問題,IOS患者端傳送的圖片,android端顯示的時候,圖片顛倒了。
測試影象是否顛倒:
1、下載圖片看,影象顛倒
2、使用ie瀏覽器看,影象顛倒
3、使用火狐瀏覽器看,影象正常,但是下載之後在pc上看也是顛倒的。
4、使用android程式看,影象顛倒
5、使用ios看,影象正常
原因分析
蘋果端上傳的圖片中使用了 EXIF標記,並且其旋轉標記為90度(Rotate 90 CW)。
如果直接開啟圖片 chrome 或火狐瀏覽器會自動調整過來。
什麼是
EXIF(Exchangeable Image File format)是可交換影象檔案的縮寫,是專門為數碼相機的照片設定的,可以記錄數碼照片的屬性資訊和拍攝資料。
EXIF可以附加於JPEG、TIFF、RIFF、RAW等檔案之中,為其增加有關數碼相機拍攝資訊的內容和索引圖或影象處理軟體的版本資訊。
使用exif分析工具對Coc6wVvo2cOAY0--AAo8PMDwxOI556.jpg進行分析
查詢結果
EXIF資訊摘要
色彩 |
白平衡:, 色彩空間:sRGB |
File
FileType |
JPEG |
FileTypeExtension |
jpg |
MIMEType |
image/jpeg |
ExifByteOrder |
Big-endian (Motorola, MM) |
CurrentIPTCDigest |
d41d8cd98f00b204e9800998ecf8427e |
ImageWidth |
4032 |
ImageHeight |
3024 |
EncodingProcess |
Baseline DCT, Huffman coding |
BitsPerSample |
8 |
ColorComponents |
3 |
YCbCrSubSampling |
YCbCr4:2:0 (2 2) |
JFIF
JFIF版本 |
1.01 |
解析度單位 |
None |
X軸解析度 |
72 |
Y軸解析度 |
72 |
IFD0
方向 |
Rotate 90 CW |
ExifIFD
色彩空間 |
sRGB |
Exif影象寬度 |
4032 |
Exif影象高度 |
3024 |
Photoshop
IPTCDigest |
d41d8cd98f00b204e9800998ecf8427e |
Composite
影象尺寸 |
4032x3024 |
Megapixels |
12.2 |
解決方案:
在蘋果端上更改的方法如下:
傳圖片的時候不使用旋轉90度的設定。
在android端更改的方法如下:
1、使用Android中ExifInterface介面
此介面倒是可以讀取exif內容,但是必須是api level 24及以上,這樣一來這個方法就不太好了。
2、使用Glide庫Exif資訊的處理
Android的第三方Glide影象處理庫內部已經實現了Exif處理,但是現有程式直接使用了基本的android影象庫比較方便,求人不如求己,如果剛開始做倒是可以使用。