1. 程式人生 > >Android檢視Jpg圖片出現顛倒的問題

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

  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、使用AndroidExifInterface介面

此介面倒是可以讀取exif內容,但是必須是api level 24及以上,這樣一來這個方法就不太好了。

2、使用GlideExif資訊的處理

Android的第三方Glide影象處理庫內部已經實現了Exif處理,但是現有程式直接使用了基本的android影象庫比較方便,求人不如求己,如果剛開始做倒是可以使用。