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]