今天剛好遇到一個問題,小小的處理經驗在這裡分享一下。通常我們放在網路上的圖檔大多以JPG為主,其實還是得看是甚麼形式的圖片決定採用何種格式,但是大多照片使用JPG是很平常的,不過JPG的圖檔格式也有Quality的分別,品質越好檔案當然也越大,依照我自己的經驗法則之下,我覺得Quality 93是恰到好處的一個值,檔案不會太大,而且圖片也還算得上細緻!而圖檔的大小至少是Quality的一半左右。最近女友跟我說她的部落格圖片都很慢,明明和我放一樣的空間,怎麼會有比較慢的道理,研究了一下之後發現,大多的圖片檔案Quality都是100,我整個要傻眼啦!難怪每張圖片都要花比較多的時間開啟,甚至會覺得圖片開啟的速度緩慢,這時候我就等花些時間找出到底有多少Quality 100的檔案,搜尋了一些轉檔用的指令,大多可以轉出不同Quality的檔案,不過都沒有顯示圖片Quality的功能;於是從php的功能開始翻起,發現頂多只是顯示EXIF資訊,或只是說將圖片轉檔時設定Quality,也是找不到可以直接顯示Quality的方法。
最後我又回歸到系統上的指令,安裝了ImageMagick的套件,裡面有一個指令是可以幫忙完成查詢JPG的Quality。
# rpm -ql ImageMagick grep bin/usr/bin/animate
/usr/bin/compare
/usr/bin/composite
/usr/bin/conjure
/usr/bin/convert
/usr/bin/display
/usr/bin/identify/usr/bin/import
/usr/bin/mogrify
/usr/bin/montage簡單的利用
identify的指令就可以dump出整張圖片內的資訊,需要搭配
-verbose的參數使用
# identify -verbose 123.jpg grep Quality Quality: 100我就用這樣的方式將9000多筆檔案帶入迴圈之內去判斷,一共捉到了6000多筆Quality 100的檔案,真是非常的誇張啊!抓到之後當然簡單的轉檔,系統上被我找到一個很簡單的指令
jpegicc(屬於lcms色彩管理系統套件),將多筆檔案帶入迴圈批次轉檔!
# jpegicc -q 95 input.jpg output.jpg6000個檔案原本超過1.2G,壓縮成Quality 95後減少了500MB之多,然後再同步到五台不同的主機,真是浩大的工程!不過identify已經算是比較好用的ˊ指令了,-verbose會dump出很多的資訊,在搜尋上會花上不少時間,但是至少解決的這次的困擾!