圖片EXIF信息查看與Exiftool使用

? 今天元宵節(jié)一罩,一位版主在論壇發(fā)了一篇元宵節(jié)祝福帖子,一大早就有用戶報障說帖子中有張圖片在iOS端看不了撇簿,安卓手機(jī)正常聂渊,第一反應(yīng)是圖片格式問題差购,用Safari打開也看不了,回到公司證實(shí)了是一張webp格式圖片,最后將其轉(zhuǎn)換成jpg格式發(fā)給了用戶重新上傳替換悼沿。

下圖后綴名為jpg鸠项,實(shí)際是webp格式圖片,在谷歌系瀏覽器上才顯示正常稳析,Safari瀏覽器無法顯示

photo

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

一弓叛、什么是EXIF

? 可交換圖像文件格式常被簡稱為Exif(Exchangeable image file format)彰居,是專門為數(shù)碼相機(jī)的照片設(shè)定的,可以記錄數(shù)碼照片的屬性信息和拍攝數(shù)據(jù)撰筷。Exif 可以被附加在 JPEG陈惰、TIFF、RIFF 等文件之中毕籽,為其增加有關(guān)數(shù)碼相機(jī)拍攝信息的內(nèi)容和縮略圖或圖像處理軟件的一些版本信息抬闯。

了解更多:維基百科

EXIF在線查看

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

二、Exiftool使用

一)為什么使用Exiftool

  • exiftool是經(jīng)過測試發(fā)現(xiàn)對圖片EXIF信息解析支持是最好的(如果有更好的請補(bǔ)充)
  • exiftool支持圖片EXIF信息查詢平委,修改及批量操作奈虾,還支持其它文件的EXIF操作。
  • 安全隱私問題廉赔,因?yàn)榻?jīng)常有網(wǎng)上暴露圖片隱私問題肉微,使用在線需要上傳到服務(wù)器。采用exiftool保證了圖片的安全和隱私蜡塌,顯然是最適合的碉纳。
    ? 我們知道文件后綴名并不能代表文件的類型格式,比如上圖webp格式后綴名是jpg馏艾,換言之一張jpg后綴名圖片可能不是jpg圖片劳曹,可能是webpng琅摩,text或其它類型文件铁孵。那么怎么快速了解它是哪種類型文件并獲取它的一些其它信息呢,這時exiftool就派上用場了房资,試了下其它幾個Exif工具蜕劝,也用Mac/iOS原生代碼測試了下,發(fā)現(xiàn)不能有效的讀取jpg后綴的webp圖片,而exiftool能很好支持岖沛。注意并非每一張圖片都包含 exif 信息暑始,像微信朋友圈如果發(fā)表的不是原圖就沒有。
二)Exiftool安裝與使用
1婴削、exiftool安裝
$ brew install exiftool

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

2廊镜、查看EXIF信息
$ exiftool photo.jpg  #默認(rèn)顯示所有的信息 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 #查看使用詳細(xì)列表

使用幫助,可看到所有命令幫助互躬,也可看到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播赁、查詢相關(guān)命令
$cd /Users/apple/Desktop
exiftool photo.jpg #查看所有信息
exiftool -a -u -g1 photo.jpg #查看所有元信息,包括重復(fù)和未知標(biāo)簽吼渡,并按小組排列
exiftool -s -ImageSize -ExposureTime photo.jpg #查看圖片尺寸
exiftool -common dir  #查看dir目錄文件信息(不僅僅是圖片)
exiftool -l  c.jpg d.jpg  #從兩個圖像文件打印所有信息。
exiftool -l -canon c.jpg d.jpg  #從兩個圖像文件打印標(biāo)準(zhǔn)的佳能信息乓序。
5寺酪、寫入編輯命令

更改創(chuàng)建和修改時間

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

寫入標(biāo)簽

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

其它:

exiftool -Comment ='這是一個新的評論'dst.jpg
    向JPG圖片寫入新評論(取代任何現(xiàn)有評論)替劈。
exiftool -comment = -o newdir -ext jpg寄雀。
    刪除當(dāng)前目錄中所有JPG圖像的評論,
    將修改后的圖像寫入新目錄陨献。
exiftool -keywords = EXIF -keywords =編輯器dst.jpg
    用兩個新的關(guān)鍵字(“EXIF”和盒犹。)替換現(xiàn)有的關(guān)鍵字列表
    “編輯”)。
exiftool -Keywords + =單詞-o newfile.jpg src.jpg
    將源圖像復(fù)制到新文件眨业,然后添加關(guān)鍵字(“單詞”)
    當(dāng)前關(guān)鍵字列表急膀。            
exiftool -credit- = xxx dir
    從一個目錄中的所有文件中刪除信用信息,信用值是“xxx”龄捡。
