2011-08-13 60 views
10

我有一個攝像頭,可以生成3008x2000像素的照片。我使用Image Magick來縮放和調整要放在我的網站上的照片。我在網站上使用的圖像大小爲602x400。我使用這個命令來縮小尺寸:Image Magick:網站圖像優化

convert DSC_0124.JPG -scale 20% -size 24% img1.jpg 

這會產生一個尺寸爲602x400像素的圖像。但文件大小將始終高於250KB。單個HTML頁面上的更多圖像意味着頁面會更重,並且加載時間會更長。有沒有圖像魔術中的任何功能,這將有助於我保持文件的大小盡可能小,可能低於100KB。但圖像尺寸應該是相同的,即602x400px。我使用SEAMonster工具爲MS Windows實現了類似的優化。由於它沒有命令行選項,因此當有數百個圖像需要轉換時,它不會有太大的幫助。

回答

23

使用命令桑德蘭與額外的「-strip」標誌建議刪除EXIF數據,這已經大大減少了我的一些圖像的大小。這是一個針對unix平臺的bash腳本,但您可以將第二部分僅用於單個圖像。

for X in *.jpg; do convert "$X" -resize 602x400 -strip -quality 86 "$X"; done 

這將轉換目錄中的所有圖像。

+3

警告:使用'convert'具有相同輸入和輸出文件名可能是一個不安全的操作。要麼寫入一個臨時文件名稱,並有條件地'mv'臨時覆蓋原來的,或者只使用mogrify(ImageMagick套件的一部分)。 「mogrify(1)」的手冊頁聲明「Mogrify覆蓋原始圖像文件,而convert(1)寫入不同的圖像文件。」 –

6

使用-quality設置壓縮級別:

convert DSC_0124.JPG -scale 20% -size 24% -quality [0..100] img1.jpg 
3

可以在100KB定義輸出圖像的最大尺寸是這樣的:

convert DSC_0124.JPG -resize 602x400! -strip -define jpeg:extent=100KB img1.jpg 
+2

小心,「!」標誌調整大小忽略縱橫比,'!'可能是一個特殊的外殼字符,通常需要轉義。 –