Rev 562 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#! /bin/sh
# This is a script to break a gif photo into pieces.
# Flydraw is used to do it.
cd `dirname $0`
flydraw=../../../../other/bin/flydraw
pics=`cd ../photos; ls *.gif | sed 's/.gif$//'`
levels="2x2 2x3 3x3 3x4 4x5"
p=`echo $pics`
echo !set photos=$p >photindex
echo !set levels=!words2items $levels >>photindex
for name in $pics
do
if [ "$name" = "small" ]; then continue; fi
if [ ! -d pieces/$name ] || [ pieces/$name -ot photos/$name.gif ]; then
photo=../photos/$name.gif
#siz=`(identify -verbose '%x:%y' $photo | grep -i 'geometry:' \
# | grep -iv page | awk '{print $2}') 2>/dev/null`
siz=`identify -format '%wx%h' $photo`
if [ -z "$siz" ]; then
echo ImageMagick missing in your system. Impossible to cut photos.
echo Program aborted.
exit
fi
sizex=`echo $siz | awk -F x '{print $1}'`
sizey=`echo $siz | awk -F x '{print $2}'`
echo Cutting $photo: $sizex x $sizey
mkdir -pm 755 pieces
if [ ! -d pieces/$name ]; then mkdir -m 755 pieces/$name; fi
touch pieces/$name
for q in $levels
do
echo q=$q
qy=`echo $q | awk -F x '{print $1}'`
qx=`echo $q | awk -F x '{print $2}'`
if [ ! -d pieces/$name/$q ]; then mkdir -m 755 pieces/$name/$q; fi
xp=`expr $sizex / $qx`
yp=`expr $sizey / $qy`
xpp=`expr $xp - 1`
ypp=`expr $yp - 1`
x=0
while [ $x -lt $qx ]; do
xstart=`expr $xp \* $x`
xend=`expr $xstart + $xp - 2`
y=0
while [ $y -lt $qy ]; do
ystart=`expr $yp \* $y`
yend=`expr $ystart + $yp - 2`
$flydraw pieces/$name/$q/p.$x.$y.gif <<@
new
size $xpp,$ypp
fill 0,0,192,192,192
copy 0,0,$xstart,$ystart,$xend,$yend,$photo
@
y=`expr $y + 1`
done
x=`expr $x + 1`
done
# $flydraw -o pieces/$name/$q/p.bad.gif <<@ 2>/dev/null
#new
#size $xp,$yp
#fill 0,0,0,0,0
#@
chmod a+r pieces/$name/$q/*.gif
done
fi
done