home *** CD-ROM | disk | FTP | other *** search
- From: mark%eggman.uucp@nosc.mil (Mark Hanson)
- Newsgroups: comp.sources.misc
- Subject: v42i097: icontact - perl script to create contact sheets of images, v1.4, Part01/02
- Date: 17 May 1994 12:14:46 -0500
- Organization: Sterling Software
- Sender: kent@sparky.sterling.com
- Approved: kent@sparky.sterling.com
- Message-ID: <csm-v42i097=icontact.121424@sparky.sterling.com>
- X-Md4-Signature: 1c6f85dfbbe85be1586b763a7df5bc1d
-
- Submitted-by: mark%eggman.uucp@nosc.mil (Mark Hanson)
- Posting-number: Volume 42, Issue 97
- Archive-name: icontact/part01
- Environment: UNIX, perl, pbmplus
- Supersedes: icontact: Volume 33, Issue 30-31
-
- README file for icontact-1.4 (13MAY94)
-
- This is the fifth release of icontact.
-
- New features include (look at the man page for the specifics):
- - optional right justification of the rows. (-R)
- - fixed a bug which made the -n option inoperable.
- - .gz extension commands for gzip and gunzip programs.
- - now informational messages go to stdout and
- warnings and errors go to stderr.
- - new signal name generator (no more static tables).
- - .ps (PostScript file) processing command using Ghostscript.
- - additional label showing the image's original size. (-m)
- - added hpcdtoppm extension processing command (not tested because
- I don't have any Photo CD's).
- - option to prevent scaling of images. (-Z)
- - simple xvtoppm filter to convert xv's "Visual Schnauzer" files
- into ppm.
- - option to scale all the images by the same amount. (-M)
- - case insensitive uniq of file names. (-U)
- - the usual miscellaneous fixes and cleanup.
-
- This release does not contain all the features that have been requested
- because of time constraints. Here are some of the suggestions I've
- received that I'll be trying to work on in the future:
-
- * decode command to build contact sheets of multi-page PS files
- * decode command to build contact sheets of the frames of MPEG movies
- * have a _list_ of multiple formats to try if a file has no known suffix
- * commands to execute when the decoding fails for a file
- * parallel execution, for use with multiple CPU's or many machines on a net
- * header and footer titles, with %-style escape sequences
- * top, bottom or center justification of images (bottom being default)
- * user defined sorting method for file names
- * there might be a bug that causes temporary files to not be removed
- * meta options, like psfilt
- * upgrade to perl 5 and a newer version of pbmplus if one is released
-
- To get started using icontact, follow the instructions in the file
- named INSTALL.
-
- Here is the DESCRIPTION section from the man page:
-
- icontact is a perl script that takes a bunch of image files and
- creates contact sheets. icontact determines the file format by the
- file name extension of the input files and then uses internal tables
- to look up the commands it needs to execute in order to convert the
- images to the ppm format. Once in the ppm format, icontact uses
- various pbmplus commands to create the contact sheets. icontact is
- particularly useful if you have lots of image files in all sorts of
- different formats and you want to create an index of all of them
- without converting them all to a common format first.
-
- icontact is highly configurable. It can probably do anything you
- would ever want this type of program to do -- and more.
-
- Besides perl, icontact requires the pbmplus package by Jef
- Poskanzer. The Independent JPEG Group's package (cjpeg, djpeg) is
- also necessary if you are going to be processing any JPEG files.
- Ghostscript can be used to turn PostScript files into ppm files for
- inclusion in a contact sheet. It should not be difficult to make
- icontact use filters from other packages as long as there is a way to
- go to and from the ppm format with them.
-
- Copyright status:
- Copyright (C) 1992, 1993, 1994 Mark B. Hanson
- Permission to use, copy, modify, and distribute this software and its
- documentation for any purpose and without fee is hereby granted,
- provided that both the above copyright notice and this permission
- notice appear in all copies and in supporting documentation. This
- software is provided ``as is'' without express or implied warranty.
-
- I would appreciate hearing from you if you find icontact useful or have
- suggestions on how to make it better. icontact has only been tested on
- a Sun SPARCstation running SunOS 4.1.2, perl 4.036, and the 10dec91
- release of the pbmplus toolkit. If icontact fails in your environment
- in some funny way, and you're running older versions of the supporting
- software, my first suggestion is going to be to upgrade your software.
- Most of the problems I've been contacted about have resulted from old
- versions of the supporting software. Otherwise, let me know so I can
- fix it.
-
- Please send all e-mail regarding icontact to mark%eggman.uucp@nosc.mil
- (note the new address). Thanks.
-
- I hope you find icontact useful,
- Mark
-
- ---
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 2)."
- # Contents: icontact-1.4 icontact-1.4/INSTALL icontact-1.4/Makefile
- # icontact-1.4/README icontact-1.4/THANKS icontact-1.4/icontact.1
- # icontact-1.4/xvtoppm.1 icontact-1.4/xvtoppm.c
- # Wrapped by mark@eggman on Fri May 13 20:43:20 1994
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test ! -d 'icontact-1.4' ; then
- echo shar: Creating directory \"'icontact-1.4'\"
- mkdir 'icontact-1.4'
- fi
- if test -f 'icontact-1.4/INSTALL' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'icontact-1.4/INSTALL'\"
- else
- echo shar: Extracting \"'icontact-1.4/INSTALL'\" \(1880 characters\)
- sed "s/^X//" >'icontact-1.4/INSTALL' <<'END_OF_FILE'
- X@(#)$Id: INSTALL,v 1.11 1994/03/05 06:28:24 mark Exp $
- X
- XCopyright (C) 1992, 1993, 1994 Mark B. Hanson
- X Permission to use, copy, modify, and distribute this software and its
- X documentation for any purpose and without fee is hereby granted,
- X provided that both the above copyright notice and this permission
- X notice appear in all copies and in supporting documentation. This
- X software is provided "as is" without express or implied warranty.
- X
- XInstallation instructions for icontact:
- X---------------------------------------
- X
- XTo install icontact, follow these instructions:
- X
- X 0. Make sure that you have perl and the pbmplus packages
- X installed and in your path. I recommend perl-4.036 and
- X pbmplus-10dec91, as that's what I'm using.
- X
- X 1. Change the first line of the icontact script to invoke perl as
- X it is installed on your system.
- X
- X 2. Make sure that someone has run h2ph on signal.h on your machine.
- X icontact requires signal.ph. In the event you can't get signal.ph
- X installed, look at the icontact script, comment out the signal handling
- X code marked `the fancy way' and uncomment the code marked
- X `the not-so-fancy way'.
- X
- X 3. The xvtoppm filter can be built just by typing `make' (granted that
- X you have a compiler/development software on your machine).
- X
- X 4. `make install' will install everything for you. By default, the
- X Makefile is set up to install the stuff in /usr/local/{bin,man/man1}.
- X You can change this by editing the first few lines of the Makefile.
- X
- X 5. Read the man pages.
- X
- X 6. You're done. Enjoy.
- X
- X 7. If you like icontact and/or use it often, let me know about it;
- X it's incentive for me to update it and write other nifty things.
- X If you have trouble installing or running icontact, send a good
- X description of your problem to me at mark%eggman.uucp@nosc.mil.
- X I may be able to help.
- END_OF_FILE
- if test 1880 -ne `wc -c <'icontact-1.4/INSTALL'`; then
- echo shar: \"'icontact-1.4/INSTALL'\" unpacked with wrong size!
- fi
- # end of 'icontact-1.4/INSTALL'
- fi
- if test -f 'icontact-1.4/Makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'icontact-1.4/Makefile'\"
- else
- echo shar: Extracting \"'icontact-1.4/Makefile'\" \(1748 characters\)
- sed "s/^X//" >'icontact-1.4/Makefile' <<'END_OF_FILE'
- X# @(#)$Id: Makefile,v 1.10 1994/05/14 03:42:57 mark Exp $
- X
- X# Copyright (C) 1992, 1993, 1994 Mark B. Hanson
- X# Permission to use, copy, modify, and distribute this software and its
- X# documentation for any purpose and without fee is hereby granted,
- X# provided that both the above copyright notice and this permission
- X# notice appear in all copies and in supporting documentation. This
- X# software is provided "as is" without express or implied warranty.
- X
- XBIN=/usr/local/bin
- XMAN=/usr/local/man/man1
- XMANEXT=1
- X
- XCC=cc
- XCFLAGS=-O
- X
- Xall: icontact xvtoppm
- X
- Xicontact: force
- X chmod +x icontact
- X
- Xxvtoppm: xvtoppm.c
- X $(RM) xvtoppm
- X $(CC) $(CFLAGS) xvtoppm.c -o xvtoppm
- X
- Xinstall: all
- X cp icontact $(BIN)
- X cp xvtoppm $(BIN)
- X cp icontact.1 $(MAN)/icontact.$(MANEXT)
- X chmod 444 $(MAN)/icontact.$(MANEXT)
- X cp xvtoppm.1 $(MAN)/xvtoppm.$(MANEXT)
- X chmod 444 $(MAN)/xvtoppm.$(MANEXT)
- X
- X#
- X# Author's use only...
- X#
- XVERSION=1.4
- Xkit: clean
- X mkdir icontact-$(VERSION)
- X chmod 0755 icontact-$(VERSION)
- X cp README INSTALL THANKS Makefile icontact icontact.1 xvtoppm.c \
- X xvtoppm.1 icontact-$(VERSION)
- X chmod 0444 icontact-$(VERSION)/INSTALL
- X chmod 0444 icontact-$(VERSION)/Makefile
- X chmod 0444 icontact-$(VERSION)/README
- X chmod 0444 icontact-$(VERSION)/THANKS
- X chmod 0755 icontact-$(VERSION)/icontact
- X chmod 0444 icontact-$(VERSION)/icontact.1
- X chmod 0644 icontact-$(VERSION)/xvtoppm.c
- X chmod 0444 icontact-$(VERSION)/xvtoppm.1
- X makekit icontact-$(VERSION) icontact-$(VERSION)/*
- X (cat HEADER; \
- X echo; \
- X cat README; \
- X echo; \
- X echo "---"; \
- X echo; \
- X cat Part01) > tmp; mv tmp Part01
- X (cat HEADER; \
- X echo; \
- X echo "---"; \
- X echo; \
- X cat Part02) > tmp; mv tmp Part02
- X $(RM) -r icontact-$(VERSION)
- X
- Xclean: force
- X $(RM) xvtoppm xvtoppm.o
- X $(RM) Part??
- X
- Xforce:
- END_OF_FILE
- if test 1748 -ne `wc -c <'icontact-1.4/Makefile'`; then
- echo shar: \"'icontact-1.4/Makefile'\" unpacked with wrong size!
- fi
- # end of 'icontact-1.4/Makefile'
- fi
- if test -f 'icontact-1.4/README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'icontact-1.4/README'\"
- else
- echo shar: Extracting \"'icontact-1.4/README'\" \(4467 characters\)
- sed "s/^X//" >'icontact-1.4/README' <<'END_OF_FILE'
- X@(#)$Id: README,v 1.19 1994/05/14 03:42:58 mark Exp $
- X
- XREADME file for icontact-1.4 (13MAY94)
- X
- XThis is the fifth release of icontact.
- X
- XNew features include (look at the man page for the specifics):
- X - optional right justification of the rows. (-R)
- X - fixed a bug which made the -n option inoperable.
- X - .gz extension commands for gzip and gunzip programs.
- X - now informational messages go to stdout and
- X warnings and errors go to stderr.
- X - new signal name generator (no more static tables).
- X - .ps (PostScript file) processing command using Ghostscript.
- X - additional label showing the image's original size. (-m)
- X - added hpcdtoppm extension processing command (not tested because
- X I don't have any Photo CD's).
- X - option to prevent scaling of images. (-Z)
- X - simple xvtoppm filter to convert xv's "Visual Schnauzer" files
- X into ppm.
- X - option to scale all the images by the same amount. (-M)
- X - case insensitive uniq of file names. (-U)
- X - the usual miscellaneous fixes and cleanup.
- X
- XThis release does not contain all the features that have been requested
- Xbecause of time constraints. Here are some of the suggestions I've
- Xreceived that I'll be trying to work on in the future:
- X
- X * decode command to build contact sheets of multi-page PS files
- X * decode command to build contact sheets of the frames of MPEG movies
- X * have a _list_ of multiple formats to try if a file has no known suffix
- X * commands to execute when the decoding fails for a file
- X * parallel execution, for use with multiple CPU's or many machines on a net
- X * header and footer titles, with %-style escape sequences
- X * top, bottom or center justification of images (bottom being default)
- X * user defined sorting method for file names
- X * there might be a bug that causes temporary files to not be removed
- X * meta options, like psfilt
- X * upgrade to perl 5 and a newer version of pbmplus if one is released
- X
- XTo get started using icontact, follow the instructions in the file
- Xnamed INSTALL.
- X
- XHere is the DESCRIPTION section from the man page:
- X
- X icontact is a perl script that takes a bunch of image files and
- X creates contact sheets. icontact determines the file format by the
- X file name extension of the input files and then uses internal tables
- X to look up the commands it needs to execute in order to convert the
- X images to the ppm format. Once in the ppm format, icontact uses
- X various pbmplus commands to create the contact sheets. icontact is
- X particularly useful if you have lots of image files in all sorts of
- X different formats and you want to create an index of all of them
- X without converting them all to a common format first.
- X
- X icontact is highly configurable. It can probably do anything you
- X would ever want this type of program to do -- and more.
- X
- X Besides perl, icontact requires the pbmplus package by Jef
- X Poskanzer. The Independent JPEG Group's package (cjpeg, djpeg) is
- X also necessary if you are going to be processing any JPEG files.
- X Ghostscript can be used to turn PostScript files into ppm files for
- X inclusion in a contact sheet. It should not be difficult to make
- X icontact use filters from other packages as long as there is a way to
- X go to and from the ppm format with them.
- X
- XCopyright status:
- X Copyright (C) 1992, 1993, 1994 Mark B. Hanson
- X Permission to use, copy, modify, and distribute this software and its
- X documentation for any purpose and without fee is hereby granted,
- X provided that both the above copyright notice and this permission
- X notice appear in all copies and in supporting documentation. This
- X software is provided ``as is'' without express or implied warranty.
- X
- XI would appreciate hearing from you if you find icontact useful or have
- Xsuggestions on how to make it better. icontact has only been tested on
- Xa Sun SPARCstation running SunOS 4.1.2, perl 4.036, and the 10dec91
- Xrelease of the pbmplus toolkit. If icontact fails in your environment
- Xin some funny way, and you're running older versions of the supporting
- Xsoftware, my first suggestion is going to be to upgrade your software.
- XMost of the problems I've been contacted about have resulted from old
- Xversions of the supporting software. Otherwise, let me know so I can
- Xfix it.
- X
- XPlease send all e-mail regarding icontact to mark%eggman.uucp@nosc.mil
- X(note the new address). Thanks.
- X
- XI hope you find icontact useful,
- XMark
- END_OF_FILE
- if test 4467 -ne `wc -c <'icontact-1.4/README'`; then
- echo shar: \"'icontact-1.4/README'\" unpacked with wrong size!
- fi
- # end of 'icontact-1.4/README'
- fi
- if test -f 'icontact-1.4/THANKS' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'icontact-1.4/THANKS'\"
- else
- echo shar: Extracting \"'icontact-1.4/THANKS'\" \(1696 characters\)
- sed "s/^X//" >'icontact-1.4/THANKS' <<'END_OF_FILE'
- X@(#)$Id: THANKS,v 1.8 1994/03/02 06:52:51 mark Exp $
- X
- X# Copyright (C) 1992, 1993, 1994 Mark B. Hanson
- X# Permission to use, copy, modify, and distribute this software and its
- X# documentation for any purpose and without fee is hereby granted,
- X# provided that both the above copyright notice and this permission
- X# notice appear in all copies and in supporting documentation. This
- X# software is provided "as is" without express or implied warranty.
- X
- XThanks to:
- X----------
- X+ Larry Wall (lwall@netlabs.com)
- X for perl.
- X+ Jef Poskanzer (jef@well.sf.ca.us)
- X for the pbmplus package.
- X+ Thomas Lane and the Independent JPEG Group
- X for {c,d}jpeg
- X+ Roger Hayes (roger.hayes@eng.sun.com)
- X for sending me an implementation of the -W option.
- X+ Larry W. Virden (lwv26@cas.org)
- X for suggesting the -O option and the feature that allows you to take an
- X old contact sheet and add new images to it.
- X+ Marco Pauck (pauck@mcshh.hanse.de)
- X for pointing out that I was using some possibly uninitialized variables.
- X+ Mark Valentine (mark@spider.co.uk)
- X for suggesting the -L option and all the color options.
- X+ Shawn Koppenhoefer (shawn@litsun.epfl.ch),
- X Scott Larsen (larsen@oes.orst.edu),
- X G.D.Pratt (gerry@seq1.cc.keele.ac.uk), and
- X Steve Messinger (stevem@hpdml90.boi.hp.com)
- X for finding my missing semicolon.
- X+ Paul Close (pdc@sgi.com)
- X for reporting that the -n option was broken and a bunch of suggestions.
- X+ Scott Larsen (cascorp!slarsen@pail.rain.com)
- X for reporting that the -n option was broken.
- X+ Jon A. Tankersley (tank@amoco.com)
- X for the idea for the Ghostscript decode command and a bunch of suggestions.
- X+ Jonathan Harris (jhar@dcs.ed.ac.uk)
- X for the idea for the -m option.
- END_OF_FILE
- if test 1696 -ne `wc -c <'icontact-1.4/THANKS'`; then
- echo shar: \"'icontact-1.4/THANKS'\" unpacked with wrong size!
- fi
- # end of 'icontact-1.4/THANKS'
- fi
- if test -f 'icontact-1.4/icontact.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'icontact-1.4/icontact.1'\"
- else
- echo shar: Extracting \"'icontact-1.4/icontact.1'\" \(22355 characters\)
- sed "s/^X//" >'icontact-1.4/icontact.1' <<'END_OF_FILE'
- X.\" @(#)$Id: icontact.1,v 1.18 1994/05/14 03:43:02 mark Exp $
- X.TH ICONTACT 1 "icontact\-1.4 (13MAY94)"
- X.\"
- X.SH NAME
- Xicontact - create contact sheets from images of different formats
- X.SH SYNOPSIS
- X\fBicontact\fP [ \fIswitches\fP ] [ { \fIimage file\fP | \fIparameter
- Xfile\fP } ... ]
- X.\"
- X.SH DESCRIPTION
- X.PP
- X\fIicontact\fP is a \fIperl\fP script that takes a bunch of image files
- Xand creates contact sheets. \fIicontact\fP determines the file format
- Xby the file name extension of the input files and then uses internal
- Xtables to look up the commands it needs to execute in order to convert
- Xthe images to the ppm format. Once in the ppm format, \fIicontact\fP
- Xuses various \fIpbmplus\fP commands to create the contact sheets.
- X\fIicontact\fP is particularly useful if you have lots of image files
- Xin all sorts of different formats and you want to create an index of
- Xall of them without converting them all to a common format first.
- X.PP
- X\fIicontact\fP is highly configurable. It can probably do anything you
- Xwould ever want this type of program to do \(em and more.
- X.PP
- XBesides \fIperl\fP, \fIicontact\fP requires the \fIpbmplus\fP package
- Xby Jef Poskanzer. The Independent JPEG Group's package (\fIcjpeg\fP,
- X\fIdjpeg\fP) is also necessary if you are going to be processing any
- XJPEG files. Ghostscript can be used to turn PostScript files into ppm
- Xfiles for inclusion in a contact sheet. It should not be difficult to
- Xmake \fIicontact\fP use filters from other packages as long as there is
- Xa way to go to and from the ppm format with them.
- X.SH OPTIONS
- X.PP
- XSwitches that do not take arguments may be combined into a single
- Xswitch: \fB\-abBlv\fP. Switches that take arguments must be followed
- Xby their arguments with space in between: \fB\-c\ 10\ \-r\ 5\fP. The
- Xfancy way combine all these switches is: \fB\-abBlvc\ 10\ \-r\ 5\fP.
- XThat is, you can combine the switches together in any way you like so
- Xlong as the switches that take an argument are followed by said
- Xargument with a space in between. If you don't want to get fancy, just
- Xspecify each switch by itself:
- X\fB\-a\ \-b\ \-B\ \-c\ 10\ \-l\ \-r\ 5\ \-v\fP.
- X.\"
- X.PP
- XIn all cases in which a switch does not take an argument,
- X\fB\-switch\fP will turn the switch on, and \fB+switch\fP will turn the
- Xswitch off. For example, \fB\-l\fP will turn labels on, and \fB+l\fP
- Xwill turn labels off. This can be useful if you have a particular set
- Xof switches set in a configuration file and you want to temporarily
- Xdisable a switch to make a sheet without changing the configuration
- Xfile. If a set of switches are combined into a single switch that
- Xleads with either a \fB+\fP or a \fB\-\fP, the \fB+\fP or \fB\-\fP
- Xaffects all the switches in that set of switches. If a switch that
- Xtakes an argument is specified with a leading \fB+\fP, it is assumed
- Xthat you meant \fB\-\fP.
- X.\"
- X.PP
- XAn argument of \fB\-\-\fP terminates the options list and signals the
- Xbeginning of the file list.
- X.\"
- X.PP
- XSwitches can be specified in two places: the command line and a
- Xconfiguration file. The command line switches are the most potent \(em
- Xthey override everything. The switches in a configuration file are the
- Xnext most potent \(em they are only overridden by the command line
- Xswitches. The internal defaults of \fIicontact\fP are overridden by
- Xboth the command line and configuration file.
- X.\"
- X.de o0
- X.IP \fB\(+-\\$1\fP
- X..
- X.de o1
- X.IP "\fB\-\\$1\fP \fI\\$2\fP"
- X..
- X.\"
- X.o0 a
- XMake the output sheets fit into the size specified with the \fB\-x\fP
- Xand \fB\-y\fP switches. Setting the \fB\-x\fP and \fB\-y\fP switches
- Xto the size of your screen will yield contact sheets which are no
- Xlarger than your screen. The \fB\-r\fP and \fB\-c\fP switches will be
- Xignored if the \fB\-a\fP switch is present because the number of rows
- Xand columns is figured out dynamically and will probably change from
- Xsheet to sheet unless the \fB\-i\fP switch is specified or all the
- Xsource images are of the same size to begin with.
- X.\"
- X.o0 B
- XAdd a border to each image in the contact sheet. The colors of the
- Xborder stripes may be specified with the \fB\-z\fP switch.
- X.\"
- X.o0 b
- XUse the \fIbasename(1)\fP of the file name instead of the whole path
- Xname to the file in labels. This switch will be ignored if the
- X\fB\-l\fP switch is not specified.
- X.\"
- X.o1 C color
- XUse \fIcolor\fP for the background of the contact sheet. The default
- Xvalue is ``black''.
- X.\"
- X.o1 c n
- XMake the contact sheets with \fIn\fP columns of images. This switch is
- Xignored if the \fB\-a\fP switch is specified. The default value is 7.
- X.\"
- X.o1 D format
- XIf a file without a suffix is processed, assume it is a \fIformat\fP
- Xfile. The default value is ``.gif''.
- X.\"
- X.o1 d dir
- XPut the contact sheets in \fIdir\fP when completed. The default value
- Xis ``.''.
- X.\"
- X.o1 F file
- X\fIfile\fP will be used with \fIpbmtext\fP as a font for labels. Each
- Ximage's height will be increased by the height of the characters in the
- Xfont. This switch will be ignored if the \fB\-l\fP switch is not
- Xspecified. By default, \fIpbmtext\fP's internal font is used. Check out
- X\fIpbmtext\fP's man page for instructions on how to create a font file.
- X.\"
- X.o1 f format
- XEncode the finished contact sheets as \fIformat\fP files. The default
- Xvalue is ``.ppm.Z''.
- X.\"
- X.o0 g
- XGenerate a parameter file for each contact sheet produced. This
- Xparameter file will be named \fIprefix###\fP.\fIformat\fP.\fIsuffix\fP,
- Xwhere \fIprefix\fP is the contact sheet name, \fI###\fP is the number
- Xof the contact sheet, \fIformat\fP is the file format of the contact
- Xsheet, and \fIsuffix\fP is the parameter file suffix specified with the
- X\fB\-P\fP switch. When \fIicontact\fP sees one of these files on the
- Xcommand line, it looks in the parameter file for the names and
- Xlocations of images inside the sheet specified by removing the
- X\fIsuffix\fP from the parameter file name. These images will be cut
- Xout and put in the new output sheets instead of being fully processed
- Xagain. For best results when using parameter files on the command
- Xline, select no quantization and a lossless file format both when the
- Xsheet is first created and also when its parameter file is used on the
- Xcommand line. This will prevent information loss if this operation is
- Xperformed multiple times.
- X.\"
- X.o0 help
- XThis is a special case which will print out a help message explaining
- X\fIicontact\fP's switches. Any other unrecognized switch will do the
- Xsame.
- X.\"
- X.o1 h n
- XMake each image in the contact sheets a maximum of \fIn\fP pixels
- Xhigh. The aspect ratio of the images will not be changed. This switch
- Xwill be ignored if the \fB\-X\fP switch is also specified. The default
- Xvalue is 100.
- X.\"
- X.o1 I color
- XUse \fIcolor\fP for the area around the images when the \fB\-i\fP
- Xswitch is used. This switch will be ignored if the \fB\-i\fP switch is
- Xnot also specified. The default value is ``black''.
- X.\"
- X.o0 i
- XMake all of the images the same size. The size of the images is
- Xdetermined by the dimensions specified with the \fB\-w\fP and \fB\-h\fP
- Xswitches. If the shrunken image is smaller than the dimensions
- Xspecified with the \fB\-w\fP and \fB\-h\fP switches, the image will be
- Xpadded with blank space. The color of this blank space can be set with
- Xthe \fB\-I\fP switch. Use of this switch can create contact sheets
- Xwith lots of blank space between images. This switch cannot be used
- Xwith the \fB\-X\fP or \fB\-Y\fP switches.
- X.\"
- X.o1 K file
- XUse \fIfile\fP as the configuration file. The default configuration
- Xfile name is ``~/.icrc''. Putting this switch in the configuration
- Xfile will have no effect since once you're in a configuration file,
- Xit's too late to switch to another one.
- X.\"
- X.o0 k
- XDon't reference the configuration file. Putting this switch in the
- Xconfiguration file will have no effect since once you're in the
- Xconfiguration file, it's too late to back out.
- X.\"
- X.o0 L
- XWhen creating sheets, use left justification on the rows instead of the
- Xdefault center justification. If this option is used in conjunction
- Xwith the \fB\-R\fP option, the options will negate each other.
- X.\"
- X.o0 l
- XAttach a label containing the image's file name below each image. This
- Xname may be truncated if the label is wider than the image. The
- Xbehavior of this switch can be changed with the \fB\-b\fP, \fB\-F\fP,
- Xand \fB\-T\fP switches.
- X.\"
- X.o1 M scale
- XScale all the input images to \fIscale\fP*100 percent of their original
- Xsize. The value of \fIscale\fP may be in the range (0.0, infinity),
- Xalthough using values towards the upper end of that range will require a
- Xgreat deal of memory. Values of \fIscale\fP greater than 1.0 will
- Xenlarge the input images (i.e., a \fIscale\fP of 2.0 will double the
- Xsize), and values less than 1.0 will shrink the input images (i.e., a
- X\fIscale\fP of 0.5 will halve the size). This switch may not be used
- Xwith the \fB-i\fP, \fB-X\fP, \fB-Y\fP, or \fB-Z\fP switches for
- Xsemi-obvious reasons. The default is not to scale images in this way.
- X.\"
- X.o0 m
- XAttach a label containing the image's size in pixels
- X(\fIwidth\fPx\fIheight\fP) below each image. If the \fB\-l\fP switch
- Xis also specified, this label will go under the label containing the
- Xfile name. This label may be truncated if the label is wider than the
- Ximage. The behavior of this switch can be changed with the \fB\-F\fP
- Xand \fB\-T\fP switches.
- X.\"
- X.o1 N value
- XUse \fIvalue\fP as the nice value for all child processes. The default
- Xvalue is 0. Only root may specify negative nice values.
- X.\"
- X.o1 n file
- XTake the file names from \fIfile\fP and add them to the ones specified
- Xon the command line, if any. The file names in \fIfile\fP must be one
- Xper line. These file names will be processed after the file names
- Xspecified on the command line.
- X.\"
- X.o0 O
- XFind the number for the first sheet by looking in the destination
- Xdirectory for sheets with the same prefix and format that we are going
- Xto create. Take the highest numbered one, increment, and this is the
- Xnew starting number for the new sheets. If there are no files with the
- Xsame prefix and format in the destination directory, the new sheets
- Xwill start with 001. This switch cannot be used with the \fB\-o\fP
- Xswitch.
- X.\"
- X.o1 o n
- XThe output sheet numbering will begin with \fIn\fP and increase from
- Xthere. This switch cannot be used with the \fB\-O\fP switch. The
- Xdefault value is 001.
- X.\"
- X.o1 P suffix
- X\fIsuffix\fP will be used as the extension of the contact sheet
- Xparameter files if the \fB\-g\fP switch is specified. See the
- X\fB\-g\fP switch description for more details. The default value is
- X``.icp''.
- X.\"
- X.o1 p prefix
- XName the contact sheets \fIprefix###.format\fP, where \fI###\fP is the
- Xnumber of the contact sheet and \fIformat\fP is the format of the
- Xcontact sheet. The default value is ``ic\-''.
- X.\"
- X.o1 Q "quantization program"
- XUse \fIquantization program\fP to quantize the contact sheets. The
- X\fIquantization program\fP should accept ppm format files as input and
- Xtake one numeric argument specifying the number of colors to be left in
- Xthe contact sheets. It is possible to use a pipeline such as: ``cjpeg
- X\-Q 100 | djpeg \-q''. The default value is: ``ppmquant \-fs''.
- X.\"
- X.o1 q n
- XQuantize the contact sheets down to \fIn\fP colors. A value of 0 will
- Xturn off quantization. The default value is 0.
- X.\"
- X.o0 R
- XWhen creating sheets, use right justification on the rows instead of
- Xthe default center justification. If this option is used in
- Xconjunction with the \fB\-L\fP option, the options will negate each
- Xother.
- X.\"
- X.o1 r n
- XMake the contact sheets with \fIn\fP rows of images. This switch is
- Xignored if the \fB\-a\fP switch is specified. The default value is 7.
- X.\"
- X.o0 S
- XSort the file names taken from the command line (and, optionally, from
- Xthe file specified with the \fB\-n\fP switch) into alphabetical order
- Xbefore making the sheet.
- X.\"
- X.o0 s
- XBe silent. Don't output anything except warnings and fatal errors.
- X.\"
- X.o1 T color
- XUse \fIcolor\fP as the color of the text of the image labels. The
- Xformat of \fIcolor\fP may be any that \fIpgmtoppm\fP understands. The
- Xdefault value is ``white''.
- X.\"
- X.o1 t tmpdir
- XUse \fItempdir\fP to hold \fIicontact\fP's intermediate files.
- X\fIicontact\fP tries to minimize the amount of temporary space it
- Xneeds, but it's disk space requirements can be large depending upon the
- Xparticular operation it is performing. If you have a tiny /tmp
- Xdirectory, you'll want to use this switch to aim \fIicontact\fP at a
- Xlarger chunk of disk. The default value is ``/tmp''.
- X.\"
- X.o0 U
- XDelete duplicate entries in the list of image file names, even if they
- Xdiffer in capitalization. For example, ``Foo.gif'' and ``foo.gif''
- Xwould compare as if the same. The first file with any particular name
- Xwill make it through, but following files with the same name will be
- Xdeleted from the file name list. The default is to allow duplicate
- Xfile names. If this command is used with the \fB\-u\fP switch, the
- X\fB\-u\fP switch will be ignored and the comparisons will be done in a
- Xcase insensitive fashion.
- X.\"
- X.o0 u
- XDelete duplicate entries in the list of image file names. The first
- Xfile with any particular name will make it through, but following files
- Xwith the same name will be deleted from the file name list. The
- Xdefault is to allow duplicate file names. If this command is used with
- Xthe \fB\-U\fP switch, the \fB\-U\fP switch will be override and the
- Xcomparisons will be done in a case insensitive fashion.
- X.\"
- X.o0 v
- XCause all sorts of possibly interesting output to be printed to the
- Xscreen. The output includes the current parameters of \fIicontact\fP
- Xand all the shell commands it is running. If you're having difficulty
- Xgetting \fIicontact\fP to do what you want it to do, try using this
- Xswitch to see what \fIicontact\fP is doing behind your back.
- X.\"
- X.o1 w n
- XMake each image in the contact sheets a maximum of \fIn\fP pixels
- Xwide. The aspect ratio of the images will not be changed. This switch
- Xwill be ignored if the \fB\-Y\fP switch is also specified. The default
- Xvalue is 100.
- X.\"
- X.o0 X
- XThis switch will make all the images the same width. Their heights
- Xwill be whatever they are when the image comes out of \fIpnmscale\fP.
- XThe aspect ratios of the images will not be changed. Wide images will
- Xbe short and tall images will be tall. This switch cannot be used with
- Xthe \fB\-i\fP or \fB\-Y\fP switches.
- X.\"
- X.o1 x n
- XWhen used with the \fB\-a\fP switch, \fIn\fP specifies the width of the
- Xoutput sheets in pixels. This switch will be ignored unless the
- X\fB\-a\fP switch is specified. The default value is 1152.
- X.\"
- X.o0 Y
- XThis switch will make all the images the same height. Their widths
- Xwill be whatever they are when the image comes out of \fIpnmscale\fP.
- XWide images will be wide and tall images will be skinny. The aspect
- Xratios of the images will not be changed. This switch cannot be used
- Xwith the \fB\-i\fP or \fB\-X\fP switches.
- X.\"
- X.o1 y n
- XWhen used with the \fB\-a\fP switch, \fIn\fP specifies the height of
- Xthe output sheets in pixels. This switch will be ignored unless the
- X\fB\-a\fP switch is specified. The default value is 900.
- X.\"
- X.o0 Z
- XThis switch will prevent the images from being scaled. For obvious
- Xreasons, you should probably only use this option when the input images
- Xare fairly small. This switch cannot be used with the \fB\-i\fP
- Xswitches. If it is used with the \fB\-X\fP, \fB\-Y\fP, \fB\-w\fP, or
- X\fB\-h\fP switches, \fB\-Z\fP will override.
- X.\"
- X.o1 z "color [color ...]"
- XWhen used with the \fB\-B\fP switch, the layers of the borders around
- Xthe images will be striped (from the inside out) with the colors
- Xspecified after this switch. Double quotes should be used to group the
- Xcolors together with white space in between. The colors can be in any
- Xformat that \fIppmmake\fP understands. The default is ``white black
- Xwhite''.
- X.\"
- X.SH ENVIRONMENT
- X.IP "\fBTMPDIR, TEMPDIR\fP"
- XThese environment variables can be used to set the location of
- X\fIicontact\fP's temporary directory. If both \fBTMPDIR\fP and
- X\fBTEMPDIR\fP are set, a warning will be printed and the value of
- X\fBTMPDIR\fP will be used. If only one of them is set, that one will
- Xbe used. This value will be overridden if the \fB\-t\fP switch is used
- Xon the command line or in the configuration file.
- X.\"
- X.SH FILES
- X.IP "configuration file"
- XThe name of the default configuration file is \fB.icrc\fP in your home
- Xdirectory. The proper syntax of this file is as follows: Comments
- Xbegin with a \fB#\fP and terminate with a newline. Lines may be
- Xblank. Double quotes may be used to group words together after the
- Xkeyword \fBswitches\fP. Configuration lines begin with one of the
- Xfollowing keywords: \fBencode\fP, \fBdecode\fP, \fBswitches\fP, or
- X\fBquantize\fP. Lines beginning with \fBencode\fP are used to define
- Xcommands \fIicontact\fP will use to encode files into a specific
- Xformat. Lines beginning with \fBdecode\fP are used to define commands
- X\fIicontact\fP will use to decode files of a specific format. Lines
- Xbeginning with \fBquantize\fP are used to define the quantization value
- Xof sheets created in a specific format. The format of lines beginning
- Xwith \fBencode\fP, \fBdecode\fP or \fBquantize\fP is this:
- X.sp
- X.ce
- X<\fIkeyword\fP>\ <\fIformat\fP>\ <\fIvalue\fP>
- X.sp
- X<\fIformat\fP> may not contain white space, but <\fIvalue\fP> may. If
- X<\fIkeyword\fP> is \fBquantize\fP, then <\fIvalue\fP> must be a non
- Xnegative integer. The format of lines beginning with \fBswitches\fP is
- Xthis:
- X.sp
- X.ce
- X\fBswitches\fP\ <\fIcommand\ line\ switches\fP>
- X.sp
- X<\fIcommand\ line\ switches\fP> may be any set of switches that you can
- Xspecify on the command line and may contain white space.
- X.sp
- X.nf
- X.ft CW
- X# sample icontact configuration file
- X
- Xswitches \-g # parameter file generation
- Xswitches \-B # borders
- Xswitches \-l # add labels
- Xswitches \-b # basename(1) the labels
- Xswitches \-S # sort all the filenames
- Xswitches \-v # verbose
- Xswitches \-a # automatic sizing
- Xswitches \-x 640 # screen width
- Xswitches \-y 480 # screen height
- Xswitches \-Q ppmquant # quantization program
- Xswitches \-z "red white blue" # stripes
- X# OR:
- X# switches \-gBlBSvWax 640 \-y 480 \-Q ppmquant \-z "red white blue"
- X
- Xencode jpg cjpeg \-o
- Xdecode jpg djpeg
- X
- Xencode ppm
- Xdecode ppm
- X
- Xquantize gif 256
- Xquantize jpg 0
- X.ft R
- X.sp
- X.fi
- X.\"
- X.IP "contact sheet parameter files"
- XThese files are lists of file names (one per line) followed by the
- Ximage's \fIx\fP and \fIy\fP offsets into the contact sheet and then the
- Ximage's height and width. They are created by using the \fB\-g\fP
- Xswitch. These files allow blank lines and comments beginning with
- X\fB#\fP and terminating with a newline.
- X.\"
- X.IP \fBTMPDIR/icb\-$$\fP
- Xa temporary file for storing the image border when the \fB\-i\fP and
- X\fB\-B\fP switches are specified
- X.\"
- X.IP \fBTMPDIR/icc\-$$\fP
- Xtemporary file for storing a color pixmap for background colorization
- X.\"
- X.IP \fBTMPDIR/ice\-$$\fP
- Xa temporary file for holding the image pad when the \fB\-i\fP switch is
- Xspecified
- X.\"
- X.IP \fBTMPDIR/ici#\-$$\fP
- Xtemporary files for storing images before they are made into rows
- X.\"
- X.IP \fBTMPDIR/icp#\-$$\fP
- Xtemporary files for holding expanded sheets while \fIicontact\fP cuts
- Ximages out of them
- X.\"
- X.IP \fBTMPDIR/icr#\-$$\fP
- Xtemporary files for storing rows before they are made into sheets
- X.\"
- X.IP \fBTMPDIR/ict\-$$\fP
- Xa temporary file for storing labels and borders
- X.\"
- X.SH "SEE ALSO"
- X\fIbasename(1)\fP, \fIperl(1)\fP, \fIpbm(5)\fP, \fIpgm(5)\fP,
- X\fIppm(5)\fP, \fIpnm(5)\fP, \fIcjpeg(1)\fP, \fIdjpeg(1)\fP, \fIgs(1)\fP,
- X\fIgzip(1)\fP, \fIgunzip(1)\fP, \fIcompress(1)\fP, \fIhpcdtoppm(1)\fP
- X.\"
- X.SH DIAGNOSTICS
- XThe diagnostic messages are intended to be self explanatory. If
- X\fIicontact\fP dies and tells you that a pipeline returned an
- Xunsuccessful exit code and you can't tell what caused the crash, try
- Xrunning the same command with the \fB\-v\fP switch. You should then be
- Xable to see an error message indicating what part of the pipeline was
- Xnot successful.
- X.\"
- X.SH BUGS
- X.PP
- XIf an image's file name has dots in it that do not come before a
- Xrecognized file format extension, the unrecognized extensions will be
- Xignored and \fIicontact\fP will try to decode the image using the
- Xremaining extensions. It may guess wrong, though, and the decode
- Xcommand may fail.
- X.PP
- X\fIicontact\fP allows you to specify stupid output formats like
- X``.gif.Z''.
- X.PP
- XWhen in automatic sheet sizing mode (\fB\-a\fP), if a single processed
- Ximage is larger than the dimensions of a sheet, this image will appear
- Xin a sheet all by itself, and the sheet will be larger than you
- Xspecified with \fB\-x\fP and \fB\-y\fP.
- X.PP
- XThe parameter file processing code will fail if it is used on filenames
- Xthat contain white space.
- X.PP
- XWhen images are cut out of previously made contact sheets by specifying
- Xa parameter file on the command line, they are not rescaled. So, even
- Xthough you may have specified \fB\-w 100 \-h 100\fP this time, the
- Ximages cut from the previously made contact sheet will be the same size
- Xthey were when that sheet was first made. This shouldn't be a problem
- Xfor you if you choose an image size early and stick with it.
- X.PP
- XIf a particular file name appears in two or more different parameter
- Xfiles on the command line, the image will be displayed more than once,
- Xbut the image used will be cut from the last parameter file listed.
- XA warning will be printed if this situation occurs.
- X.PP
- XThe dimensions of images specified in parameter files are listed as
- Xthe dimensions of the sheet the image was cut from when the \fB\-m\fP
- Xswitch is used. The original size information for each image is not
- Xstored in the parameter files.
- X.\"
- X.SH AUTHOR
- XMark Hanson
- X.br
- Xmark%eggman.uucp@nosc.mil
- X.br
- X\&...!nosc!eggman!mark
- X.sp
- XBug reports, patch donations, suggestions, questions, and money are all welcome.
- X.sp
- X.\"
- X.SH COPYRIGHT
- X\fIicontact\fP is:
- X.br
- XCopyright (C) 1992, 1993, 1994 Mark B. Hanson
- X.br
- X.in +2m
- XPermission to use, copy, modify, and distribute this software and its
- Xdocumentation for any purpose and without fee is hereby granted,
- Xprovided that both the above copyright notice and this permission
- Xnotice appear in all copies and in supporting documentation. This
- Xsoftware is provided ``as is'' without express or implied warranty.
- X.in -2m
- END_OF_FILE
- if test 22355 -ne `wc -c <'icontact-1.4/icontact.1'`; then
- echo shar: \"'icontact-1.4/icontact.1'\" unpacked with wrong size!
- fi
- # end of 'icontact-1.4/icontact.1'
- fi
- if test -f 'icontact-1.4/xvtoppm.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'icontact-1.4/xvtoppm.1'\"
- else
- echo shar: Extracting \"'icontact-1.4/xvtoppm.1'\" \(1572 characters\)
- sed "s/^X//" >'icontact-1.4/xvtoppm.1' <<'END_OF_FILE'
- X.\" @(#)$Id: xvtoppm.1,v 1.7 1994/05/14 03:43:05 mark Exp $
- X.nh
- X.TH XVTOPPM 1 "xvtoppm-1.0 (13MAY94)"
- X.\"
- X.SH NAME
- Xxvtoppm \- convert from \fIxv\fP's .xvpics format to ppm
- X.\"
- X.SH SYNOPSIS
- X\fBxvtoppm\fP \fI.xvpics/file\fP
- X.\"
- X.SH DESCRIPTION
- X.PP
- X\fIxvtoppm\fP is a simple-minded script that converts \fIxv\fP's ``Visual
- XSchnauzer'' files into the ppm format. This makes it possible to use all
- Xthose files to create a contact sheet without scaling down the original
- Ximages again. Check out \fIicontact\fP's \fB\-Z\fP option which turns off
- Xscaling of the input files. Also check out the \fB\-M\fP option which
- Xwill allow you to, say, double the size of each image.
- X.\"
- X.SH "SEE ALSO"
- X\fIxv(1)\fP, \fIicontact(1)\fP, \fIppm(1)\fP
- X.\"
- X.SH BUGS
- X.PP
- X\fIxvtoppm\fP doesn't take into account all the information on the first line
- Xof the input files. If the format ever changes from the ``P7 332'' version
- Xcurrently in use, this program will fail.
- X.\"
- X.SH AUTHOR
- XMark Hanson
- X.br
- Xmark%eggman.uucp@nosc.mil
- X.br
- X\&...!nosc!eggman!mark
- X.sp
- XBug reports, patch donations, suggestions, questions,
- Xjob offers, and money are all welcome.
- X.sp
- X.\"
- X.SH COPYRIGHT
- X\fIxvtoppm\fP is:
- X.br
- XCopyright (C) 1992, 1993, 1994 Mark B. Hanson
- X.br
- X.in +2m
- XPermission to use, copy, modify, and distribute this software and its
- Xdocumentation for any purpose and without fee is hereby granted,
- Xprovided that both the above copyright notice and this permission
- Xnotice appear in all copies and in supporting documentation. This
- Xsoftware is provided ``as is'' without express or implied warranty.
- X.in -2m
- END_OF_FILE
- if test 1572 -ne `wc -c <'icontact-1.4/xvtoppm.1'`; then
- echo shar: \"'icontact-1.4/xvtoppm.1'\" unpacked with wrong size!
- fi
- # end of 'icontact-1.4/xvtoppm.1'
- fi
- if test -f 'icontact-1.4/xvtoppm.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'icontact-1.4/xvtoppm.c'\"
- else
- echo shar: Extracting \"'icontact-1.4/xvtoppm.c'\" \(2372 characters\)
- sed "s/^X//" >'icontact-1.4/xvtoppm.c' <<'END_OF_FILE'
- X/*
- X** xvtoppm: A simple-minded filter to convert xv's .xvpics to ppm format.
- X**
- X** @(#)$Id: xvtoppm.c,v 1.6 1994/03/02 06:53:09 mark Exp $
- X**
- X** Copyright (C) 1992, 1993, 1994 Mark B. Hanson
- X** Permission to use, copy, modify, and distribute this software and its
- X** documentation for any purpose and without fee is hereby granted,
- X** provided that both the above copyright notice and this permission
- X** notice appear in all copies and in supporting documentation. This
- X** software is provided "as is" without express or implied warranty.
- X**
- X** to compile:
- X** cc -O xvtoppm.c -o xvtoppm
- X**
- X** to use:
- X** xvtoppm .xvpics/file.xv > file.ppm
- X*/
- X
- X#include <stdio.h>
- X
- Xint main(argc, argv)
- X int argc;
- X char *argv[];
- X{
- X FILE *file;
- X char magic[3];
- X char cmap[4];
- X char buffer[256];
- X int width;
- X int height;
- X int maxval;
- X unsigned char *data;
- X int i;
- X
- X if (argc != 2) {
- X fprintf(stderr, "%s: usage: %s xv-icon-file\n", argv[0], argv[0]);
- X exit(1);
- X }
- X
- X if ((file = fopen(argv[1], "r")) == NULL) {
- X fprintf(stderr, "%s: fopen(%s) failed!\n", argv[0], argv[1]);
- X exit(1);
- X }
- X
- X if (fscanf(file, "%2s %3s\n", magic, cmap) != 2) {
- X fprintf(stderr, "%s: failed to read magic number!\n", argv[0]);
- X exit(1);
- X }
- X
- X if (strncmp(magic, "P7", 2)) {
- X fprintf(stderr, "%s: yikes! `%s' != `P7'!\n", argv[0], magic);
- X exit(1);
- X }
- X
- X do {
- X if (fgets(buffer, 255, file) == NULL) {
- X perror("fgets");
- X exit(1);
- X }
- X } while (buffer[0] == '#');
- X
- X if (sscanf(buffer, "%d %d %d\n", &width, &height, &maxval) != 3) {
- X fprintf(stderr, "%s: failed to read file dimensions!\n", argv[0]);
- X exit(1);
- X }
- X
- X if ((data = (unsigned char *)malloc(width * height)) == NULL) {
- X fprintf(stderr, "%s: failed to malloc %d bytes!\n", argv[0],
- X width * height);
- X exit(1);
- X }
- X
- X if (fread((char *)data, sizeof(char), width * height, file) !=
- X width * height) {
- X fprintf(stderr, "%s: failed to read %d bytes!\n", argv[0],
- X width * height);
- X exit(1);
- X }
- X
- X fprintf(stdout, "P6\n%d %d\n255\n", width, height);
- X
- X for (i = 0; i < width * height; i++) {
- X fprintf(stdout, "%c%c%c",
- X (data[i] & 0340),
- X (data[i] & 0034) << 3,
- X (data[i] & 0003) << 6);
- X }
- X
- X free(data);
- X
- X if (fclose(file) == EOF) {
- X fprintf(stderr, "%s: fclose(%s) failed!", argv[0], argv[1]);
- X exit(1);
- X }
- X
- X exit(0);
- X} /* main */
- END_OF_FILE
- if test 2372 -ne `wc -c <'icontact-1.4/xvtoppm.c'`; then
- echo shar: \"'icontact-1.4/xvtoppm.c'\" unpacked with wrong size!
- fi
- # end of 'icontact-1.4/xvtoppm.c'
- fi
- echo shar: End of archive 1 \(of 2\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked both archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-
- exit 0 # Just in case...
-