"I swear by my life and my love of it that I will never live for the sake of another man, nor ask another man to live for mine." John Galt in "Atlas Shrugged", by Ayn Rand AUTHOR The author is cristy@dupont.com. This software is NOT shareware. However, I am interested in who might be using it. Please consider sending me a picture postcard of the area where you live. Send postcards to John Cristy 5 Middleton Lane Landenberg, PA 19350 USA AVAILABILITY ImageMagick is available as ftp://ftp.wizards.dupont.com/pub/ImageMagick/ImageMagick-3.7.tar.gz ftp://ftp.x.org/contrib/applications/ImageMagick/ImageMagick-3.7.tar.gz I want ImageMagick to be of high quality, so if you encounter a problem I will investigate. However, be sure you are using the most recent version from ftp.wizards.dupont.com before submitting any bug reports or suggestions. WWW The official ImageMagick WWW page is http://www.wizards.dupont.com/cristy/ImageMagick.html it was created and is maintained by muquit@warm.semcor.com. Another useful ImageMagick WWW page is http://www.vrl.com/Imaging/ To use display as your external image viewer, edit the global mailcap file or your personal mailcap file .mailrc (located at your home directory) and put this entry: image/*; display %s UNIX COMPILATION Type: gunzip ImageMagick-3.7.tar.gz tar xvf ImageMagick-3.7.tar cd ImageMagick You might want to check the values of certain program definitions before compiling. Change the definitions of ApplicationDefaults, DocumentationBrowser, EditorCommand, PostscriptColorDevice, PrintCommand, and RGBColorDatabase in magick/magick.h to suit your local requirements. Next, type. xmkmf make Makefiles make depend make -k If you do not have gunzip(1), it is available as prep.ai.mit.edu:pub/gnu/gzip-1.2.4.shar. If you do not have xmkmf(1), or if xmkmf(1) fails to produce a usable Makefile, type configure make If you use gcc and get a link error, recompile with the option -fPIC. Dec Alpha users might need to compile magick/X.c with -O1 due to an optimizer bug in gcc. Change ReadBinaryType to "r" and WriteBinaryType to "w" in magick/magick.h for FreeBSD. Finally type: display images/aquarium.miff display -monochrome -dither images/aquarium.miff The aquarium and other images are available from anonymous FTP at ftp.wizards.dupont.com, file /pub/ImageMagick.images.tar.gz. If the image colors are not correct use this command: display -visual default images/aquarium.miff You can find other example images in the 'images' directory. Be sure to read the manual pages for the display(1), animate(1), montage(1), import(1), mogrify(1), identify(1), combine(1), and convert(1) utilities. Also read the ImageMagick frequently asked questions in the file Magick.faq. This is required reading. Most of the questions I get via electonic mail are answered in this document. Place display(1) X application defaults in /usr/lib/X11/app-defaults/Display. Use the appropriate name for other clients (e.g. Animate, Montage, etc). The ImageMagick utilities read and write MIFF images. Refer to the end of this message for more information about MIFF. Use convert(1) to convert images to and from the MIFF format. ImageMagick utilities recognizes these image formats: Tag Description ---------------------------------------------------- AVS AVS X image file BMP Microsoft Windows bitmap image file CMYK Raw cyan, magenta, yellow, and black bytes EPS Adobe Encapsulated Postscript FAX Group 3 FITS Flexible Image Transport System GIF Compuserve Graphics image file GRAY Raw gray bytes HDF Hierarchical Data Format. JPEG Joint Photographic Experts Group file interchange format MAP colormap intensities and indices MATTE Raw matte bytes MIFF Magick image file format MPEG Motion Picture Experts Group digital video MTV MTV ray tracer image format PCD Photo CD PCX ZSoft IBM PC Paintbrush file PDF Portable Document Format PICT Apple Macintosh QuickDraw/PICT file PNG Portable Network Graphics PNM Portable bitmap PS Adobe PostScript file PS2 Adobe PostScript Level II file RAD Radiance image file RGB Raw red, green, and blue bytes RLE Utah Raster Toolkit SUN SUN Raster image file format TGA Truevision Targa image file TEXT raw text file; read only TIFF Tagged Image File Format UYVY 16bit/pixel interleaved YUV (e.g. AccomWSD) VICAR Planetary File Format VID Visual Image Directory VIFF Khoros Visualization image file X select image from X server screen XC constant image of X server background color XBM X11 bitmap XPM X11 pixmap XWD X11 window dump YUV CCIR 601 4:1:1 file. YUV3 CCIR 601 4:1:1 files. and for your convenience automatically converts most of these alien image format to MIFF at execution time. However, the MIFF image format has several advantages over most image formats (i.e. runlength encoding, visual image dorectories, digital signature on an image colormap, etc.). ImageMagick is designed to exploit these advantages. Whenever possible convert an alien image format to the MIFF format before using the various ImageMagick programs. Other formats may also be recognized. See CONVERT(1) for a list of valid image formats. You can specify a particular image format by prefixing the image filename with the image type and a colon (i.e. ps:image). To further enhance the capabilities of ImageMagick, you may want to get these programs or libraries: o ImageMagick requires GNU's Ghostscript software available via anonymous FTP as ftp://ftp.cs.wisc.edu/pub/ghost/aladdin/ghostscript-3.51.tar.gz to read the Postscript or the Portable Document format. It is also required to annotate an image when an X server is not available. If Ghostscript is unavailable, the Display Postscript extension is used to rasterize a Postscript document (assuming you define HasDPS). The DPS extension is less robust than Ghostscript in that it will only rasterize one page of a multi-page document. o ImageMagick requires the NCSA HDF library available via anonymous FTP as ftp://ftp.ncsa.uiuc.edu/HDF/HDF3.3r4/tar/HDF3.3r4.tar.Z to read and write the HDF image format. o ImageMagick requires the JBIG-Kit software available via anonymous FTP as ftp://ftp.uni-erlangen.de/pub/doc/ISO/JBIG/jbigkit-0.7.tar.gz to read the JBIG image format. o ImageMagick requires the Independent JPEG Group's software available via anonymous FTP as ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6.tar.gz ftp://ftp.cs.wisc.edu/pub/ghost/jpegsrc.v6.tar.gz to read the JPEG image format. ImageMagick creates progressive JPEG images by default. Use the -interlace none option to create non-progressive images, or undef C_PROGRESSIVE_SUPPORTED in jmorecfg.h before you compile the library, or use JPEG version 5B. Concerning iterative JPEG compression: see Kinoshita and Yamamuro, Journal of Imaging Science and Technology, "Image Quaility with Reiterative JPEG Compression", Volume 39, Number 4, July 1995, 306-312 who claim that (1) the iterative factor of the repetitive JPEG operation had no influence on image quality, and (2) the first compression determined base image quality. o ImageMagick requires the MPEG library available via anonymous FTP as ftp://ftp.mni.mcgill.ca/pub/mpeg/mpeg_lib-1.2.tar.gz ftp://wpi.wpi.edu/contrib/mpeg_lib-1.2.tar.gz to read the MPEG image format. o ImageMagick requires picttoppm from ftp://ftp.x.org/R5contrib/netpbm-1mar1994.tar.gz to read Macintosh PICT images. o ImageMagick requires the PNG library from ftp://ftp.uu.net/graphics/png/src/libpng-0.81.tar.gz to read the PNG image format. See http://quest.jpl.nasa.gov/PNG/ for more details. o ImageMagick requires ra_ppm from Greg Ward's Radiance software available via anonymous FTP as ftp://hobbes.lbl.gov/Radiance2R5.tar.Z to read the Radiance image format. o ImageMagick requires rawtorle from the Utah Raster Toolkit available via anonymous FTP as ftp://cs.utah.edu/pub/urt-3.1b.tar.Z to write the RLE image format. o ImageMagick requires Sam Leffler's TIFF software available via anonymous FTP as ftp://ftp.sgi.com/graphics/tiff/tiff-v3.4beta024-tar.gz to read the TIFF image format. o ImageMagick requires Arnaud Le Hors XPM software available via anonymous FTP as ftp://ftp.x.org/contrib/libraries/xpm-3.4g.tar.gz to read the XPM image format. o ImageMagick requires the ZLIB library from ftp://ftp.uu.net/graphics/png/src/zlib-0.95.tar.gz to read the PNG image format or read and write Zlib compressed MIFF images. o ImageMagick requires get(1) available via anonymous FTP as ftp://liege.ics.uci.edu/pub/arcadia/libwww-perl/ or via Mosaic as http://www.ics.uci.edu/WebSoft/libwww-perl/ to read images specified with a World Wide Web (WWW) uniform resource locator (URL). Get(1) must be in /usr/local/bin. See WWWcommand in magick/image.h to change its location. If you do not have a HTTP server, you can use xtp(1), available in the ImageMagick distribution, for URL's whose protocol is FTP. o ImageMagick requires a background texture for the TILE format and for the -texture option of montage(1). You can use your own or get samples from http://www.europa.com/~yyz/textures/textures.html http://the-tech.mit.edu/cgi-bin/KPT_bgs.pl To display images in the HDF, JBIG, JPEG, MPEG, PNG, TIFF, or XPM format, get the respective archive and build ImageMagick as follows: HDF: cd ImageMagick mkdir hdf cd hdf zcat HDF3.3r4.tar.Z | tar xvf - cp HDF3.3r4/hdf/src/* . < edit Makefile; define machine type; for Solaris 2.? comment out memory.h in hdf/hdfi.h > make libnofortran cd .. HDF and MPEG libraries may conflict over some DCT calls. If so, try reversing the load order to -ljpeg -lhdf or building HDF without jrevdct.o. JBIG: cd ImageMagick gunzip -c jbigkit-0.7.tar.gz | tar xvof - mv jbigkit jbig cd jbig make cd .. JPEG: cd ImageMagick gunzip -c jpegsrc.v6.tar.gz | tar xvof - mv jpeg-6 jpeg cd jpeg configure CC=cc -with-maxmem=7 make cd .. MPEG: cd ImageMagick gunzip -c mpeg_lib-1.2.tar.gz | tar xvof - mv mpeg_lib mpeg cd mpeg < edit Makefile as instructed; for Solaris use the BSD-compatibility libraries or replace bzero with a call to memset > make cd .. PNG: cd ImageMagick gunzip -c zlib-0.95.tar.gz | tar xvf - cd zlib make cd .. mkdir png cd png gunzip -c libpng-0.81.tar.gz | tar xvf - make cd .. TIFF: cd ImageMagick gunzip -c tiff-v3.4beta024.src.tar.Z | tar xvof - mv tiff-v3.4beta018 tiff cd tiff configure make cd .. XPM: cd ImageMagick mv xpm-3.4g xpm cd xpm xmkmf make Makefiles make cd .. If your computer system supports shared libraries you must type make install If you do not have root privileges, type this instead rm libXpm* make -f Makefile.noX Finally, perform the following: cd ImageMagick < edit Magick.tmpl and define Has???? as instructed > xmkmf make Makefiles make clean make If you do not have xmkmf, try < edit Makefile.in and define Has???? as instructed > configure make clean make -k You can now display images in the HDF, JPEG, MPEG, TIFF, or XPM format. If you have HDF, JPEG, MPEG, PNG, TIFF, and XPM sources installed as directed above, you can also type Install sun Substitute the appropriate machine type (aix, hpux, sgi, etc). VMS COMPILATION You might want to check the values of certain program definitions before compiling. Change the definitions of ApplicationDefaults, DocumentationBrowser, EditorCommand, PostscriptColorDevice, PrintCommand, and RGBColorDatabase in magick/magick.h to suit your local requirements. Next, type. Type @make set display/create/node=node_name:: where node_name is the DECNET X server to contact. Use @make_decc or @make_axp instead of @make if appropriate. Finally type: display [.images]aquarium.miff display -monochrome -dither [.images]aquarium.miff Alternatively, get a zipped distribution (with JPEG, MPEG, TIFF, and XPM) from ftp://ftp.wizards.dupont.com/pub/ImageMagick/vms/ImageMagick-3.7.tar.gz ftp://ftp.x.org/contrib/vms/ImageMagick/ImageMagick-3.7.zip The VMS JPEG, TIFF, and XPM source libraries are available on axp.psl.ku.dk in [anonymous.decwindows.lib]. Thanks to pmoreau@cenaath.cena.dgac.fr for supplying invaluable help as well as the VMS versions of the JPEG, MPEG, PNG, TIFF, and XPM libraries. ANIMATION An example animation sequence is available from anonymous FTP at ftp.x.org, file contrib/ImageMagick.animation.tar.gz. Or alternatively, you can create this sequence yourself. Just look at README in the scenes directory. To prevent color flashing on visuals that have colormaps, animate(1) creates a single colormap from the image sequence. This can be rather time consuming. You can speed this operation up by reducing the colors in the image before you `animate' them. Use mogrify(1) to color reduce the images: mogrify -colors 256 scenes/dna.[0-9]* Note, the image sequence in ImageMagick.animation.tar.gz is already reduced. Alternatively, you can use a Standard Colormap; or a static, direct, or true color visual. You can define a Standard Colormap with xstdcmap(1). For example, to use the "best" Standard Colormap, type: xstdcmap -best animate -map best scenes/dna.[0-9]* or to use a true color visual: animate -visual truecolor scenes/dna.[0-9]* Image filenames can appear in any order on the command line if the scene keyword is specified in the MIFF image. Otherwise the images display in the order they appear on the command line. A scene is specified when converting from another image format to MIFF by using the "scene" option with any filter. Be sure to choose a scene number other than zero. For example, to convert a TIFF image to a MIFF image as scene #2, type: convert -scene 2 image.tiff image.miff 16-BIT Imaging By default, ImageMagick uses a color depth of 8 bits (e.g. [0..255]). Any 16-bit image is scaled to 8-bits before any image viewing or processing occurs. If you want to work directly with 16-bit images (e.g. [0..65535]), edit Magick.tmpl or Makefile.in and define QuantumLeap as instructed in the respective file. Next type make clean make In 16-bit mode expect to use about 25% more memory on the average. Also expect some processing to be slower than in 8-bit mode (e.g. Oil Painting, Segment, etc). In general, 16-bit mode is only useful if you have 16-bit images that you want to manipulate and save the transformed image back to a 16-bit image format (e.g. PNG, VIFF). MIFF IMAGE FORMAT MIFF is an image format which I developed. I like it because 1) It is machine independent. It can be read on virtually any computer. No byte swapping is necessary. 2) It has a text header. Most image formats are coded in binary and you cannot easily tell attributes about the image. Use more(1) on MIFF image files and the attributes are displayed in text form. 3) It can handle runlength-encoded images. Although most scanned images do not benefit from runlength-encoding, most computer-generated images do. Images of mostly uniform colors have a high compression ratio and therefore take up less memory and disk space. 4) It allows a scene number to be specified. This allows you to specify an animation sequence out-of-order on the command line. The correct order is determined by the scene number of each image. 5) MIFF computes a digital signature for colormapped images. This is useful for animating a sequence of images on a colormapped X server. If all signatures match in the image sequence, computing a global colormap is not necessary. 6) There is a `montage' keyword allowing an image to act as a visual image directory. See display(1) for more details. One way to get an image into MIFF format is to use convert(1). or read it from an X window using the 'import' program. Alternatively, type the necessary header information in a file with a text editor. Next, dump the binary bytes into another file. Finally, type cat header binary_image | display -write image.miff - For example, suppose you have a raw red, green, blue image file on disk that is 640 by 480. The header file would look like this: id=ImageMagick columns=640 rows=480 : The image file would have red, green, blue tuples (rgbrgbrgb...). Refer to the display(1) manual page for more details. COPYRIGHT Copyright 1995 E. I. du Pont de Nemours and Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of E. I. du Pont de Nemours and Company not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. E. I. du Pont de Nemours and Company makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. E. I. du Pont de Nemours and Company disclaims all warranties with regard to this software, including all implied warranties of merchantability and fitness, in no event shall E. I. du Pont de Nemours and Company be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or performance of this software.