|
|

楼主 |
发表于 2006-4-23 13:23:00
|
显示全部楼层
搜来搜去,就没找到一些好用的东西,只好自己看 ImageMagick 的文档了
下面是一个实现脚本的例子,设工作目录为脚本所在当前目录,下有 src 和 dst
两子目录,前者是待处理照片的目录,后者是输出目录,实现的效率不高
没有重复利用已产生的模板,后面会根据这个改进
使用到的工具:ImageMagick 和 exif
#!/bin/sh
for i in src/*.jpg
do
echo "$i is being processed..."
filename=`basename $i`
filename=`echo -n "dst/$filename"`
convert $i -resize 20% $filename # resize
sz=`identify $filename | cut -d " " -f3`
convert -size $sz xc:none -shave 25x25 mask.png
convert mask.png -matte -mattecolor black -bordercolor none \
-frame 25x25 mask.png # blendin
composite -blend 50 mask.png -gravity center $filename $filename # blend
convert -size $sz xc:black -shave 19x19 mask.png
convert mask.png -bordercolor white -border 1 mask.png
convert mask.png -bordercolor black -border 18 mask.png # line
composite -compose screen -gravity center mask.png $filename $filename
mf=`exif -t Manufacturer $i | tail -n1 | cut -d":" -f2 | tr -d " "`
mo=`exif -t Model $i | tail -n1 | cut -d":" -f2 | tr -d " "`
fn=`exif -t FNumber $i | tail -n1 | cut -d":" -f2 | tr -d " "`
ss=`exif -t "Exposure Time" $i | tail -n1 | cut -d":" -f2 | tr -d " "`
dt=`exif -t "Date and Time" $i | tail -n1 | cut -d":" -f2-`
convert -background black -fill white -font "AvantGarde-Book" \
-pointsize 14 label:"${mf} ${mo}, ${fn}, ${ss}" label.png
convert -background black -fill white -font " alatino-Bold" \
-pointsize 14 label:"photo by demonstrate @$dt" sig.png
composite -compose screen -gravity southeast label.png $filename $filename
composite -compose screen -gravity southwest sig.png $filename $filename
done
rm mask.png sig.png label.png |
|