圖片EXIF信息查看與Exiftool使用

? 今天元宵節,一位版主在論壇發了一篇元宵節祝福帖子,一大早就有用戶報障說帖子中有張圖片在iOS端看不了,安卓手機正常,第一反應是圖片格式問題,用Safari打開也看不了,回到公司證實了是一張webp格式圖片,最后將其轉換成jpg格式發給了用戶重新上傳替換。

下圖后綴名為jpg,實際是webp格式圖片,在谷歌系瀏覽器上才顯示正常,Safari瀏覽器無法顯示

photo

上圖為轉換后的圖片,webp格式圖片簡書無法上傳
webp格式原圖鏈接

一、什么是EXIF

? 可交換圖像文件格式常被簡稱為Exif(Exchangeable image file format),是專門為數碼相機的照片設定的,可以記錄數碼照片的屬性信息和拍攝數據。Exif 可以被附加在 JPEG、TIFF、RIFF 等文件之中,為其增加有關數碼相機拍攝信息的內容和縮略圖或圖像處理軟件的一些版本信息。

了解更多:維基百科

EXIF在線查看

圖蟲EXIF查看器alpha版
exif-viewer
get-metadata (支持圖片、其它文件)
http://exif.regex.info/exif.cgi 支持URL鏈接
以上幾個是使用過的對圖片EXIF解析支持最好的,網上的一些工具會解析失敗。

二、Exiftool使用

一)為什么使用Exiftool

  • exiftool是經過測試發現對圖片EXIF信息解析支持是最好的(如果有更好的請補充)
  • exiftool支持圖片EXIF信息查詢,修改及批量操作,還支持其它文件的EXIF操作。
  • 安全隱私問題,因為經常有網上暴露圖片隱私問題,使用在線需要上傳到服務器。采用exiftool保證了圖片的安全和隱私,顯然是最適合的。
    ? 我們知道文件后綴名并不能代表文件的類型格式,比如上圖webp格式后綴名是jpg,換言之一張jpg后綴名圖片可能不是jpg圖片,可能是webpngtext或其它類型文件。那么怎么快速了解它是哪種類型文件并獲取它的一些其它信息呢,這時exiftool就派上用場了,試了下其它幾個Exif工具,也用Mac/iOS原生代碼測試了下,發現不能有效的讀取jpg后綴的webp圖片,而exiftool能很好支持。注意并非每一張圖片都包含 exif 信息,像微信朋友圈如果發表的不是原圖就沒有。
二)Exiftool安裝與使用
1、exiftool安裝
$ brew install exiftool

或直接下載:https://sno.phy.queensu.ca/~phil/exiftool/

2、查看EXIF信息
$ exiftool photo.jpg  #默認顯示所有的信息 exiftool+圖片路徑/圖片名.jpg

輸出信息如下:

#$ ExifTool /Users/apple/Desktop/photo.jpg
ExifTool Version Number         : 10.80
File Name                       : photo.jpg
Directory                       : /Users/pconline/Desktop
File Size                       : 18 kB
File Modification Date/Time     : 2018:03:02 10:22:03+08:00
File Access Date/Time           : 2018:03:02 11:47:58+08:00
File Inode Change Date/Time     : 2018:03:02 11:47:57+08:00
File Permissions                : rw-r--r--
File Type                       : WEBP
File Type Extension             : webp
MIME Type                       : image/webp
VP8 Version                     : 0 (bicubic reconstruction, normal loop)
Image Width                     : 640
Horizontal Scale                : 0
Image Height                    : 400
Vertical Scale                  : 0
Image Size                      : 640x400
Megapixels                      : 0.256
從打印信息我們可以看到,圖片photo.jpg雖然后綴名是jpg,但File Type則是WEBP
3、Exiftool常用命令示例

終端輸入

$ exiftool -h #查看使用詳細列表

使用幫助,可看到所有命令幫助,也可看到exiftool的支持文件類型和文件元信息如下:

