#!/bin/sh infile=$1 prefix=tmp-page rm -f $prefix*p?m # clean up # convert pages to raster images gs -sDEVICE=ppmraw -r30 -sOutputFile=$prefix%03d.ppm -dNOPAUSE -dBATCH -q "$infile" for img in $prefix*.ppm ; do # for each page ppmtopgm $img > $img.pgm # convert to grayscale pgmtoppm '#fff' $img.pgm > $img.pgm.ppm # convert back to RGB pnmpsnr $img $img.pgm.ppm # diff done #### %!PS /Helvetica findfont 50 scalefont setfont /text (PerlMonks rocks!) def % page 1 - black 100 500 moveto text show 100 400 moveto text show showpage % page 2 - gray 0.5 setgray 100 500 moveto text show 100 400 moveto text show showpage % page 3 - color (black and red) 0 setgray 100 500 moveto text show 1 0 0 setrgbcolor % red 100 400 moveto text show showpage #### pnmpsnr: PSNR between tmp-page001.ppm and tmp-page001.ppm.pgm.ppm: pnmpsnr: Y color component doesn't differ. pnmpsnr: Cb color component doesn't differ. pnmpsnr: Cr color component doesn't differ. pnmpsnr: PSNR between tmp-page002.ppm and tmp-page002.ppm.pgm.ppm: pnmpsnr: Y color component doesn't differ. pnmpsnr: Cb color component doesn't differ. pnmpsnr: Cr color component doesn't differ. pnmpsnr: PSNR between tmp-page003.ppm and tmp-page003.ppm.pgm.ppm: pnmpsnr: Y color component: 81.71 dB pnmpsnr: Cb color component: 35.86 dB pnmpsnr: Cr color component: 26.43 dB