1 MDISPLAY Display an image on any workstation running X SYNOPSIS $ mdisplay [ options ...] file [ [ options ...] file ...] 2 DESCRIPTION Display is a machine architecture independent image processing and display program. It can display an image on any workstation display running an X server. Display can read and write many of the more popular image formats (e.g. JPEG, TIFF, PNM, etc.). You can perform these functions on the image: o display information about the image o write the image to a file o print the image to a Postscript printer o delete the image file o load an image from a file o display the next image o display the former image o display a sequence of images as a slide show o select the image to display by its thumbnail rather than name o undo last image transformation o restore the image to its original size o refresh the image o toggle the colormap type: : Shared or Private o half the image size o double the image size o resize the image o trim the image edges o crop the image o cut the image o flop image in the horizontal direction o flip image in the vertical direction o rotate the image 90 degrees clockwise o rotate the image 90 degrees counter-clockwise o rotate the image o shear the image o invert the colors of the image o vary the color brightness o vary the color saturation o vary the image hue o gamma correct the image o sharpen the image contrast o dull the image contrast o perform histogram equalization on the image o perform histogram normalization on the image o negate the image colors o reduce the speckles within an image o eliminate peak noise from an image o detect edges within the image o emboss an image o oil paint an image o convert the image to grayscale o set the maximum number of unique colors in the image o annotate the image with text o add a border to the image o composite image with another o edit an image pixel color o edit the image matte information o add an image comment o display information about this program o discard all images and exit program o change the level of magnification 2 EXAMPLES To scale an image of a cockatoo to exactly 640 pixels in width and 480 pixels in height and position the window at location (200,200), use: $ mdisplay -geometry 640x480+200+200! cockatoo.miff To display an image of a cockatoo without a border centered on a backdrop, use: $ mdisplay +borderwidth -backdrop cockatoo.miff To tile an image of a cockatoo onto the root window, use: $ mdisplay -window root cockatoo.miff To display a visual image directory of all your JPEG images, use: $ mdisplay 'vid:*.jpg' To display a MAP image that is 640 pixels in width and 480 pixels in height with 256 colors, use: $ mdisplay -size 640x480+256 cockatoo.map 2 OPTIONS -backdrop display the image centered on a backdrop. This backdrop covers the entire workstation screen and is useful for hiding other X window activity while viewing the image. The color of the backdrop is specified as the background color. Refer to X RESOURCES for details. -blur blur an image. -border xfP surround the image with a border or color. See X(1) for details about the geometry specification. The color of the border is obtained from the X server and is defined as bordercolor (class borderColor). See X(1) for details. -colormap type the type of colormap: Shared or Private. This option only applies when the default X server visual is PseudoColor or GrayScale. Refer to -visual for more details. By default, a shared colormap is allocated. The image shares colors with other X clients. Some image colors could be approximated, therefore your image may look very different than intended. Choose Private and the image colors appear exactly as they are defined. However, other clients may go "technicolor" when the image colormap is installed. -colors value preferred number of colors in the image. The actual number of colors in the image may be less than your request, but never more. Note, this is a color reduction option. Images with less unique colors than specified with this option will remain unchanged. Refer to quantize(9) for more details. Note, options -dither, -colorspace, and -treedepth affect the color reduction algorithm. -colorspace value the type of colorspace: GRAY, OHTA, RGB, XYZ, YCbCr, YIQ, YPbPr, or YUV. Color reduction, by default, takes place in the RGB color space. Empirical evidence suggests that distances in color spaces such as YUV or YIQ correspond to perceptual color differences more closely than do distances in RGB space. These color spaces may give better results when color reducing an image. Refer to quantize(9) for more details. The -colors or -monochrome option is required for this option to take effect. -comment string annotate an image with a comment. By default, each image is commented with its file name. Use this option to assign a specific comment to the image. Optionally you can include the image filename, type, width, height, or scene number by embedding special format characters. Embed %f for filename, %m for magick, %w for width, %h for height, %s for scene number, or \n for newline. For example, -comment "%m:%f %wx%h" produces an image comment of MIFF:bird.miff 512x480 for an image titled bird.miff and whose width is 512 and height is 480. If the first character of string is @, the image comment is read from a file titled by the remaining characters in the string. -compress type the type of image compression: QEncoded or RunlengthEncoded. Use this option with -write to specify the the type of image compression. See miff(5) for details. Specify +compress to store the binary image in an uncompressed format. The default is the compression type of the specified image file. -contrast enhance or reduce the image contrast. This option enhances the intensity differences between the lighter and darker elements of the image. Use -contrast to enhance the image or +contrast to reduce the image contrast. -crop x{+-}{+-} preferred size and location of the cropped image. See X(1) for details about the geometry specification. Use cropping to apply image processing options to, or display, a particular area of an image. Use -crop 0x0 to remove edges that are the background color. The equivalent X resource for this option is cropGeometry (class CropGeometry). See X RESOURCES for details. -delay seconds display the next image after pausing. This option is useful when viewing several images in sequence. Each image will display and wait the number of seconds specified before the next image is displayed. The default is to display the image and wait until you choose to display the next image or terminate the program. -density x vertical and horizontal density of the image. This option specifies an image density for a Postscript page. The default is 72 dots per inch in the horizontal and vertical direction. Use this option to alter the default density. -despeckle reduce the speckles within an image. -display host:display[.screen] specifies the X server to contact; see X(1). -dither apply Floyd/Steinberg error diffusion to the image. The basic strategy of dithering is to trade intensity resolution for spatial resolution by averaging the intensities of several neighboring pixels. Images which suffer from severe contouring when reducing colors can be improved with this option. The -colors or -monochrome option is required for this option to take effect. -edge detect edges within an image. -enhance apply a digital filter to enhance a noisy image. -equalize perform histogram equalization to the image. -flip create a "mirror image" by reflecting the image scanlines in the vertical direction. -flop create a "mirror image" by reflecting the image scanlines in the horizontal direction. -gamma value level of gamma correction. The same color image displayed on two different workstations may look different due to differences in the display monitor. Use gamma correction to adjust for this color difference. Reasonable values extend from 0.8 to 2.3. You can apply separate gamma values to the red, green, and blue channels of the image with a gamma value list delineated with commas (i.e. 1.7,2.3,1.2). -geometry {%}x{%}{+-}{+-}{!} preferred size and location of the image window. See X(1) for details about the geometry specification. By default, the window size is the image size and the location is choosen by you when it is mapped. By default, the width and height are maximum values. That is, the image is expanded or contracted to fit the width and height value while maintaining the aspect ratio of the image. Append an exclamation point to the geometry to force the image size to exactly the size you specify. For example, if you specify 640x480! the image width is set to 640 pixels and height to 480. If only one factor is specified, both the width and height assume the value. To specify a percentage width or height instead, append %. The image size is multiplied by the width and height percentages to obtain the final image dimensions. To increase the size of an image, use a value greater than 100 (e.g. 125%). To decrease an image's size, use a percentage less than 100. When displaying an image on an X server, and is relative to the root window. The equivalent X resource for this option is imageGeometry (class ImageGeometry). See X RESOURCES for details. -interlace type the type of interlacing scheme: NONE, LINE, or PLANE. This option is used to specify the type of interlacing scheme for raw image formats such as RGB or YUV. NONE means do not interlace (RGBRGBRGBRGBRGBRGB...), LINE uses scanline interlacing (RRR...GGG...BBB...RRR...GGG...BBB...), and PLANE uses plane interlacing (RRRRRR...GGGGGG...BBBBBB...). -label name assign a label to an image. Use this option to assign a specific label to the image. Optionally you can include the image filename, type, width, height, or scene number in the label by embedding special format characters. Embed %f for filename, %m for magick, %w for width, %h for height, or %s for scene number. For example, -label "%m:%f %wx%h" produces an image label of MIFF:bird.miff 512x480 for an image titled bird.miff and whose width is 512 and height is 480. If the first character of string is @, the image label is read from a file titled by the remaining characters in the string. When converting to Postscript, use this option to specify a header string to print above the image. -map type display image using this Standard Colormap type. Choose from these Standard Colormap types: best default gray red green blue The X server must support the Standard Colormap you choose, otherwise an error occurs. Use list as the type and display(1) searches the list of colormap types in top-to-bottom order until one is located. See xstdcmap(1) for one way of creating Standard Colormaps. -matte store matte channel if the image has one. -modulate value vary the brightness, saturation, and hue of an image. Specify the percent change in brightness, the color saturation, and the color hue separated by commas. For example, to increase the color brightness by 20% and decrease the color saturation by 10% and leave the hue unchanged, use: -modulate 20,-10. -monochrome transform the image to black and white. -negate apply color inversion to image. The red, green, and blue intensities of an image are negated. -noise reduce the noise in an image with a noise peak elimination filter. The principal function of noise peak elimination filter is to smooth the objects within an image without losing edge information and without creating undesired structures. The central idea of the algorithm is to replace a pixel with its next neighbor in value within a 3 x 3 window, if this pixel has been found to be noise. A pixel is defined as noise if and only if this pixel is a maximum or minimum within the 3 x 3 window. -normalize transform image to span the full range of color values. This is a contrast enhancement technique. -page x{+-}{+-} size and location of the Postscript page. Use this option to specify the dimensions of the Postscript page in picas or a TEXT page in pixels. The default for a Postscript page is to center the image on a letter page 612 by 792 dots per inch. The left and right margins are 18 picas and the top and bottom 94 picas (i.e. 612x792+36+36). Other common sizes are: 540x720 Note 612x1008 Legal 842x1190 A3 595x842 A4 421x595 A5 297x421 A6 709x1002 B4 612x936 U.S. Foolscap 612x936 European Foolscap 396x612 Half Letter 792x1224 11x17 1224x792 Ledger The page geometry is relative to the vertical and horizontal density of the Postscript page. See -density for details. The default page dimensions for a TEXT image is 612x792+36+36. -quality value JPEG quality setting. Quality is 0 (worst) to 100 (best). The default is 85. -roll {+-}{+-} roll an image vertically or horizontally. See X(1) for details about the geometry specification. A negative x offset rolls the image left-to-right. A negative y offset rolls the image top-to-bottom. -rotate degrees apply Paeth image rotation to the image. Empty triangles left over from rotating the image are filled with the color defined as bordercolor (class borderColor). See X(1) for details. -sample geometry scale image with pixel sampling. See -geometry for details about the geometry specification. -scene value image scene number. Use this option to specify an image sequence with a single filename. See the discussion of file below for details. -sharpen sharpen an image. -shear x shear the image along the X or Y axis by a positive or negative shear angle. Shearing slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x degrees> is measured relative to the Y axis, and similarly, for Y direction shears y degrees is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the color defined as bordercolor (class borderColor). See X(1) for details. -size {%}x{%}{+colors}{!} width and height of the image. Use this option to specify the width and height of raw images whose dimensions are unknown such as GRAY, RGB, or CMYK. In addition to width and height, use -size to tell the number of colors in a MAP image file, (e.g. -size 640x512+256). For Photo CD images, choose from these sizes: 192x128 384x256 768x512 1536x1024 3072x2048 -treedepth value Normally, this integer value is zero or one. A zero or one tells display to choose a optimal tree depth for the color reduction algorithm. An optimal depth generally allows the best representation of the source image with the fastest computational speed and the least amount of memory. However, the default depth is inappropriate for some images. To assure the best representation, try values between 2 and 8 for this parameter. Refer to quantize(9) for more details. The -colors or -monochrome option is required for this option to take effect. -update seconds detect when image file is modified and redisplay. Suppose that while you are displaying an image the file that is currently displayed is over-written. display will automatically detect that the input file has been changed and update the displayed image accordingly. -verbose print detailed information about the image. This information is printed: image scene number; image name; image size; the image class (DirectClass or PseudoClass); the total number of unique colors; and the number of seconds to read and transform the image. Refer to miff(5) for a description of the image class. If -colors is also specified, the total unique colors in the image and color reduction error values are printed. Refer to quantize(9) for a description of these values. -visual type display image using this visual type. Choose from these visual classes: StaticGray GrayScale StaticColor PseudoColor TrueColor DirectColor default visual id The X server must support the visual you choose, otherwise an error occurs. If a visual is not specified, the visual class that can display the most simultaneous colors on the default X server screen is choosen. -window id set the background pixmap of this window to the image. id can be a window id or name. Specify root to select X's root window as the target window. By default the image is tiled onto the background of the target window. If -backdrop or -geometry are specified, the image is surrounded by the background color. Refer to X RESOURCES for details. The image will not display on the root window if the image has more unique colors than the target window colormap allows. Use -colors to reduce the number of colors. -write filename write image to a file. If file already exists, you will be prompted as to whether it should be overwritten. By default, the image is written in the format that it was read in as. To specify a particular image format, prefix file with the image type and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). See convert(1) for a list of valid image formats. Specify file as - for standard output. If file has the extension .Z or .gz, the file size is compressed using with compress or gzip respectively. Precede the image file name | to pipe to a system command. If file already exists, you will be prompted as to whether it should be overwritten. Use -compress to specify the type of image compression. The equivalent X resource for this option is writeFilename (class WriteFilename). See X RESOURCES for details. In addition to those listed above, you can specify these standard X resources as command line options: -background, -bordercolor, -borderwidth, -font, -foreground, -iconGeometry, -iconic, -mattecolor, -name, -panGeometry, or -title. See X RESOURCES for details. Options are processed in command line order. Any option you specify on the command line remains in effect until it is explicitly changed by specifying the option again with a different effect. For example to display two images, the first with 32 colors, and the second with only 16 colors, use: $ mdisplay -colors 32 cockatoo.miff -colors 16 macaw.miff Change - to + in any option above to reverse its effect. For example, specify +matte to store the image without its matte channel. By default, the image format is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). See convert(1) for a list of valid image formats. When you specify X as your image type, the filename has special meaning. It specifies an X window by id, name, or root. If no filename is specified, the window is selected by clicking the mouse in the desired window. Specify file as - for standard input. If file has the extension .Z or .gz, the file is uncompressed with uncompress or gunzip respectively. Precede the image file name | to pipe from a system command. Use an optional index enclosed in brackets after a file name to specify a desired subimage of a multi-resolution image format like Photo CD (e.g. img0001.pcd[4]). Single images are read with the filename you specify. Alternatively, you can display an image sequence with a single filename. Define the range of the image sequence with -scene. Each image in the range is read with the filename followed by a period (.) and the scene number. You can change this behavior by embedding a printf format specification in the file name. For example, -scene 0-9 image%02d.miff displays files image00.miff, image01.miff, through image09.miff. 2 BUTTONS The effects of each button press is described below. Three buttons are required. If you have a two button mouse, button 1 and 3 are returned. Press ALT and button 3 to simulate button 2. 1 Press and drag to select a command from a pop-up menu. Choose from these menu items: File Image Info Write... Print... Load... Delete... Canvas... Grab... Load... Next Former Select... Edit Undo Restore Refresh Toggle Colormap Slide Show Size Half Size Original Size Double Size Resize... Pixel Transform Trim Edges Crop Cut Flop Flip Rotate Right Rotate Left Rotate... Color Enhance Brightness... Saturation... Hue... Gamma... Sharpen Dull Equalize Normalize Negate Effects Despeckle Peak Noise Sharpen Blur Edge Detect Emboss Oil Painting Grayscale Quantize... Image Edit Annotate Add Border... Composite... Color Matte Comment Help Quit The indented items are members of a sub-menu. Access them by moving the pointer toward the right edge of the menu. 2 Press and drag to define a region of the image to magnify. 3 Choose a particular tile of a visual image directory and press this button and drag to select a command from a pop-up menu. Choose from these menu items: Delete Load If you choose Delete, the image represented by the tile is deleted. Otherwise, it is displayed. To return to the visual image directory, choose Next from the command menu (refer to Button 1). See montage(1) and miff(5) for more details. 2 KEYBOARD ACCELERATORS *** For VMS version, F20 is ESCAPE *** i Press to display information about the image. w Press to write the image to a file. p Press to print the image to a Postscript printer. d Press to delete an image file. C Press to create a blank canvas. F2 grab an image from the screen. l Press to load an image from a file. Refer to IMAGE LOADING for more details. n Press to display the next image. f Press to display the former image. F3 Press to select an image from the command line. , Press to display the next image after pausing. u Press to undo last image transformation. r Press to restore the image to its original size. @ Press to refresh the image window. F7 toggle the colormap type: : Shared or Private < Press to half the image size. < Press to return to the original image size. > Press to double the image size. % Press to resize the image to a width and height you specify. t Press to trim the image edges. [ Press to crop the image. Refer to IMAGE CROPPING for more details. ] Press to cut the image. Refer to IMAGE CUTTING for more details. | Press to flop image in the horizontal direction. - Press to flip image in the vertical direction. / Press to rotate the image 90 degrees clockwise. (bs Press to rotate the image 90 degrees counter-clockwise. * Press to rotate the image the number of degrees you specify. Refer to IMAGE ROTATION for more details. s Press to shear the image the number of degrees you specify. F8 Press to vary the color brightness. F9 Press to vary the color saturation. F10 Press to vary the image hue. g Press to gamma correct the image. F11 Press to sharpen the image contrast. F12 Press to dull the image contrast. = Press to perform histogram equalization on the image. N Press to perform histogram normalization on the image. ~ Press to invert the colors of the image. D Press to reduce the speckles in an image. P Press to eliminate peak noise from an image. S Press to sharpen an image. B Press to delete an image file. E Press to detect edges within an image. M Press to emboss an image. O Press to oil paint an image. G Press to convert the image colors to gray. # Press to set the maximum number of unique colors in the image. a Press to annotate the image with text. Refer to IMAGE ANNOTATION for more details. n Press to add a border to the image. x Press to composite the image with another. Refer to IMAGE COMPOSITING for more details. C Press to edit an image pixel color. Refer to COLOR EDITING for more details. m Press to edit the image matte information. Refer to MATTE EDITING for more details. ! Press to add an image comment. h Press to display helpful information about display(1). Function keys HELP or F1 are synonomous with the h key. v Press to display the version number of display(1). q Press to discard all images and exit program. 1-9 Press to change the level of magnification. Use the arrow keys to move the image one pixel up, down, left, or right within the magnify window. Be sure to first map the magnify window by pressing button 2. Press ALT and one of the arrow keys to trim off one pixel from any side of the image. 2 X_RESOURCES display options can appear on the command line or in your X resource file. Options on the command line supersede values specified in your X resource file. See X(1) for more information on X resources. All display options have a corresponding X resource. In addition, display uses the following X resources: background (class Background) Specifies the preferred color to use for the image window background. The default is #ccc. borderColor (class BorderColor) Specifies the preferred color to use for the image window border. The default is black. borderWidth (class BorderWidth) Specifies the width in pixels of the image window border. The default is 2. editorCommand (class editorCommand) Specifies the name of the preferred editor when editing image comments. The default is nedit %s. font (class FontList) Specifies the name of the preferred font to use in normal formatted text. The default is 14 point Helvetica. font[1-9] (class Font[1-9]) Specifies the name of the preferred font to use when annotating the image window with text. The default fonts are fixed, variable, 5x8, 6x10, 7x13bold, 8x13bold, 9x15bold, 10x20, and 12x24. Refer to IMAGE ANNOTATION for more details. foreground (class Foreground) Specifies the preferred color to use for text within the image window. The default is black. iconGeometry (class IconGeometry) Specifies the preferred size and position of the application when iconified. It is not necessarily obeyed by all window managers. iconic (class Iconic) This resource indicates that you would prefer that the application's windows initially not be visible as if the windows had be immediately iconified by you. Window managers may choose not to honor the application's request. magnify (class Magnify) specifies an integral factor by which the image should be enlarged. The default is 3. This value only affects the magnification window which is invoked with button number 3 after the image is displayed. Refer to BUTTONS for more details. matteColor (class MatteColor) Specify the color of windows. It is used for the backgrounds of windows, menus, and notices. A 3D effect is achieved by using highlight and shadow colors derived from this color. Default value: #ddd. name (class Name) This resource specifies the name under which resources for the application should be found. This resource is useful in shell aliases to distinguish between invocations of an application, without resorting to creating links to alter the executable file name. The default is the application name. panGeometry (class PanGeometry) Specifies the preferred size and position of the image panning window. pen[1-9] (class Pen[1-9]) Specifies the color of the preferred font to use when annotating the image window with text. The default colors are black, blue, green, cyan, gray, red, magenta, yellow, and white. Refer to IMAGE ANNOTATION for more details. printCommand (class PrintCommand) This command is executed whenever Print is issued (see BUTTONS. In general, it is the command to print Postscript to your printer. Default value: lpr (print on VMS systems). sharedMemory (class SharedMemory) This resource specifies whether display should attempt use shared memory for pixmaps. ImageMagick must be compiled with shared memory support, and the display must support the MIT-SHM extension. Otherwise, this resource is ignored. The default is True. text_font (class textFont) Specifies the name of the preferred font to use in fixed (typewriter style) formatted text. The default is 14 point Courier. title (class Title) This resource specifies the title to be used for the image window. This information is sometimes used by a window manager to provide a header identifying the window. The default is the image file name. usePixmap (class UsePixmap) Images are maintained as a XImage by default. Set this resource to True to utilize a server Pixmap instead. This option is useful if your image exceeds the dimensions of your server screen and you intend to pan the image. Panning is much faster with Pixmaps than with a XImage. Pixmaps are considered a precious resource, use them with discretion. 2 IMAGE_LOADING To select an image to display, press button 1 and choose Load from the command menu. A file browser is displayed. To choose a particular image file, move the pointer to the filename and press any button. The filename is copied to the text window. Next, press Load or press the RETURN key. Alternatively, you can type the image file name directly into the text window. To decend directories, choose a directory name and press the button twice quickly. A scrollbar allows a large list to be moved through if it exceeds the size of the list area. You can trim the list of file names by using shell globbing characters. For example, type *.jpg to list only files that end with .jpg. If your filename has globbing characters and you press load, a visual image directory is displayed. In our example, all files that end with .jpg are turned into thumbnails and tiled onto a single image. Now move the pointer to a particular thumbnail and press button 3. The image represented by the thumbnail is displayed at its full size. Finally, choose Next from the command menu to return to the visual image directory. 2 IMAGE_PANNING When an image exceeds the width or height of the X server screen, display maps a small panning window. The rectangle within the panning window shows the area that is currently displayed in the the image window. To "pan" about the image, press and drag the mouse within the panning window. The panning rectangle moves with the mouse and the image window is updated to reflect the location of the rectangle within the panning window. When you have selected the area of the image you wish to view, just release the mouse button. Use the arrow keys to pan the image one pixel up, down, left, or right within the image window. The panning window goes away if the image becomes smaller than the dimensions of the X server screen. 2 IMAGE_CROPPING To begin, press button 1 and choose Crop from the command menu (see BUTTONS). Alternatively, press c in the image window (see KEYBOARD ACCELERATORS). To exit immediately, press ESC. A small window appears showing the location of the cursor in the image window. You are now in crop mode. To exit immediately, press ESC (F20 under VMS). To define a cropping region, press button 1 and drag. The cropping region is defined by a highlighted rectangle that expands or contracts as it follows the pointer. Once you are satisfied with the cropping region, release the button. You can make adjustments to the cropping rectangle with the arrow keys. Press an arrow key to expand the region by one pixel. Press ALT and an arrow key to contract the cropping region. To expand or contract by more than one pixel, precede the arrow key press by the number of pixels you want to move. Finally, press RETURN to commit your cropping region. To exit without cropping the image, press ESC (F20 under VMS). 2 IMAGE_CUTTING An image is cut interactively. There is no command line argument to cut an image. To begin, press button 1 and choose Cut from the image edit menu (see BUTTONS). Alternatively, press x in the image window (see KEYBOARD ACCELERATORS). To exit immediately, press ESC. You are now in cut mode. To exit immediately, press ESC. In cut mode a button press has a different effect than described in BUTTONS. Press a button to affect this behavior: 1 Select a location within the image window to begin your cut, press and hold. Next, move the pointer to another location in the image. As you move a line will connect the initial location and the pointer. When you release the button, the area within the image to cut is determined by which cut direction you choose with button 2. 3 Press and drag to select a cut operator from a pop-up menu. Choose from these cut operators: horizontal vertical If the operator is horizontal, the area of the image between the two horizontal endpoints of the cut line is removed. Otherwise, the area of the image between the two vertical endpoints of the cut line is removed. To cancel the image cutting, move the pointer back to the starting point of the line and release the button. 2 IMAGE_ROTATION Press the / key to rotate the image 90 degrees or \ to rotate -90 degrees (see KEYBOARD ACCELERATORS). To interactively choose the degree of rotation, choose Rotate from the image edit menu (see BUTTONS). Alternatively, press | in the image window (see KEYBOARD ACCELERATORS). To exit immediately, press any button in the image window twice. A small horizontal line is drawn next to the pointer. You are now in rotation mode. To exit immediately, press any button and release. In rotation mode a button press has a different effect than described in BUTTONS. Press a button to affect this behavior: 1 Choose a point in the image window and press this button and hold. Next, move the pointer to another location in the image. As you move a line connects the initial location and the pointer. When you release the button, the degree of image rotation is determined by the slope of the line you just drew. 2 Press and drag to select a background color from a pop-up menu. Choose from these background colors: black blue cyan green gray red magenta yellow white Browser... Other background colors can be specified with the color browser or by setting the X resources pen1 through pen9. Refer to X RESOURCES for more details. If you select the color browser and press Grab, you can choose the font color by moving the pointer to the desired color on the screen and press any button. 3 Press and drag to select a rotate plane from a pop-up menu. Choose from these rotate planes: horizontal vertical To cancel the image rotation, move the pointer back to the starting point of the line and release the button. 2 IMAGE_ANNOTATION An image is annotated with text interactively. There is no command line argument to annotate an image. To begin, press button 1 and choose Annotate from the image edit menu (see BUTTONS). Alternatively, press a in the image window (see KEYBOARD ACCELERATORS). To exit immediately, press ESC. A small window appears showing the location of the cursor in the image window. You are now in annotate mode. To exit immediately, press ESC (F20 under VMS). In annotate mode a button press has a different effect than described in BUTTONS. Press a button to affect this behavior: 1 Press to select a location within the image window to begin entering text. 2 Press and drag to select a font color from a pop-up menu. Choose from these font colors: black blue cyan green gray red magenta yellow white Browser... Other font colors can be specified with the color browser or by setting the X resources pen1 through pen9. Refer to X RESOURCES for more details. If you select the color browser and press Grab, you can choose the font color by moving the pointer to the desired color on the screen and press any button. 3 Press and drag to select a font from a pop-up menu. Choose from these fonts: fixed variable 5x8 6x10 7x13bold 8x13bold 9x15bold 10x20 12x24 Browser... Other fonts can be specified with the font browser or by setting the X resources font1 through font9. Refer to X RESOURCES for more details. Choosing a font and its color is optional. The default font is fixed and the default color is black. However, you must choose a location to begin entering text and press button 1. An underscore character will appear at the location of the cursor where you pressed button 1. The cursor changes to a pencil to indicate you are in text mode. To exit immediately, press ESC. In text mode, any key presses will display the character at the location of the underscore and advance the underscore cursor. Enter your text and once completed press ESC to finish your image annotation. To correct errors press BACK SPACE. To delete an entire line of text, press DELETE. Any text that exceeds the boundaries of the image window is automatically continued onto the next line. The actual color you request for the font is saved in the image. However, the color that appears in your image window may be different. For example, on a monochrome screen the text will appear black or white even if you choose the color red as the font color. However, the image saved to a file with -write is written with red lettering. To assure the correct color text in the final image, any PseudoClass image is promoted to DirectClass (see miff(5)). To force a PseudoClass image to remain PseudoClass, use -colors. 2 IMAGE_COMPOSITING An image composite is created interactively. There is no command line argument to composite an image. To begin, press button 1 and choose Composite Image from the image edit menu (see BUTTONS). Alternatively, press * in the image window (see KEYBOARD ACCELERATORS). First a popup window is displayed requesting you to enter an image name. Press Composite, enter 'X:', or type a file name. Press Cancel if you choose not to create a composite image. When you specify X: as your file name, the filename has special meaning. It specifies an X window by id, name, or root. If no name is specified, the window is selected by clicking the mouse in the desired window. See import(1) for details. A small window appears showing the location of the cursor in the image window. You are now in composite mode. To exit immediately, press ESC. In composite mode a button press has a different effect than described in BUTTONS. Press a button to affect this behavior: 1 Press to select a location within image window to composite your image. 2 Press and drag to select a composite operation from a pop-up menu. Choose from these composite operations: over in out atop xor plus minus add subtract difference replace How each operator behaves is described below. image window is the image currently displayed on your X server and image is the image obtained with the File Browser widget. over The result is the union of the two image shapes, with image obscuring image window in the region of overlap. in The result is simply image cut by the shape of image window. None of the image data of image window is in the result. out The resulting image is image with the shape of image window cut out. atop The result is the same shape as image image window, with image obscuring image window where the image shapes overlap. Note this differs from over because the portion of image outside image window's shape does not appear in the result. xor The result is the image data from both image and image window that is outside the overlap region. The overlap region is blank. plus The result is just the sum of the image data. Output values are cropped to 255 (no overflow). This operation is independent of the matte channels. minus The result of image - image window, with underflow cropped to zero. The matte channel is ignored (set to 255, full coverage). add The result of image + image window, with overflow wrapping around (mod 256). subtract The result of image - image window, with underflow wrapping around (mod 256). The add and subtract operators can be used to perform reversible transformations. difference The result of abs(image - image window). This is useful for comparing two very similar images. replace The resulting image is image window replaced with image. Here the matte information is ignored. The image compositor requires a matte, or alpha channel in the image for some operations. This extra channel usually defines a mask which represents a sort of a cookie-cutter for the image. This is the case when matte is 255 (full coverage) for pixels inside the shape, zero outside, and between zero and 255 on the boundary. If image does not have a matte channel, it is initialized with 0 for any pixel matching in color to pixel location (0,0), otherwise 255. See MATTE EDITING for a method of defining a matte channel. Note that matte information for image window is not retained for colormapped X server visuals (e.g. StaticColor, StaticColor, GrayScale, PseudoColor). Correct compositing behavior may require a TrueColor or DirectColor visual or a Standard Colormap. Choosing a composite operator is optional. The default operator is over. However, you must choose a location to composite your image and press button 1. Press and hold button 1 before releasing and an outline of the image will appear to help you identify your location. The actual colors of the composite image is saved. However, the color that appears in image window may be different. For example, on a monochrome screen image window will appear black or white even though your composited image may have many colors. If the image is saved to a file it is written with the correct colors. To assure the correct colors are saved in the final image, any PseudoClass image is promoted to DirectClass (see miff(5)). To force a PseudoClass image to remain PseudoClass, use -colors. 2 COLOR_EDITING Changing the the color of a set of pixels is performed interactively. There is no command line argument to edit a pixel. To begin, press button 1 and choose Image Edit from the command menu (see BUTTONS). Alternatively, press e in the image window (see KEYBOARD ACCELERATORS). To exit immediately, press ESC. A small window appears showing the location of the cursor in the image window. You are now in pixel edit mode. To exit immediately, press ESC. In pixel edit mode a button press has a different effect than described in BUTTONS. Press a button to affect this behavior: 1 Press to select a pixel within the image window to change its color. Additional pixels may be recolored as prescibed by the method you choose with button 3. 2 Press and drag to select a pixel color from a pop-up menu. Choose from these pixel colors: black blue cyan green gray red magenta yellow white Browser... Other pixel colors are specified with the color browser or by setting the X resources pen1 through pen9. Refer to X RESOURCES for more details. 3 Press and drag to select a color editing method from a pop-up menu. Choose from these methods: point replace floodfill The point method recolors just the single pixel selected with the pointer. The replace method recolors any pixel that matches the color of the pixel you select with button 1. Floodfill recolors any pixel that matches the color of the pixel you select with button 1 and is a neighbor. The actual color you request for the pixels is saved in the image. However, the color that appears in your image window may be different. For example, on a monochrome screen the pixel will appear black or white even if you choose the color red as the font color. However, the image saved to a file with -write is written with red pixels. To assure the correct color text in the final image, any PseudoClass image is promoted to DirectClass (see miff(5)). To force a PseudoClass image to remain PseudoClass, use -colors. 2 MATTE_EDITING Matte information within an image is useful for some operations such as image compositing (See IMAGE COMPOSITING). This extra channel usually defines a mask which represents a sort of a cookie-cutter for the image. This is the case when matte is 255 (full coverage) for pixels inside the shape, zero outside, and between zero and 255 on the boundary. Setting the matte information in an image is done interactively. There is no command line argument to edit a pixel. To begin, press button 1 and choose Matte Edit from the command menu (see BUTTONS). Alternatively, press e in the image window (see KEYBOARD ACCELERATORS). To exit immediately, press ESC (F20 under VMS). A small window appears showing the location of the cursor in the image window. You are now in matte edit mode. To exit immediately, press ESC (F20 under VMS). In matte edit mode a button press has a different effect than described in BUTTONS. Press a button to affect this behavior: 1 Press to select a pixel within the image window to change its matte value. Additional pixels may have their matte values changed as prescibed by the method you choose with button 3. 2 Press an a dialog appears requesting a matte value. Enter a value between 0 and 255. This value is assigned as the matte value of the selected pixel or pixels. 3 Press and drag to select a matte editing method from a pop-up menu. Choose from these methods: point replace floodfill The point method changes the matte value of the single pixel selected with the pointer. The replace method changes the matte value of any pixel that matches the color of the pixel you select with button 1. Floodfill changes the matte value of any pixel that matches the color of the pixel you select with button 1 and is a neighbor. Matte information is only valid in a DirectClass image. Therefore, any PseudoClass image is promoted to DirectClass (see miff(5)). Note that matte information for PseudoClass is not retained for colormapped X server visuals (e.g. StaticColor, StaticColor, GrayScale, PseudoColor) unless you immediatelysave your image to a file (refer to Write). Correct matte editing behavior may require a TrueColor or DirectColor visual or a Standard Colormap. 2 ENVIRONMENT display To get the default host, display number, and screen. 2 COPYRIGHT Copyright 1994 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 tortuous action, arising out of or in connection with the use or performance of this software. 2 ACKNOWLEDGEMENTS The MIT X Consortium for making network transparent graphics a reality. Rod Bogart and John W. Peterson, University of Utah. Image compositing is loosely based on rlecomp of the Utah Raster Toolkit. Michael Halle, Spatial Imaging Group at MIT, for the initial implementation of Alan Paeth's image rotation algorithm. David Pensak, E. I. du Pont de Nemours and Company, for providing a computing environment that made this program possible. Paul Raveling, USC Information Sciences Institute, for the original idea of using space subdivision for the color reduction algorithm. 2 AUTHORS John Cristy, E.I. du Pont de Nemours and Company Incorporated