在图片目录下执行:(x.JPG 到 x-small.jpg)
for img in *.JPG; do ./resize-tok $img ; done
云想前:
du *JPG
4728 DSC_8535.JPG
4896 DSC_8538.JPG
4544 DSC_8540.JPG
572 DSC_8543.JPG
556 DSC_8544.JPG
下面是运行后:
du *jpg
372 DSC_8535.JPG_small.jpg
376 DSC_8538.JPG_small.jpg
376 DSC_8540.JPG_small.jpg
380 DSC_8543.JPG_small.jpg
376 DSC_8544.JPG_small.jpg
392 DSC_8546.JPG_small.jpg
脚本resize-tok内容:(要求安装ImageMagick)
-------------------以下为脚本-----------------------
#!/bin/sh
# $1: file name; $2:size in k
fsize(){
x=$(du --block-size k $1)
echo $x | awk '{print $1}' | sed "s/K//g"
}
#echo $(fsize $1)k
rat=$(echo $(fsize $1) | awk '{print sqrt(400/($1))*100 }')
#echo $rat
while [ 1 ]
do
convert -resize $rat%x$rat% $1 $1_small.jpg
if [ $(fsize $1_small.jpg) -lt 400 ]
then
echo "."
fsize $1_small.jpg
exit
fi
#du x.jpg
rat=$(echo $rat | awk '{print ($1-4) }')
#echo $rat
done