#!/bin/sh # squeeze bitmapped eps using sam2p # only does it if the size gain is at least 50% # by Nick 13/01/2014 for i do oldsize=`wc -c $i | awk '{print $1}'` halfsize=`echo $oldsize | awk '{print int($1/2)}'` name=`basename $i .eps` convert -alpha off -define PNG:compression-level=9 -define PNG:compression-strategy=4 -define PNG:compression-filter=3 $i $name.new.png if(sam2p $name.new.png EPS:$name.png.eps) then sizepng=`wc -c $name.png.eps | awk '{print $1}'` halfsizepng=`echo $sizepng | awk '{print int($1/2)}'` echo "lossless conversion via png gives size $sizepng (from $oldsize)" fi convert -quality 95 $i $name.new.jpg if(sam2p $name.new.jpg EPS:$name.jpg.eps) then sizejpg=`wc -c $name.jpg.eps | awk '{print $1}'` echo "lossy conversion via jpg gives size $sizejpg (from $oldsize)" fi if (test $sizepng -lt $halfsize) then # echo QUIII $sizepng $halfsize $sizejpg $halfsizepng if(test $sizejpg -gt $halfsizepng ) then echo $sizepng $oldsize | awk '{print "OK png conversion: size gain",int(100.5-100.*$1/$2)"%"}' mv $i $name.old.eps mv $name.png.eps $i rm $name.new.png $name.new.jpg $name.jpg.eps exit 0 fi fi if (test "$sizejpg" -lt "$halfsize") then echo $sizejpg $oldsize | awk '{print "OK jpg conversion: size gain ",int(100.5-100.*$1/$2),"%"}' mv $i $name.old.eps mv $name.jpg.eps $i rm $name.new.png $name.new.jpg $name.png.eps exit 0 fi echo NO significant compression: size png=$sizepng\; jpg=$sizejpg\; oldsize=$oldsize rm $name.new.png $name.new.jpg $name.png.eps $name.jpg.eps done