Mac上的影像軟體大部份在處理JPEG的旋轉都是破壞性的, ex: photoshop, iphoto
但對於單純的旋轉動作, 數學上是可以有辦法使圖像旋轉而無耗損圖像本身的資料.
這是因為JPEG的檔案格式本身是以一個個模塊為單位(8x8)來壓縮, 所以只需要把模塊重排, 再對每個模塊旋轉即可以達至無損耗的旋轉.
在Mac上看圖時, 直拍的照片他會自動以直的方式顯現, 那是因為拍照時,
相機會把此時相機直拍或橫拍記錄在EXIF資訊中, 但基本上這張照片還是以橫的方向存檔.
目前我需要的是一套jpeg lossless rotate的軟體,
可以自己到我指定的目錄下去看所有圖檔的EXIF資訊,
然後自動轉正後, lossless再存檔起來的軟體就好了....
剛剛找到這個軟體:
http://txfx.net/code/os-x/automatic-lossless-jpg-rotation/
如果用他包好的app作,
把所有圖檔拉進去可以自己判定要不要轉, 基本上可以達到我的要求,
可惜的是他會把檔案create date改變, 這樣以後就不知道這張照片什麼時後拍的了...
有點可惜,
試了一下他有option可以不改變檔案日期, 我們可以利用Automator來讓使用更簡單.
把jhead 與 jpegtran 考貝到/bin/ 下.
先要開terminal, 打" sudo -s " 然後輸入管理者密碼,
之後才可以把jhead 與 jpegtran 考貝到/bin/ 下,
再打" chmod 555 jhead jpegtran"
然後打開Automator, 做這樣的指令:
![[教學] JPEG 無耗損旋轉, 並加上自動化右鍵功能](http://attach.mobile01.com/attach/200902/mobile01-5aa8485f83d681fea03306e7a7bb0b4f.png)
再來把這個指令加到選單: 取名叫做"lossless rotate"
![[教學] JPEG 無耗損旋轉, 並加上自動化右鍵功能](http://attach.mobile01.com/attach/200902/mobile01-f57740dba4ec368c90a8d09aa503855a.png)
之後就到照片目錄下把照片全選後, 滑鼠右鍵:
(這邊不用擔心要選哪些圖需要旋轉, 因為這個軟體會自己看相片的EXIF檔, 需要轉的才會轉)
![[教學] JPEG 無耗損旋轉, 並加上自動化右鍵功能](http://attach.mobile01.com/attach/200902/mobile01-a765bcd9b9f238a169b92a6fc416b77c.png)
這樣就會把全部照片EXIF中是需要旋轉的圖都轉過後, lossless存檔, 而且保留下原來檔案的日期,
與所有的EXIF information.
試跑一下: 一個目錄中有100張照片, 其中20張需要璇轉,
在1.6G的Macbook air上, 不用1分鐘就處理完了.
為什麼需要這個?
因為以前我都不用iphoto, 但是這一代的iphoto有人臉辨識跟新的撥放功能後, 很想用,
但是iphoto輸入圖庫後, 如果照片是直拍的, 他會幫你轉好後,
放到modify資料夾, 等於一張照片就佔了兩份的空間,
而且他轉完的照片不是lossless的, ex本來照片3.8MB, 轉完變成3.2MB, 這樣也不好....
有了這個軟體後, 照片就可以先轉好再輸入iphoto, 不用擔心照片品質改變或佔兩份空間.