exiftool -all = dst.jpg
    從圖像中刪除所有元信息卓嫂。注意:你不應(yīng)該
    對RAW圖像(DNG除外)進(jìn)行處理,因?yàn)樗菍S械腞AW圖像
    格式通常包含制造注釋中的信息
    轉(zhuǎn)換圖像所必需的聘殖。
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
    從指定的文件中設(shè)置縮略圖(注意:引號是
    以防止外殼重定向)。
exiftool'-JpgFromRaw <=%d%f_JFR.JPG'-ext NEF -r突照。
    遞歸地寫入以“_JFR.JPG”結(jié)尾的文件名的JPEG圖像
    添加到擴(kuò)展名為“.NEF”的類似文件的JpgFromRaw標(biāo)記中
    當(dāng)前目錄帮非。 (這是“-JpgFromRaw”的倒數(shù)
    上面的“READING EXAMPLES”部分的命令)。
exiftool -DateTimeOriginal - ='0:0:0 1:30:0'dir
    調(diào)整目錄“dir”中所有圖像的原始日期/時間
    減去1小時30分鐘。 (這相當(dāng)于
    “-DateTimeOriginal- = 1.5”喜鼓。請參閱Image :: ExifTool :: Shift.pl
    細(xì)節(jié)副砍。)
exiftool -createdate + = 3 -modifydate + = 3 a.jpg b.jpg
    向兩個CreateDate和ModifyDate時間戳添加3個小時
    圖片。
exiftool -AllDates + = 1:30 -if'$ make eq“Canon”'dir
    移動DateTimeOriginal庄岖,CreateDate和ModifyDate的值
    將所有佳能影像轉(zhuǎn)換1小時30分鐘
    目錄豁翎。 (AllDates標(biāo)簽作為這些的快捷方式提供
    三個標(biāo)簽,允許他們通過一個標(biāo)簽訪問隅忿。)
exiftool -xmp:city = Kingston image1.jpg image2.nef
    將標(biāo)簽寫入兩個圖像的XMP組心剥。 (沒有“xmp:”
    自從“City”存在以后,該標(biāo)簽將被寫入IPTC組
    在這兩種情況下背桐,IPTC默認(rèn)是首選优烧。)
exiftool -LightSource - ='未知(0)'dst.tiff
    只有在值為0時才刪除“LightSource”標(biāo)簽。
exiftool -whitebalance- = auto -WhiteBalance = tung dst.jpg
    只有之前為“自動”時链峭,才將“WhiteBalance”設(shè)置為“Tungsten”畦娄。
exiftool -comment- = -comment ='新評論'a.jpg
    只有當(dāng)圖片還沒有時才寫新評論。
exiftool -o%d%f.xmp目錄
    為“dir”中的所有圖像創(chuàng)建XMP元信息數(shù)據(jù)文件弊仪。
exiftool -o test.xmp -owner = Phil -title ='XMP File'
    僅從命令中定義的標(biāo)簽創(chuàng)建XMP數(shù)據(jù)文件
    線熙卡。

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

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

如果要處理的文件太多励饵,一張一張?zhí)幚硇侍筒蛋珽xifTool支持批量操作:

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

其它相關(guān):

$ mdls  photo.jpg #這個命令顯示指定文件的metadata的屬性,當(dāng)不能準(zhǔn)確的獲取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
測試發(fā)現(xiàn)役听,如果是網(wǎng)絡(luò)webp圖片,如果后綴是jpg或png不能準(zhǔn)確獲取Exif信息颓鲜,系統(tǒng)相冊沒問題。

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末典予,一起剝皮案震驚了整個濱河市甜滨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌熙参,老刑警劉巖艳吠,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異孽椰,居然都是意外死亡昭娩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門黍匾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栏渺,“玉大人,你說我怎么就攤上這事锐涯】恼铮” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長霎终。 經(jīng)常有香客問我滞磺,道長,這世上最難降的妖魔是什么莱褒? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任击困,我火速辦了婚禮,結(jié)果婚禮上广凸,老公的妹妹穿的比我還像新娘阅茶。我一直安慰自己,他們只是感情好谅海,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布脸哀。 她就那樣靜靜地躺著,像睡著了一般扭吁。 火紅的嫁衣襯著肌膚如雪撞蜂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天智末,我揣著相機(jī)與錄音谅摄,去河邊找鬼。 笑死系馆,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的顽照。 我是一名探鬼主播由蘑,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼代兵!你這毒婦竟也來了尼酿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤植影,失蹤者是張志新(化名)和其女友劉穎裳擎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體思币,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鹿响,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了谷饿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惶我。...
    茶點(diǎn)故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖博投,靈堂內(nèi)的尸體忽然破棺而出绸贡,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布听怕,位于F島的核電站捧挺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏尿瞭。R本人自食惡果不足惜闽烙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望筷厘。 院中可真熱鬧鸣峭,春花似錦、人聲如沸酥艳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽充石。三九已至莫换,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間骤铃,已是汗流浹背拉岁。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留惰爬,地道東北人喊暖。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像撕瞧,于是被迫代替她去往敵國和親陵叽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評論 2 360