File Types
----------------------+----------------------+---------------------
3G2   r/w   | DVB   r/w   | JPEG  r/w   | ODT   r     | RIFF  r
....
Meta Information
----------------------+----------------------+---------------------
EXIF           r/w/c  |  CIFF           r/w  |  Ricoh RMETA    r
GPS            r/w/c  |  AFCP           r/w  |  Picture Info   r
IPTC           r/w/c  |  Kodak Meta     r/w  |  Adobe APP14    r
XMP            r/w/c  |  FotoStation    r/w  |  MPF            r
MakerNotes     r/w/c  |  PhotoMechanic  r/w  |  Stim           r
Photoshop IRB  r/w/c  |  JPEG 2000      r    |  DPX            r
ICC Profile    r/w/c  |  DICOM          r    |  APE            r
MIE            r/w/c  |  Flash          r    |  Vorbis         r
JFIF           r/w/c  |  FlashPix       r    |  SPIFF          r
Ducky APP12    r/w/c  |  QuickTime      r    |  DjVu           r
PDF            r/w/c  |  Matroska       r    |  M2TS           r
PNG            r/w/c  |  MXF            r    |  PE/COFF        r
Canon VRD      r/w/c  |  PrintIM        r    |  AVCHD          r
Nikon Capture  r/w/c  |  FLAC           r    |  ZIP            r
GeoTIFF        r/w/c  |  ID3            r    |  (and more)
4、查詢相關命令
$cd /Users/apple/Desktop
exiftool photo.jpg #查看所有信息
exiftool -a -u -g1 photo.jpg #查看所有元信息,包括重復和未知標簽,并按小組排列
exiftool -s -ImageSize -ExposureTime photo.jpg #查看圖片尺寸
exiftool -common dir  #查看dir目錄文件信息(不僅僅是圖片)
exiftool -l  c.jpg d.jpg  #從兩個圖像文件打印所有信息。
exiftool -l -canon c.jpg d.jpg  #從兩個圖像文件打印標準的佳能信息。
5、寫入編輯命令

更改創建和修改時間

$ exiftool -gps:all= photo.jpg  #有些相機會記錄拍照時的GPS定位信息。如果你不希望別人看到使用該命令刪除gps信息
$ exiftool -all= photo.jpg  #刪除所有信息
$ exiftool -all= --exif:all photo.jpg  #刪除EXIF以外的所有信息

寫入標簽

$ exiftool -artist=標簽名稱 photo.jpg            #寫入藝術家標簽
$ exiftool -artist=標簽名稱 a.jpg b.jpg c.jpg   #寫多個文件
$ exiftool -artist=標簽名稱  /exiftoolTest      #寫在一個目錄的所有文件 exiftoolTest為文件夾

其它:

exiftool -Comment ='這是一個新的評論'dst.jpg
    向JPG圖片寫入新評論(取代任何現有評論)。
exiftool -comment = -o newdir -ext jpg。
    刪除當前目錄中所有JPG圖像的評論,
    將修改后的圖像寫入新目錄。
exiftool -keywords = EXIF -keywords =編輯器dst.jpg
    用兩個新的關鍵字(“EXIF”和。)替換現有的關鍵字列表
    “編輯”)。
exiftool -Keywords + =單詞-o newfile.jpg src.jpg
    將源圖像復制到新文件,然后添加關鍵字(“單詞”)
    當前關鍵字列表。            
exiftool -credit- = xxx dir
    從一個目錄中的所有文件中刪除信用信息,信用值是“xxx”。
exiftool -all = dst.jpg
    從圖像中刪除所有元信息。注意:你不應該
    對RAW圖像(DNG除外)進行處理,因為它是專有的RAW圖像
    格式通常包含制造注釋中的信息
    轉換圖像所必需的。
exiftool -all = -comment ='寂寞'dst.jpg
    刪除圖像中的所有元信息并添加評論
    (注意順序很重要:“-comment ='lonely'-all =”
    也會刪除新評論。)
