DPP 從 2.0 以後就加入了批次處理的功能,同時還加上了 Canon 特有的 Picture Style 參數調整,於是批次處理照片不再是夢靨。最近 DPP 更新推出 3.0 版本,還加上了雜訊抑制的功能,讓原本雜訊純淨度有極佳表現的 Canon CMOS,這下子更是如虎添翼。
於是最近幾次的後製,就開始轉為使用 DPP 來批次轉檔。不過發現了另一個問題,DPP 似乎轉檔時,並不會將所有的 EXIF tag 完整複製到轉出的 jpeg 檔中,只保留少許重要的資訊,例如:曝光模式、白平衡、閃燈等資訊就付之闕如。真是有一好沒兩好。 於是又求助股溝大神,看看別人是如何解決這個問題,找了很久只有人提到這個問題,但也沒人說該怎麼解。最後找到有人提到 EXIFTool 這套小工具,可完整從 raw 檔複製所有的 EXIF tags 到指定的檔案中,於是就解決我的問題,只要將 DPP 轉出來的 jpeg 再用這個小工具從 raw 檔將 EXIF 複製過來即可,而且這個工具是用 perl 寫的,所以在 Linux 上寫個 shell script 去做批次複製更是沒問題。 寫了下面的 script 來做批次轉檔
1 |
#!/bin/sh if [ $# = 0 ]; then echo "Usage : copy_exif.sh <RAW_SOURCE_FOLDER>" exit fi RAW_SOURCE_FOLDER=$1 for file in `ls *` do if [ -f $file ]; then PREV_FILENAME=`echo $file|awk -F"." '{print $1}'` EXT_FILENAME=`echo $file|awk -F"." '{print $2}'` RAW_FILE_LOWER=$RAW_SOURCE_FOLDER/$PREV_FILENAME.cr2 RAW_FILE_UPPER=$RAW_SOURCE_FOLDER/$PREV_FILENAME.CR2 EXIFTOOL_BACKUP_FILE=`echo "$file"_original` if [ -f $RAW_FILE_LOWER ]; then echo Copying EXIF tags from $RAW_FILE_LOWER to $file exiftool -TagsFromFile $RAW_FILE_LOWER $file rm $EXIFTOOL_BACKUP_FILE else if [ -f $RAW_FILE_UPPER ]; then echo Copying EXIF tags from $RAW_FILE_UPPER to $file exiftool -TagsFromFile $RAW_FILE_UPPER $file rm $EXIFTOOL_BACKUP_FILE fi fi fi done |
copy_exif.sh <RAW_SOURCE_FOLDER>