[ 數位影像 ] 好用的多用途 EXIF 修改工具 - ExifTool

半年前介紹了「Quick EXIF editor 操作方式 」,網友 paul 在回應中問了一個問題

if taking the picture at different time zone, now I want to change back all pictures to another time zone, want to keep the minute and seconds but change the hour, please tell me how ?

他想問的情境大概是如果去旅行有時差,但是拍攝的當時沒有注意到,事後發現要怎樣把數位相片 EXIF 檔中的 Date/time original 改為正確的時間。

說實話,這個真是一個大難題呀!於是我在草稿堆中把當初本來要寫的另外一個好用的多用途 EXIF 工具 - ExifTool 挖起來測試看看,發現可以很簡單的解決這個問題。

exiftool.jpg

ExifTool 是一個 perl 平台發展的工具,他可以解析出非常多的 EXIF 資訊,這些可以解析出的 EXIF 資訊也是他可以修改與編輯的項目。

ExifTool 目前分別有提供 Unix like, Windows, MacOS 三種平台的版本,Unix like 的版本很好用,只要你懂 perl 的語法,甚至可以利用 perl script 把 ExifTool 當作一個模組呼叫出來使用。

因為個人不使用 MacOS ,所以不予評論。Windows 版本以現在只懂得使用圖形介面 ( GUI ) 的人之角度來看,可能使用上有一點複雜,可是又不會那麼複雜;受限於 Window 檔名不能使用一些符號的規定的影響, ExifTool 最強大的功能可能得在「命令提示字元」底下執行才能發揮。不過單是使用 GUI 的模式,就已經可以解決大部分的問題了。

那我們以幾個範例來說明這個軟體的使用方式。 

假設你跟我朋友「頂港有名聲,下港很出名」的高雄兒童寫真大師亨利爸 philippetsai 一樣,心中對於 1DMKIII 苦苦相思,但是苦思都不可得。這個時候你可以在數位相片中相機型號一欄,自行把 Model 這個欄位改成 "Canon EOS-1D Mark III"

請記住你要改的欄位是 "model" ,要改成的值是 "Canon EOS-1D Mark III",這個時候你要下的參數是 「-make="Canon EOS-1D Mark III"」,指令就變成是:

exiftool -make="Canon EOS-1D Mark III" 圖檔檔名

如果是把某個目錄所有的圖檔 "model" 欄位都要改成 "Canon EOS-1D Mark III",您可以把「圖檔檔名」用 「*.jpg」 代替,或是直接用「目錄」代替即可,類似以下的範例:

  • exiftool -make="Canon EOS-1D Mark III" *.jpg
  • exiftool -make="Canon EOS-1D Mark III" "c:\my forder"

上面的方式是以在「命令提示字元」的模式 底下執行的,可能有人會說了「我對命令提示字元一點也不懂,怎麼辦?」這個時候可以採用變通的方式,利用改變程式檔名的方式來進行。

原來我們下載的壓縮檔解開的檔案名稱是像這樣的

exiftool-002.jpg

我們把參數加到檔名中,把原來 exiftool(-k) 的檔名改成 exiftool(-make='Canon EOS-1D Mark III'),請注意:我這裡把原來的參數用的符號由 " (雙引號)改成了 ' (單引號),這是因為 Windows 的命名原則,不允許把 " (雙引號)當作檔名的變通方式。

exiftool-003.jpg

接著把你要加入這個 EXIF 資訊的數位影像,全選後拖拉到程式上面去

接著把你要加入這個 EXIF 資訊的數位影像,全選後拖拉到程式上面去

程式就會批次把這個 make='Canon EOS-1D Mark III' 資料,寫到圖檔裡面去了。

exiftool-005.jpg

系統很貼心,會幫你把原來的檔案,產生一個備份檔,叫做"原始檔名_original",所以不用擔心原始檔案毀損 

除了修改基本的 EXIF 資訊,exiftool 還可以修改 iptc, gps, xmp 以及各家廠牌的專有資訊,更詳細的資料可以參考這個說明:

寫到這裡不知道 網友 paul  會不會抗議我怎麼都沒解決他的問題呢?來來!我們繼續看 ExifTool 一個很強大的功能叫做 " Date/Time Shift ",透過這個功能就可以解決時差的問題。

假設你因為更換電池等等因素,把 2005:11:03 10:48:00 設定成 2000:01:01 00:00:00,時間整整差了 5 年 10 個月 2 天 10 個小時 48 分,事後發現要怎麼處理呢?請用這個參數

"-DateTimeOriginal+=5:10:2 10:48:0"

他的意思是時間都要加上 5:10:2 (5 年 10 個月 2 天)以及 10:48:0 (10 個小時 48 分 0 秒)。

當然啦!這是一個特例,如果我們只要把某個目錄底下所有的相片的拍攝時間往前改變三個小時,這樣下參數即可(DIR 指的是目錄名稱)

"-AllDates-=3 DIR"

使用起來是不是很方便呢?

.

相關文章:

13 thoughts on “[ 數位影像 ] 好用的多用途 EXIF 修改工具 - ExifTool

  1. 😛

    原來這個程式咁強
    因有幾個朋友, 來自不同時區
    拍照後希望用日期/時間 排序,
    才發現排不了
    多謝jerome細心解答
    😆

  2. 阿,太棒啦,Robbin才跟吉米推薦您的部落格,才上來一逛,就學到新知識,這東西吉米找好久囉~

    尤其用在早期的數位照片,或是掃描的照片,甚至是拯救回來的照片,可以透過這個軟體來rebuild EXIF啦

  3. to: Ring
    蔡董是大戶,我們這一種是小咖,只能遠望不可褻玩啦!

    to: paul
    希望有解決你的問題喔!因為你的問題也讓我更仔細的玩了一下這軟體,發現他真是強大,我也跟你說謝謝!

    to: 吉米丘
    我我我..
    我也常去你那裡看敗家資訊耶!
    唉呀!
    敗家的資訊不要寫太多,那樣很讓人心不定耶!

  4. 有一個小問題想請教.您提到時間往前的語法,那我如果想把時間調後呢?麻煩您的解答.

  5. to: Marcus

    如果想要時間往前,語法是一樣的呀!
    假設往前一個小時,你就下 "-DateTimeOriginal-=0:0:0 1:0:0" 詳細的資訊可以看文中的說明喔!

  6. Under window XP SP2, the file name can not include the ":" . How can you input the ":" as separator in the date and time format? thanks!

  7. 真是太好了,我新買的相機第一天拍照時忘了設定時間,靠了Exif tool的Date/Time Shift直接幫我搞定了一開始忘了設定時間的問題,真是太棒了(剛好其中一張照片拍到電腦的時鐘.所以可以把那些沒設定時間的照片調回到正確的拍攝時分)

    這個tool真的很方便阿

  8. 您好,
    感謝您提供方法解決修改日期。
    可能是我的電腦技能不夠厲害,能否透過郵件與您討論步驟呢?
    我現階段遇到日期需要修改的問題。希望您能幫助我

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。