XLI - X11 Image Loading Utility WHAT IS IT? xli is a version of xloadimage. This utility will view several types of images under X11, or load images onto the X11 root window. xli can also be used on some (32 bit) MSDOS systems. The current version (1.16) supports: CMU Window Manager raster files Faces Project images Fuzzy Bitmap (.fbm) images GEM bit images GIF images (Including GIF89a compatibility) G3 FAX images JFIF style jpeg images McIDAS areafiles MacPaint images -> Windows, OS/2 BMP Image Monochrome PC Paintbrush (.pcx) images -> Photograph on CD Image Portable Bitmap (.pbm, .pgm, .ppm) images Sun monochrome rasterfiles Sun color RGB rasterfiles Targa (.tga) files Utah Raster Toolkit (.rle) files X pixmap (.xpm) files (Version 1, 2C and 3) X10 bitmap files X11 bitmap files X Window Dump (except TrueColor and DirectColor) A variety of options are available to modify images prior to viewing. These options include clipping, dithering, depth reduction, zoom (either X or Y axis independently or both at once), brightening or darkening, input gamma correction, and image merging. When applicable, these options are done automatically (eg. a color image to be displayed on a monochrome screen will be dithered automatically). A utility (xlito) is provided that allows these viewing options to be appended to the image files. CHANGES FROM XLI 1.15 Added BMP (MS Windows, OS/2) file format loader. Added PCD (PhotoCD) file format loader. Bowed to the pressure of the number of JPEGs that are gamma corrected. JPEG images now are assumed to have a gamma of 2.2. Fixed bug in gif loader (files with local colormaps came out black) Improved the quality of color quantization. Added an -expand option that forces the image to be expanded to 24 bit. Added a -title option. Added interactive image rotation using the 'l' and 'r' keys. Numerous bug fixes. (See the patches file for more details and credits) HOW IS XLI RELATED TO XLOADIMAGE ? xli version 1.00 was based on xloadimage version 3.01. xli version 1.16 has many improvements over xli 1.00. xloadimage is maintained by Jim Frost - jimf@saber.com xli is maintained by Graeme Gill - graeme@labtam.oz.au Please read the README.orig file, which is the original xloadimage README file for xloadimage info and credits. WHERE CAN I GET IT ? Two files: xli.README xli.1.16.tar.gz on ftp.x.org in /contrib/applications, and mirrors of this archive. Note that ftp.x.org will recompress as .Z on the fly. COMPILING There are a variety of ways to compile xli, depending on what environment you have. The easiest way of compiling it is to use the Imakefile. Simply run 'xmkmf' (which should be in your systems /usr/bin/X11 or somewhere equivalent), which should make a Makefile suitable for your system. Type 'make' to then build xli. It can be installed in the standard place (along with its aliases xview and xsetbg) by typing 'make install'. The manual entry can be installed using 'make install.man'. If using the Imakefile is not possible, then you can try using Makefile.std. Choose your target from std BSD environment sysv SYSV environment gcc BSD using gcc sysv-gcc SYSV using older gcc and use something like: make -f Makefile.std target Makefile.std can also be used to re-make the Imakefile, Makefile.dos, the tar archive, or a DOS ready .zip archive. There are a few compilation flags that you may need/want to change. This can be done in the Makefile.std file. The defines are: -DHAVE_GUNZIP if you want to use gunzip rather than uncompress on .Z files -DNO_UNCOMPRESS if you system doesn't have uncompress or gunzip. The JPEG code needs a compilation flag that tells it whether right shift (>>) is signed or unsigned on your machine. If it's unsigned, add -DRIGHT_SHIFT_IS_UNSIGNED The defines should be added to the MISC_DEFINES= line in the Makefile.std file. After doing this you may need to re-bulild the Imakefile or Makefile.dos if you are using them. You can do this using: make -f Makefile.std Imakefile or make -f Makefile.std Makefile.dos COMPILING FOR DOS USING DJGPP 1.11 xli can be used on 32 bit 80x86 systems running MSDOS if compiled using djgpp version 1.11. Since it has to run without the aid of a windowing system or window manager, the user interface leaves a lot to be desired, but it does work. It is important to check that your video card is supported by the djgpp go32 environment, and that it is configured appropriately. Assuming that you have unpacked the tar archive on a UNIX system, and have the zip utility in your path, the first step is to create xli.zip: make -f Makefile.std zip This can then be transfered to the MSDOS system and unpacked in a suitable directory using unzip or pkunzip. Assuming the djgpp compiling environment is set up suitably, xli can be compiled using ndmake: ndmake -f Makefile.dos xlito now seems to work with djgpp 1.11 (it didn't under version 1.09) xli can then be run as usual. For details on setting up djgpp, please read the djgpp docs. There is an optional compile flag -DDO_ARG_EXP that can be added to the MISC_DEFINES in Makefile.std, or to DEFINES in Makefile.dos that turns on argument expansion processing within xli. This is somewhat more powerful than that provided by go32, but to get it to work fully you will have to turn off the go32 argument expansion by setting the appropriate go32 options. Please note that this DOS release probably has several undiscovered bugs, as it has not been as extensively tested as the X11 version. OTHER NOTES The file build-jpeg is intended to aid those who want to port the latest Independent JPEG Group's JPEG software to xli. It semi-automatically creates the jpeglib.h and jpeglib.c files used by xli. Note that future versions of the jpeg library may be require updating of the xli specific jpeg.h and jpeg.c files. Note that one change was made to the file jmemnobs.c, "methods" was renamed to "smethods" so as to avoid clashing with the variable of the same name in jmemmgr.c Please also note that the JPEG library README file is included at the top of jpeglib.c, and gives distribution and copyright information for this library. PRAISE, SUGGESTIONS AND BUG REPORTS xli has been developed in a fairly limited hardware environment, and not all combinations of displays and/or image formats and options have been tested. xli is useful to me, and maybe it will be useful to you. Praise, suggestions, and bug reports should go to: Graeme Gill graeme@labtam.oz.au [I may not be able to respond promptly to mail during the period 94/7/30 to 94/8/15]