最近發現一套功能強大的EXIF編輯程式,ExifTool
ExifTool的語法類似於Perl
不過就算沒學過Perl,參考指令說明還是可以上手
說明文件裡面同時包含了一些範例
可以根據自己的需求,找到類似的參考範例,再修改成自己想要的功能
若找不到類似範例可參考,也可到範例查詢輸入自己的需求
現在有很多無反機身可以轉接他廠鏡頭、老鏡等
但因為鏡頭資訊無法被機身取得,導致照片中的EXIF都沒有鏡頭資訊
後續在整理照片時就比較不方便
透過以下指令讀取檔案的EXIF資訊
#Read EXIF information from a specified file
$ exiftool [FILE]
若只想讀取特定EXIF欄位的資訊,可透過-s加欄位名稱(下例為LensModel),避免顯示一大堆資訊出來
#Read "Len Model" & "Focal Length" EXIF information from a specified file
$ exiftool -s -LensModel -FocalLength [FILE]
透過以下指令修改EXIF,讓轉接鏡/老鏡資訊也能顯示在EXIF中
#Add M42 mount Lens Info into EXIF of photo which created by Sony A7
$ exiftool -LensModel='Meyer Oreston 50mm F1.8' [FILE]
上述的例子是修改Lens Model欄位資訊,將指定檔案FILE的EXIF欄位資訊填入Meyer Oreston 50mm F1.8
如此鏡頭資訊也就能被保存在照片中了
ExifTool最方便的部分就是可以檔案批次處理
若資料夾中同時有不同鏡頭拍攝的照片,為避免其他鏡頭的原始資訊被覆蓋掉,可以加上if判斷式,範例如下
#Select photos which Lens Model is equal to "----" and add M42 mount Lens Info into their EXIF
$ exiftool -if '$LensModel eq "----"' -LensModel='Meyer Oreston 50mm F1.8' [DIR]
從指定資料夾DIR中找到所有Lens Model欄位為----的檔案(Sony A7接老鏡時,因為讀不到鏡頭資訊,會將該欄位填入"----"),並將找到的這些檔案的Lens Model欄位填入Meyer Oreston 50mm F1.8
需注意一下if判斷式這邊的語法,欄位要以變數方式來表示(即:名稱前多加一個$),例如Lens Model欄位以變數表示為$LensModel
-if '$LensModel eq "----"'
此段語法的意義即為
若該檔案的LensModel欄位等於----,則執行後面語法的操作
此外也可根據自己的需求,從EXIF的欄位說明找到想編輯的欄位名稱,再透過對應指令修改
若在修改時遇到問題,也能到討論區查詢&發問,幸運的話也會遇到ExifTool的作者回覆你的問題喔~