最近做了一個遊戲展示的界面,80多個遊戲和它們的url,圖標,上傳服務器以後發現圖標都較大,在客戶端可以使用很多在線免費的壓縮工具(美圖秀秀),但是服務器一條命令就可以解決的問題,沒必要去手動添加圖片。
- 下載ImageMagick
系統:CentOS
cmd:yum install ImageMagick -y
- 使用
通過正則查找當前目錄下所有大於 50k 的圖片,進行等比例50%的縮放;
find ./ -regex '.*\(jpg\|JPG\|png\|PNG\|jpeg\)' -size +50k -exec convert -resize 50%x50% {} {} \;
通過正則查找當前目錄下所有大於 50k 的圖片,進行像素大小控制,convert 是會自動按照最大尺寸等比例進行縮小的;
find ./ -regex '.*\(jpg\|JPG\|png\|PNG\|jpeg\)' -size +50k -exec convert -resize 100x100 {} {} \;
如果想降低圖片的質量,可以用 convert 的 -quality 參數,質量值爲 0-100 之間的數值,數字越大,質量越好,一般指定 70-80 ,基本上看不出前後的差別
convert -resize 500x500 -quality 75 xxx.jpg xxx.png
通過 crontab 進行定時圖片壓縮
舉例:對 /www/images/
文件夾下的所有圖片每 5 分鐘進行一次圖片壓縮處理;
在 /www/images/
下新建 convert.sh 腳本,內容:
find /www/images/ -regex '.*\(jpg\|JPG\|png\|PNG\|jpeg\)' -size +50k -exec convert -resize 50%x50% {} {} \;
通過 crontab -e
在文件後添加:
*/5 * * * * /www/images/convert.sh
-EOF-