#!/bin/sh # # anytopnm - attempt to convert an unknown type of image file to a P?M file. # # Copyright (C) 1991 by Jef Poskanzer. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, provided # that the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation. This software is provided "as is" without express or # implied warranty. if [ ! $# = 1 ] ; then echo "usage: $0 " 1>&2 exit 1 fi origfile="$1" file="$origfile" tmpfiles="" while true ; do filetype=`file "$file"` case "$filetype" in *PBM* | *PGM* | *PPM* ) cat "$file" break ;; *compress* ) newfile="/tmp/atn.comp.$origfile" rm -f "$newfile" zcat < "$file" > "$newfile" file="$newfile" tmpfiles="$tmpfiles $newfile" ;; *btoa* ) newfile="/tmp/atn.btoa.$origfile" rm -f "$newfile" atob < "$file" > "$newfile" file="$newfile" tmpfiles="$tmpfiles $newfile" ;; *Sun* | *rasterfile* ) rasttopnm "$file" break ;; *GIF* ) giftoppm "$file" break ;; *TIFF* ) tifftopnm "$file" break ;; *IFF*ILBM* ) ilbmtoppm "$file" break ;; *Lisp* ) lispmtopgm "$file" break ;; *PC*Paintbrush* ) pcxtoppm "$file" break ;; *Bennet* ) ybmtopbm "$file" break ;; * ) # Can't figure out the file type from the magic number, # try the extension. case "$file" in *.pbm | *.pbm.* | *.pgm | *.pgm.* | *.ppm | *.ppm.* ) cat "$file" ;; *.x | *.x.* | *.xbm | *.xbm.* | *.x10bm | *.x10bm.* | *.x11bm | *.x11bm.* | *.bitmap | *.bitmap.* ) xbmtopbm "$file" ;; *.r | *.r.* | *.rast | *.rast.* ) rasttopnm "$file" ;; *.mac | *.mac.* | *.macp | *.macp.* ) macptopbm "$file" ;; *.g3 | *.g3.* | *.fax | *.fax.* ) g3topbm "$file" ;; *.xwd | *.xwd.* | *.x10wd | *.x10wd.* | *.x11wd | *.x11wd.* ) xwdtopnm "$file" ;; *.brush | *.brush.* ) brushtopbm "$file" ;; *.img | *.img.* ) gemtopbm "$file" ;; *.pcx | *.pcx.* ) pcxtoppm "$file" ;; *.pic | *.pic.* | *.pict | *.pict.* | *.pict2 | *.pict2.* ) picttoppm "$file" ;; *.tif | *.tif.* | *.tiff | *.tiff.* ) tifftopnm "$file" ;; *.fs | *.fs.* | *.face | *.face.* ) fstopgm "$file" ;; *.hips | *.hips.* ) hipstopgm "$file" ;; *.fits | *.fits.* ) fitstopgm "$file" ;; *.gif | *.gif.* ) giftoppm "$file" ;; *.iff | *.iff.* | *.ilbm | *.ilbm.* ) ilbmtoppm "$file" ;; *.lispm | *.lispm.* ) lispmtopgm "$file" ;; *.mtv | *.mtv.* ) mtvtoppm "$file" ;; *.qrt | *.qrt.* ) qrttoppm "$file" ;; *.tga | *.tga.* | *.targa | *.targa.* ) tgatoppm "$file" ;; *.xim | *.xim.* ) ximtoppm "$file" ;; *.xpm | *.xpm.* | *.xpm2 | *.xpm2.* ) xpmtoppm "$file" ;; *.pi1 | *.pi1.* ) pi1toppm "$file" ;; *.pi3 | *.pi3.* ) pi3topbm "$file" ;; *.spu | *.spu.* ) sputoppm "$file" ;; *.spc | *.spc.* ) spctoppm "$file" ;; *.ybm | *.ybm.* | *.face | *.face.* ) ybmtopbm "$file" ;; * ) echo "$0: unknown file type" 1>&2 exit 1 ;; esac break ;; esac done if [ "$tmpfiles" ] ; then rm -f $tmpfiles fi exit 0