昨天我檢查一些用 DC 拍的照片,發現幾個問題:
1. 有些程式旋轉是將裡頭的資料做「無損旋轉」,也就是將資料重新排列,而 Orientation 始終保持在 Horizontal。聽起來不錯,可是半吊子的程式寫出來的 JPEG 裡頭的 EXIF 格式不符合標準,於是造成其他的程式看不到 EXIF。
2. 同上做法,但另外一些半吊子的程式未旋轉縮圖。
3. 有些程式旋轉是直接改 EXIF 裡的 Orientation 而已,Nikon View 就是一個例子,它旋轉的 JPEG 在支援 Orientation 旋轉的程式都會自動轉成正確角度來顯示照片,但是像 Windows Explorer 在縮圖模式就不會正確顯示。
4. 有些程式雖然支援 Orientation 旋轉的照片,但顯示縮圖時有 bug,像 Nikon View 旋轉的 NEF 在 Adobe Bridge 裡,縮圖則始終是原來未旋轉前的樣子。
IrfanView 的無損旋轉便是屬於上面第一種。雖然其他 EXIF 程式還看得到,這些檔案的資料總是『不夠完美』。
第三種程式其實對我來說不是問題,因為我是不會用 Windows Explorer 來管理我的照片的。但是哪個程式可以旋轉照片裡的資料跟縮圖,保留 Orientation,完整的 EXIF,而且寫出的 JPEG 檔裡的 EXIF 格式也正確呢?
這個程式其實站上早就有人推薦過,而我今年也推薦了一次,那就是免費的 FastStone Image Viewer。
至於已經用第一類的半吊子程式轉過的 JPEG 如何修復呢?個人推薦 ExifTool。這是一個宇宙無敵強的 Exif 管理程式,免費而且支援幾乎所有的相機以及檔案 (只要它可以保留 EXIF)。有興趣的人可以到該網站上下載。但這是一個 Perl 程式,所以沒有漂亮的圖形界面,而且 XP 裡沒有 Perl 的人得另外下載 Perl。適合 Power user!(Mac OSX 已包含 Perl!)
由於這是給 Power user (偷懶的藉口),我簡單敘述一下修復 EXIF 的做法:
1. 將 EXIF 備份。
Exiftool -TagsFromFile Pic01.JPG Tags.XMP
2. 將照片裡的 EXIF 去掉。
Exiftool "-All=" Pic01.JPG
3. 將 EXIF 再寫入照片裡。
Exiftool -TagsFromFile Tags.XMP Pic01.JPG
上面的 Exiftool 是 Unix (Mac OSX) 直接執行的形態,如果在 XP 的 Command window 裡,則要改成 Perl Exiftool 。
MacOSX 版
先將上述的三個步驟 Pic01.JPG 全部換成 $1。存成一個檔,叫做 ExifPatch。
Exiftool -TagsFromFile $1 Tags.XMP
Exiftool "-All=" $1
Exiftool -TagsFromFile Tags.XMP $1
然後記得 chmod 755 ExifPatch
XP / Dos 版
先將上述的三個步驟 Pic01.JPG 全部換成 %1。存成一個 .bat 檔,叫做 ExifPatch.bat。
Exiftool -TagsFromFile %1 Tags.XMP
Exiftool "-All=" %1
Exiftool -TagsFromFile Tags.XMP %1
如果你將需要修復的照片全部搬到一個目錄裡,便可以用下面這個 script 來批次執行:
MacOSX / Unix 版
for i in *.jpg; do ExifPatch $i; done
Windows/DOS/Command 版
For %i in (*.JPG); do ExifPatch %i; del %i_original
修復後,再用 FastStone Image Viewer 來旋轉所有的 JPEG,就不再頭痛了。




























































































