imagemagick

今天写了一个imagemagick命令里面的convert(裁剪)跟composite(加水印)的压力测试脚本,就是因为有一台服务器身兼多职。最近负载有点过高,所以要考虑,把这个功能单独拿出去,做一个专门裁剪图片的服务器!

下面是写的imagemagick里面的convert(裁剪)跟composite(加水印)的压力测试脚本,这个imagemagick批量裁图脚本放在你要裁剪的文件的文件夹中即可:

#!/bin/sh
#Get Convert & Composite Time

#Computing time
function getTiming(){
    start=$1
    end=$2

    start_s=`echo $start | cut -d '.' -f 1`
    start_ns=`echo $start | cut -d '.' -f 2`
    end_s=`echo $end | cut -d '.' -f 1`
    end_ns=`echo $end | cut -d '.' -f 2`

    time_micro=$(( (10#$end_s-10#$start_s)*1000000 + (10#$end_ns/1000 - 10#$start_ns/1000) ))
    time_ms=`expr $time_micro/1000  | bc `

    echo "$time_micro microseconds"
    echo "$time_ms ms"
}

begin_time=`date +%s.%N`

for i in *.JPG
do
/usr/bin/convert -size 550x550 $i -resize 550x550 +profile "*" -quality 80 $i
composite -gravity Center -compose plus /data/shuiyin.jpg $i  /data/mdwaterimg/test2/$i
done

end_time=`date +%s.%N`

getTiming $begin_time $end_time

之前考虑过不用shell写,直接用PHP来写。但是用PHP写的话,测试裁剪加水印的时间数据就不会那么准确!

执行:

sh  /imagemagick_test.sh

上面这段代码里面包含一个记录裁剪加水印的开始时间,跟结束时间,返回的是毫秒。

对不同单位的时间有所混淆么?下面是备忘。

1s=1000ms

1ms=1000 microseconds

 

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="">

请选择吧!