#! /usr/local/bin/scsh \ -e tiff-prober -ll sunterlib.scm -o tiff -o tiff-helpers -o endian -s !# ;**************************************************************************** ; TIFF prober ; ; This code reads a TIFF file and prints out its directory (as well as values ; of a few "important" tags) ; Usage ; tiff-prober tiff-file1... ; Derived from Oleg Kiselyov's tiff-prober.scm 2.0 2003/10/04 02:35:30 ; Changes for the sunterlib ; procedural wrapper TIFF-PROBER as entry point ; argv as parameter ; endian ports moved to endian.scm (define (tiff-prober argv-s) (let ((help (lambda () (cerr nl nl "print information about TIFF file(s)" nl) (cerr nl "Usage") (cerr nl " tiff-prober tiff-file1...") (cerr nl nl "Example:") (cerr nl " tiff-prober im1.tiff im2.tiff" nl nl) (exit))) ) ; (car argv-s) is program's name, as usual (if (or (null? argv-s) (null? (cdr argv-s))) (help)) ; at least one argument, besides argv[0], is expected (for-each (lambda (file-name) (cout nl nl "Analyzing TIFF file " file-name "..." nl) (let* ((eport (make-endian-port (open-input-file file-name) #t)) (tiff-dict (read-tiff-file eport)) (not-spec (lambda () "*NOT SPECIFIED*"))) (print-tiff-directory tiff-dict (current-output-port)) (cout nl "image width: " (tiff-directory-get tiff-dict 'TIFFTAG:IMAGEWIDTH not-spec)) (cout nl "image height: " (tiff-directory-get tiff-dict 'TIFFTAG:IMAGELENGTH not-spec)) (cout nl "image depth: " (tiff-directory-get tiff-dict 'TIFFTAG:BITSPERSAMPLE not-spec)) (cout nl "document name: " (tiff-directory-get tiff-dict 'TIFFTAG:DOCUMENTNAME not-spec)) (cout nl "image description: " nl " " (tiff-directory-get tiff-dict 'TIFFTAG:IMAGEDESCRIPTION not-spec)) (cout nl "time stamp: " (tiff-directory-get tiff-dict 'TIFFTAG:DATETIME not-spec)) (cout nl "compression: " (tiff-directory-get-as-symbol tiff-dict 'TIFFTAG:COMPRESSION not-spec)) (cout nl nl))) (cdr argv-s))) )