1. 程式人生 > >Shell程式設計:批量生成縮圖

Shell程式設計:批量生成縮圖

有幾十萬張圖片,希望用shell指令碼批量生成縮圖。使用GraphicsMagick 庫進行圖片處理

1.GraphicsMagick 

是配合im4java使用的圖片處理軟體,在linux/windows下均能使用。在ubuntu下安裝很簡單:
sudo apt-get install graphicsmagick
然後執行 man gm, 如果顯示graphicsmagick的manual,則證明graphicsmagick安裝成功。 http://www.douban.com/note/250186484/ 2.命令列:圖片壓縮 這裡用的是保持圖片長寬比例不變 手機一般解析度1080*1920,寬度上3張圖,1080/3=360,可以保證圖片清晰,即壓縮到360*640 不過發現還是太大,弄到10k差不多,後來選了個壓縮為為200*356的大小
命令: gm convert input.jpg -thumbnail '100x100' output_1.jpg 圖片會按照寬度固定為200,按比例對高度進行縮放 3.程式 便利目錄,函式遞迴呼叫,儲存為chimg.sh 後,直接./chimg.sh呼叫
#!/bin/bash
#arg1: nowdir  arg2: now thumb dir  arg3: nowforder
function bianli(){
for file in `ls $1`
do
	echo $file
	image="${1}/${file}"
	thumb="${2}/${file}"
	
	if [ -d ${image} ]
	then
		mkdir ${thumb}
		bianli ${image} ${thumb}
	elif [ ! -f ${thumb} ]
	then
		echo $thumb
		convert -resize "200x356>" -quality 85 -strip ${image} ${thumb}
	else
		echo "already exists"
	fi
	echo "***************"
done
}
bianli /media/data/WEBUPV/images /media/data/WEBUPV/thumb