exiftool -all = --jfif:全部dst.jpg
    從圖像中刪除除JFIF組以外的所有元信息。
exiftool -Photoshop:全部= dst.jpg
    從圖像中刪除Photoshop元信息(注意
    Photoshop信息還包括IPTC)。
exiftool -r -XMP-crss:all = DIR
    遞歸刪除a中的圖像中的所有XMP-crss信息
    目錄。
exiftool'-ThumbnailImage <= thumb.jpg'dst.jpg
    從指定的文件中設置縮略圖(注意:引號是
    以防止外殼重定向)。
exiftool'-JpgFromRaw <=%d%f_JFR.JPG'-ext NEF -r。
    遞歸地寫入以“_JFR.JPG”結尾的文件名的JPEG圖像
    添加到擴展名為“.NEF”的類似文件的JpgFromRaw標記中
    當前目錄。 (這是“-JpgFromRaw”的倒數
    上面的“READING EXAMPLES”部分的命令)。
exiftool -DateTimeOriginal - ='0:0:0 1:30:0'dir
    調整目錄“dir”中所有圖像的原始日期/時間
    減去1小時30分鐘。 (這相當于
    “-DateTimeOriginal- = 1.5”。請參閱Image :: ExifTool :: Shift.pl
    細節。)
exiftool -createdate + = 3 -modifydate + = 3 a.jpg b.jpg
    向兩個CreateDate和ModifyDate時間戳添加3個小時
    圖片。
exiftool -AllDates + = 1:30 -if'$ make eq“Canon”'dir
    移動DateTimeOriginal,CreateDate和ModifyDate的值
    將所有佳能影像轉換1小時30分鐘
    目錄。 (AllDates標簽作為這些的快捷方式提供
    三個標簽,允許他們通過一個標簽訪問。)
exiftool -xmp:city = Kingston image1.jpg image2.nef
    將標簽寫入兩個圖像的XMP組。 (沒有“xmp:”
    自從“City”存在以后,該標簽將被寫入IPTC組
    在這兩種情況下,IPTC默認是首選。)
exiftool -LightSource - ='未知(0)'dst.tiff
    只有在值為0時才刪除“LightSource”標簽。
exiftool -whitebalance- = auto -WhiteBalance = tung dst.jpg
    只有之前為“自動”時,才將“WhiteBalance”設置為“Tungsten”。
exiftool -comment- = -comment ='新評論'a.jpg
    只有當圖片還沒有時才寫新評論。
exiftool -o%d%f.xmp目錄
    為“dir”中的所有圖像創建XMP元信息數據文件。
exiftool -o test.xmp -owner = Phil -title ='XMP File'
    僅從命令中定義的標簽創建XMP數據文件
    線。

更多命令查看exiftool -h
http://owl.phy.queensu.ca/~phil/exiftool/examples.html

6、使用ExifTool批量處理EXIF信息

如果要處理的文件太多,一張一張處理效率太低,ExifTool支持批量操作:

$ exiftool -artist=標簽名稱  /dirName    #批量寫入dirName目錄藝術家標簽
$ exiftool -r -all= /dirName      #批量刪除dirName及其子目錄所有文件EXIF信息,-r表示遞歸處理子目錄
$ exiftool -gps:all= /dirName     #批量刪除dirName及其子目錄所有文件gps信息

其它相關:

$ mdls  photo.jpg #這個命令顯示指定文件的metadata的屬性,當不能準確的獲取exif信息

iOS端獲取metadata
https://stackoverflow.com/questions/9766394/get-exif-data-from-uiimage-uiimagepickercontroller
https://stackoverflow.com/questions/16830180/how-to-get-exif-data-from-downloaded-image
測試發現,如果是網絡webp圖片,如果后綴是jpg或png不能準確獲取Exif信息,系統相冊沒問題。

參考:
http://owl.phy.queensu.ca/~phil/exiftool/examples.html
https://zh.wikipedia.org/wiki/EXIF
https://baike.baidu.com/item/EXIF/422825

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373