XLOADIMAGE(1x)
π XLOADIMAGE π
okay bestie, sit DOWN, because this is xloadimage (also answering to xsetbg and xview), and it is literally the girl who can load images into an X11 window or straight onto your root window. main character energy, no cap. β¨
β¨ NAME β¨
xloadimage, xsetbg, xview β load images into an X11 window or onto the root window π¦
β¨ SYNOPSIS β¨
xloadimage [global_options] {[image_options] image ...}
xloadimage [global_options] [image_options] stdin < image
β¨ DESCRIPTION β¨
Xloadimage displays images in an X11 window, loads them onto the root window, or writes them into a file. Many image types are recognized; use the -supported option to list them. π
If the filename stdin is given, xloadimage will read the image from standard input if this capability is supported by the loader for that image type (most types do support reading from stdin, slay).
If the destination display cannot support the number of colors in the image, the image will be dithered (monochrome destination) or have its colormap reduced (color destination) as appropriate. This can also be done forcibly with the -halftone, -dither, and -colors options.
A variety of image manipulations can be specified, including gamma correction, brightening, clipping, dithering, depth-reduction, rotation, and zooming. Most of these manipulations have simple implementations; speed was opted for above accuracy. it's giving "fast and loose but we ate" π
If you are viewing a large image in a window, the initial window will be at most 90% of the size of the display unless the window manager does not correctly handle window size requests or if you've used the -fullscreen option. You may move the image around in the window by dragging with the first mouse button. The cursor will indicate which directions you may drag, if any. You may exit the window by typing 'q' or '^C' when the keyboard focus is on the window. π
If more than one image file is specified on the command line, each image will be shown in order (except if -merge or -goto are being used).
A wide variety of common image manipulations can be done by mixing and matching the available options. See the section entitled HINTS FOR GOOD IMAGE DISPLAYS for some ideas.
The -dump option causes an image to be written to a file rather than displayed after processing. This allows you to read an image, perform a number of processing operations on it, and save the resultant image. This also allows translation from any of the recognized image types into any of the formats that support dumping. π₯
Xsetbg is equivalent to xloadimage -onroot -quiet and xview is equivalent to xloadimage -view -verbose.
β¨ RESOURCE CLASS β¨
Xloadimage uses the resource class name Xloadimage for window managers which need this resource set. This name changed in version 2.00 and 2.01; some previous versions used the name XLoadImage (which was difficult to predict) or xloadimage (which conflicted with class naming conventions). messy era, honestly π
β¨ GLOBAL OPTIONS β¨
The following options affect the global operation of xloadimage. They may be specified anywhere on the command line. Additionally the -global option can be used to force an image option to apply to all images. π«Ά
-bordercolor β This sets the background portion of the window which is not covered by any images to be color.-configurationβ Displays the image path, image suffixes, and supported filters which will be used when looking for and reading images. These are loaded from~/.xloadimagercand optionally from a systemwide file (normally/usr/lib/xloadimagerc). This replaces the-pathoption.-defaultβ Use the default root weave as the image. This option forces-onroot. If-defaultis used alone, it is the same asxsetrootwith no arguments. If used in conjunction with-tilethis option can be used to place images on the default root weave (see EXAMPLES below).-debugβ Talk to the X server in synchronous mode. This is useful for debugging. If an X error is seen while in this mode, a core will be dumped. π-displaydisplay_name β X11 display name to send the image(s) to.-dumpimage_type[,option[=value]]dump_file β Rather than displaying the loaded and processed image, dump it into an image file of the specified type. For a list of image types that can be dumped, use the-supportedoption. Some image types have options that affect the format of the file that's created. See DUMP OPTIONS below. An image can be dumped in any supported dump format regardless of the original image type, so image file type translation is possible using this option. π-fitβ Force image to use the default visual and colormap. This is useful if you do not want technicolor effects when the colormap focus is inside the image window, but it may reduce the quality of the displayed image. This is on by default if-onrootor-windowidis specified.-forkβ Fork xloadimage. This causes xloadimage to disassociate itself from the shell. This option automatically turns on-quiet.-fullscreenβ Use the entire screen to display images. If combined with-onroot, the image will be zoomed to fill the entire rootwindow.-geometryWxH[{+-X}{+-}Y]β This sets the size of the window onto which the images are loaded to a different value than the size of the image. When viewing an image in a window, this can be used to reduce the size of the destination window. When loading an image onto the root window, this option controls the size of the pixmap which will be loaded onto the root. If the size is smaller than that of the display, the image will be replicated.-gotoimage_name β Forces the next image to be displayed to be the image named image_name. This is useful for generating looped slideshows. If more than one image of the same name as the target exists on the argument list, the first in the argument list is used.-help[option...]β Give information on an option or list of options. If no option is given, a simple interactive help facility is invoked.-identifyβ Identify the supplied images rather than display them.-installβ Forcibly install the image's colormap when the window is focused. This violates ICCCM standards and only exists to allow operation with naive window managers. Use this option only if your window manager does not install colormaps properly. β οΈ like bestie, it said what it said.-listβ List the images which are along the image path.-onrootβ Load image(s) onto the root window instead of viewing in a window. This option automatically sets the-fitoption. This is the opposite of-view. XSetbg has this option set by default.-pathβ Displays miscellaneous information about the program configuration. This option is obsolete and has been replaced by-configuration. π-pixmapβ Force the use of a pixmap as backing-store. This is provided for servers where backing-store is broken (such as some versions of the AIXWindows server). It may improve scrolling performance on servers which provide backing-store.-privateβ Force the use of a private colormap. Normally colors are allocated shared unless there are not enough colors available.-quietβ Forces xloadimage and xview to be quiet. This is the default for xsetbg, but the others like to whistle. π€«-supportedβ List the supported image types.-typetype_name β Forces xloadimage to try to load the image as a particular file type rather than trying to guess. This often improves load performance noticeably.-verboseβ Causes xloadimage to be talkative, telling you what kind of image it's playing with and any special processing that it has to do. This is the default for xview and xloadimage.-versionβ Print the version number and patchlevel of this version of xloadimage.-viewβ View image(s) in a window. This is the opposite of-onrootand the default for xview and xloadimage.-visualvisual_name β Force the use of a specific visual type to display an image. Normally xloadimage tries to pick the best available image for a particular image type. The available visual types are:DirectColor,TrueColor,PseudoColor,StaticColor,GrayScale, andStaticGray. Nonconflicting names may be abbreviated and case is ignored.-windowidhex_window_id β Sets the background pixmap of a particular window ID. The argument must be in hexadecimal and must be preceded by"0x"(eg-windowid 0x40000b. This is intended for setting the background pixmap of some servers which use untagged virtual roots (eg HP-VUE), but can have other interesting applications.
to be continued bestie, there's literally more π
π IMAGE OPTIONS π
Okay bestie, listen up β these are the local girlies. Every option down here only applies to the image it comes right before. It's not global, it's not for everyone, it's personal. π
The following options may precede each image. These options are local to the image they precede.
-at X,Yβ tells xloadimage the exact coordinates to load this image at, on top of the base image. β¨ And if this is an option on the first image and you also passed-onroot, then it drops the image at that spot on the display background instead.-background colorβ use color as the background color instead of whatever the default is (usually white, but ngl it depends on the image type) β this matters when you're transferring a monochrome image onto a color display. π-brighten percentageβ sets a percentage multiplier for a color image's colormap. Over 100 = brighter, under 100 = darker. Simple as. π‘-centerβ centers the image on the base image that got loaded. And again, if this is an option to the first image and-onrootis in play, it centers it on the display background. π―-clip X,Y,W,Hβ clips the image before it loads.XandYare the upper-left corner of the clip area, andWandHare how far the area extends. Pro tip: a zero forWorHmeans "just take the rest of the image". βοΈ-colors nβ sets the max number of colors to use in the image. Basically a way to forcibly reduce the depth of an image. π¨-delay secsβ automatically advances to the next image after secs seconds. You probably want to pair this with the-globalswitch to build a slideshow out of multiple images. ποΈ-ditherβ dithers a color image down to monochrome using a Floyd-Steinberg dithering algorithm. This is what happens by default when you view color images on a monochrome display. It's slower than-halftoneand it messes with image accuracy, but fr fr it usually looks way better. π-foreground colorβ use color as the foreground color instead of black when you're transferring a monochrome image to a color display. Bonus: this can also invert the foreground and background colors of a monochrome image. π-gamma display_gammaβ sets the gamma correction for the display. Default is1.0, and a typical display wants somewhere in the2.0to2.5range. βοΈ-globalβ forces the next option to apply to all images instead of just one specific image. Local image options will temporarily override anything you set with-global. π-grayβ converts an image to grayscale. This is super useful when you're displaying colorful images on servers with limited color capability. It can also convert a bitmap image into a grayscale image, though heads up, the resulting image will be smaller than the original. The optional spelling-greyalso works, iykyk. π©Ά-halftoneβ forces halftone dithering of a color image when displaying on a monochrome display. This option gets ignored on monochrome images. The catch? This dithering algorithm blows an image up by sixteen times. If that's not your vibe,-ditherwon't blow it up but it takes longer to process and is less accurate. π-idelay secsβ okay so this one is no longer supported because-globalgot added. You can get the exact same functionality with-delay. Rip to a legend. π-invertβ inverts a monochrome image. It's just shorthand for-foreground white -background black. π€π€-mergeβ merges this image onto the base image after local processing. The base image is whatever the first image specified was, or the last image that wasn't preceded by-merge. Pair it with-atand-clipand you can build up genuinely complex images. β¨ This option is on by default for all images if-onrootor-windowidis specified.-name image_nameβ forces the next argument to be treated as an image name. Lowkey a lifesaver if your image is literally named-dither. π-newoptionsβ resets globally-specified options. π§Ό-normalizeβ normalizes a color image. π-rotate degreesβ rotates the image degrees clockwise. The number has to be a multiple of90. No freestyle angles, bestie. π-shrinkβ shrinks an image down to fit on the display. This is especially handy with servers that don't support window sizes bigger than the physical screen (like DECWINDOWS servers, if you know you know). π-smoothβ smooths a color image. This reduces blockiness after you zoom an image up. If you use it on a monochrome image, nothing happens, literally nothing. π«₯ Heads up: this can take a while, especially on large images. And you can specify more than one-smoothoption per image, which runs multiple iterations of the smoothing algorithm. π«-tileβ tiles this image (after any necessary merging or tiling) to create a fullscreen image. Usually used to make a big background image to merge other images onto. You can use-geometryto set the new image size to something other than-fullscreen. π§©-title titleβ changes the title of the image. This sets the title bar title if you're displaying in a window, or the NIFF file image title if you're dumping the image. π·οΈ-xzoom percentageβ zooms the X axis of an image by percentage. Over 100 expands it, under 100 compresses it. A value of zero gets ignored. This option and its bestie-yzoomare great for correcting the aspect ratio of images before display. βοΈ-yzoom percentageβ zooms the Y axis of an image by percentage. See-xzoomfor the deets. βοΈ-zoom percentageβ zooms both the X and Y axes by percentage. See-xzoomfor more info. Technically the percentage actually zoomed is the square of the number you supply, since the zoom hits both axes, but the author opted for consistency instead of accuracy. Respect the honesty honestly. π
β¨ EXAMPLES β¨
Loading the rasterfile "my.image" onto the background and replicating it to fill the entire background:
xloadimage -onroot my.image
Centering an image on the default root background:
xloadimage -default -tile my.image
If you're on a monochrome display with a color image, you probably want to dither it for a cleaner (and faster) display:
xloadimage -default -tile -dither my.image
Loading a monochrome image "my.image" onto the background, using red as the foreground color, replicating the image, and overlaying "another.image" onto it at coordinate (10,10):
xloadimage -foreground red my.image -at 10,10 another.image
Centering the rectangular region from 10 to 110 along the X axis and from 10 to the height of the image along the Y axis:
xloadimage -center -clip 10,10,100,0 my.image
Doubling the size of an image:
xloadimage -zoom 200 my.image
Halving the size of an image:
xloadimage -zoom 50 my.image
Brightening a dark image:
xloadimage -brighten 150 my.image
Darkening a bright image:
xloadimage -brighten 50 my.image
πΈ HINTS FOR GOOD IMAGE DISPLAYS πΈ
So images come from like, everywhere, which means they come in a whole buffet of aspect ratios that your display might simply not support. That's where -xzoom and -yzoom come in β they let you change an image's aspect ratio before display. π¦
If you use these options, the recommendation is to increase the size of one dimension instead of shrinking the other, because shrinking loses detail. Periodt. For example, tons of GIF and G3 FAX images have an X:Y ratio of about 2:1. You can fix that for viewing on a 1:1 display with either -xzoom 50 or -yzoom 200 (reduce X axis to 50% of its size, or expand Y axis to 200% of its size, respectively) β but use the latter, so no detail gets lost in the conversion. π
When you're zooming color images up, you can reduce blockiness with -smooth. For zooms of 300% or more, the author recommends two smoothing passes (though this can take a while on slow machines). There will be a noticeable improvement in the image. β
You can do image processing on just a small portion of an image by loading the image more than once and using the -merge, -at and -clip options. Load the image, then merge it with a clipped, processed version of itself. To brighten a 100x100 rectangular portion of an image located at (50,50), for instance, you could type:
xloadimage my.image -merge -at 50,50 -clip 50,50,100,100 -brighten
150 my.image
If you're using a display with a small colormap to show colorful images, try using the -gray option to convert to grayscale. π©Ά
ποΈ PATHS AND EXTENSIONS ποΈ
okay so bestie, the file ~/.xloadimagerc (and optionally a system-wide file) is where you define a whole bunch of configuration options that affect xloadimage. it's giving β¨customizationβ¨.
This file is split into three section, the path section, the extension section, and the filter section. The sections are identified by typing the section name followed by an equals sign, eg "path =". no cap, that's the whole vibe.
The path statement is used to provide a set of search paths to use when looking for an image of a specified name. Separate each path in the list by whitespace (eg one or more spaces, tabs, or newlines). The path is searched in the order it is specified. For example:
path = ~/images /usr/local/images ~fred
will first look for the image name you specified, then look for the name in ~/images (the tilde is expanded to the value of $HOME), then in /usr/local/images, then in user fred's home directory. This allows easy use of image repositories. lowkey genius fr fr.
The extension statement is used to provide a set of default extensions to use when looking for an image of a specified name. Separate each extension in the list by whitespace. The extensions are searched in the order in which they are specified. For example:
extension = .gif .jpg
If you have a file named myimage.gif you could specify the name myimage and xloadimage would append the .gif extension automatically. so you can just be lazy about it and it works π
.
The filter statement is used to describe filter programs, such as "uncompress", which are to be applied to image files automatically. You specify one filter program and any number of recognized extensions following the filter keyword. For example:
filter = uncompress .Z
specifies that the program uncompress should be used as a filter whenever an image file has a .Z extension. By default filters are provided for compressed (.Z) files and GNU zip (.gz) files. See the FILTERS section for more information on defining your own filters.
Any text on a line following a hash-mark (#) is ignored; if you wish to use a hash-mark in a path, extension, or filter you can escape it using a backslash (\).
If you wish to include white-space in a filter program name, path, or extension you can enclose the entire text in double-quotes. For example:
filter = "gzip -cd" .gz
Use backslash (\) characters to allow inclusion of double-quote marks or newlines.
The following is a sample ~/.xloadimagerc file:
# paths to look for images in
path = /usr/local/images # system image repository
~/images # personal images
/usr/include/X11/bitmaps # standard X bitmaps
# default extensions for images
extension = .csun .msun .sun .face .xbm .bm
# invoke GNU zip if a .z or .zip extension is found
filter = "gzip -cd" .z .zip
πΌοΈ IMAGE TYPES πΌοΈ
Xloadimage currently supports many common and some uncommon image types, and can create images in several formats. For a complete list use the -supported option. go check it, it's a whole menu π
πΎ DUMPING IMAGES πΎ
Several image dumpers are included that can be used to create a new image after loading and processing. The NIFF (Native Image File Format) is the simplest and creates images that xloadimage can read the fastest; it is essentially a copy of the internal image format.
Some image dumpers allow options that affect the image output. These options are appended to the image type following a comma and are separated by commas. If a value is desired it can be specified following an equals-sign. For example, to create a monochrome JPEG image file with a quality factor of 80, you would use the following command line:
xloadimage image_name -dump jpeg,quality=80,grayscale new_image.jpg
Option names can be abbreviated but if the abbreviation is too short to be unique the option which will be used is indeterminate. so likeβ¦ be specific bestie, don't gamble π
π FILTERS π
Xloadimage supports automatic filtering by recognizing file extensions. By default "compress" and "gzip" files are recognized and their names passed to appropriate commands to decompress them.
The xloadimage distribution includes a special "smart" uudecoder, called uufilter that can be used to automatically uudecode files for processing. Uufilter ignores extraneous lines in the file so it is particularly useful if the uuencoded file was created by concatenating email or news postings that had headers or line-break indicators included. it literally just skips the noise, iconic behavior π
To make use of uufilter you can add the following to your .xloadimagerc file:
filter = "uufilter -s" .uu .uue
The filter will be automatically invoked on any file with a .uu or .uue extension.
For a list of filters automatically recognized by xloadimage use the -configuration option.
ποΈ SUPPORTED IMAGE OPTIONS ποΈ
The JPEG image dumper supports the following options:
arithmeticβ Use arithmetic encoding.grayscaleβ Force a monochrome (grayscale) image to be created given a color image.nointerleaveβ Create a non-interleaved file.optimizeβ Enable entropy parameter optimization.qualityβ Adjust the quality of the image to be created. The default quality factor is 75; lower values create poorer images.restart intervalβ Set the restart interval in MCU rows, or MCUs if 'b' follows the interval value.smooth smoothing_factorβ Set the smoothing factor. Value should be between 0 and 100, inclusive.
If you are not familiar with the meaning of these options you can ask the Independent JPEG Group (IJG) via email at jpeg@cs.columbia.edu. they're the plug fr π«Ά
The PBM image dumper supports the following options:
normalβ Dump a normal (ascii) PBM/PPM file.rawβ Dump a RawBits format PBM/PPM file. This is the default and results in significantly smaller image files than when usingnormal.
There is no way to dump a PGM format file or a "compact" PBM format file (sorry). π
The TIFF image dumper supports the following options:
compressionβ Image data compression technique. Can be one of:none(no compression),rle(CCITT RLE compression),g3fax(CCITT Group 3 FAX compression),g4fax(CCITT Group 4 FAX compression),lzw(Limpel-Ziv-Welsh compression, the default),jpeg(JPEG compression),next(NeXT run-length compression),rlew(CCITT RLEW compression),mac(Macintosh PackBits compression),packbits(same asmac),thunderscan(ThunderScan compression).
Xloadimage will save using the MINISBLACK, MINISWHITE, COLORMAP, or RGB photometrics as appropriate for its internal image format. There is no way to specify a particular photometric or any other TIFF fields. that's just how it is, periodt π
π AUTHOR π
Jim Frost CenterLine Software jimf@centerline.com
For a more-or-less complete list of other contributors (there are a lot of them), please see the README file enclosed with the distribution. a whole squad, honestly π
π FILES π
xloadimage - the image loader and viewer
xsetbg - pseudonym which quietly sets the background
xview - pseudonym which views in a window
/etc/X11/Xloadimage - default system-wide configuration file
~/.xloadimagerc - user's personal configuration file
Β©οΈ COPYRIGHT Β©οΈ
Copyright (c) 1989, 1993 Jim Frost and others.
Xloadimage is copyrighted material with a very loose copyright allowing unlimited modification and distribution if the copyright notices are left intact. Various portions are copyrighted by various people, but all use a modification of the MIT copyright notice. Please check the source for complete copyright information. The intent is to keep the source free, not to stifle its distribution, so please write to me if you have any questions.
π BUGS π
Zooming dithered images, especially downwards, is UGLY. like, genuinely rough to look at, no notes.
Images can come in a variety of aspect ratios. Xloadimage cannot detect what aspect ratio the particular image being loaded has, nor the aspect ratio of the destination display, so images with differing aspect ratios from the destination display will appear distorted. See HINTS FOR GOOD IMAGE DISPLAYS for more information.
The GIF format allows more than one image to be stored in a single GIF file, but xloadimage will only display the first. it takes the first one and dips, sorry π§
Only GIF87a format is supported.
One of the pseudonyms for xloadimage, xview, is the same name as Sun uses for their SunView-under-X package. This will be confusing if you're one of those poor souls who has to use Sun's XView. π
Some window managers do not correctly handle window size requests. In particular, many versions of the twm window manager use the MaxSize hint instead of the PSize hint, causing images which are larger than the screen to display in a window larger than the screen, something which is normally avoided. Some versions of twm also ignore the MaxSize argument's real function, to limit the maximum size of the window, and allow the window to be resized larger than the image. If this happens, xloadimage merely places the image in the upper-left corner of the window and uses the zero-value'ed pixel for any space which is not covered by the image. This behavior is less-than-graceful but so are window managers which are cruel enough to ignore such details. π
okay that's a wrap bestie!! π this whole page is the 8 May 1991 edition of XLOADIMAGE(1x), so likeβ¦ vintage but still serving. slay, go dump some images β¨ππ¦
π¦ where this page comes from
- debian bookworm: xloadimage 4.1-25+b2 Β· BSD-like
- fedora 43: xloadimage 4.1-41.fc43 Β· MIT
- fedora 44: xloadimage 4.1-42.fc44 Β· MIT
- ubuntu jammy: xloadimage 4.1-25 Β· BSD-like
- ubuntu noble: xloadimage 4.1-25build3 Β· BSD-like
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms