#! /bin/sh # Bourne shell script to cut slices of a JPG page image and make # separate JPG files from each line. It used to convert to PNM to get the # image size but this version assumes a whole uncropped page, so we give # absolute coordinates for the starting-point. The master page is made # by making a 1-page A4 PS file with dvips at 600dpi, then running GS on # it with DEVICE=jpeggray and r=300. If you use other settings, open the # JPG file in a graphics editor and work out initial values for LEFT, TOP, # WIDTH, and SLICE by yourself. # Peter Flynn, Silmaril Consultants, 2000/2001/2002/2003 if [ -z "$1" ]; then echo You must give a filename to slice up exit 1 else FILE=`basename $1 .jpg` # Starting-point for TLC of first slice # LEFT=850 # TOP=614 LEFT=1000 TOP=2300 # WIDTH=`jpegtopnm $FILE.jpg | pnmfile | awk '{print $4}'` # WIDTH=$[WIDTH-LEFT] # WIDTH=1050 WIDTH=1000 HEIGHT=`jpegtopnm $FILE.jpg | pnmfile | awk '{print $6}'` SLICE=50 BOTTOM=$SLICE # we expect 36 lines of font samples while [ $BOTTOM -lt $HEIGHT ]; do BOTTOM=$[TOP+SLICE-1] COUNT=$[COUNT+1] if [ $COUNT -lt 10 ]; then SEQ="0"$COUNT else SEQ=$COUNT fi echo Cutting slice $COUNT from $TOP to $BOTTOM jpegtopnm $FILE.jpg | pnmcut $LEFT $TOP $WIDTH $SLICE | pnmcrop | ppmtojpeg >$FILE-$SEQ.jpg TOP=$[BOTTOM+1] # additional spacing to skip over table subheadings if [ $COUNT = 21 ]; then TOP=$[TOP + 136 - $SLICE] elif [ $COUNT = 31 ]; then TOP=$[TOP + 136 - $SLICE] fi done fi exit 0