home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / fish / graphics / utilities / imagelab_452 / imagelab.doc < prev    next >
Text File  |  1991-02-13  |  51KB  |  1,570 lines

  1. ------------------------------------------------------------------------- 
  2.      ####### #     #  #####   #####  ####### #        #####  ###### 
  3.         #    ##   ## #     # #     # #       #       #     # #     #
  4.         #    # # # # #     # #       #       #       #     # #     #
  5.         #    #  #  # ####### #  #### ####### #       ####### #######
  6.         #    #     # #     # #     # #       #       #     # #     #
  7.         #    #     # #     # #     # #       #       #     # #     #
  8.      ####### #     # #     #  #####  ####### ####### #     # ######
  9. -------------------------------------------------------------------------
  10.  
  11. ImageLab V2.4
  12. Copyright 1991
  13. by Gary Milliorn
  14. All Rights Reserved
  15.  
  16. Distribution for non-commercial purposes is ok, as long as the
  17. program and accompanying files remain unchanged.
  18.  
  19. -------------------------------------------------------------------------
  20.  
  21. 1.0  OVERVIEW
  22.  
  23.     ImageLab is a program which may be used to explore many common image
  24. processing operation, from simple averaging to Fast Fourier Transforms
  25. (FFT's).  ImageLab makes use of the Amiga's blitter to perform fast
  26. operations where possible.
  27.  
  28.     ImageLab is copyrighted, but is freely distributable for non-commercial
  29. purposes.  A shareware fee of $25 or so is suggested if you find it useful,
  30. and would help encourage future additions.  That, in fact, was the
  31. motivation for me to produce V2.4.
  32.  
  33.     ImageLab is an evolving program.  If you find it interesting, have
  34. a few suggestions, bug reports (gads!), etc. you can contact me at:
  35.  
  36.     mail: Gary Milliorn
  37.           5915 Shanghai Pierce Rd.
  38.           Austin, Tx 78749-1927
  39.     bix:  gmill
  40.  
  41. I can't promise everything, but I do endeavor to make it as good as I can.
  42.  
  43.  
  44. 1.1  GENERAL
  45.  
  46.     ImageLab opens a window on the WorkBench screen, which allows access
  47. to its menus even when the picture you use is 320 or less.  The menu
  48. strip is also attached to any picture you load, but it may be difficult
  49. to use on small screens, since there are so many menus.  There are command
  50. keys for most of the important functions, so this may not be such a
  51. onerous restriction.
  52.  
  53.     The easiest way to use ImageLab in this manner is to position the
  54. screen partially down the screen and start functions from the exposed
  55. WorkBench window.
  56.  
  57.     An alternate method is to position the image screen at the top, move
  58. WorkBench to front, and drag it partially down.  However, application
  59. programs cannot reposition the WorkBench window, so you must do this
  60. manually.
  61.  
  62.     A this possibility is to keep both screens at the top and flip between
  63. them using the AMIGA-N and AMIGA-M key or the space bar.
  64.  
  65.  
  66. 1.1.1  COMMON FEATURES
  67.  
  68.     The following applies throughout ImageLab unless otherwise specified:
  69.  
  70.     ImageLab uses the ESCAPE key to terminate an operation in progress.
  71. Whenever lengthy operation are being performed, the pointer changes to
  72. a small spinning clock.  When this is true, you can press ESC to stop
  73. whatever it is doing; however, this may leave your picture in a partially
  74. altered state.
  75.  
  76.     ImageLab uses the RETURN and ENTER keys to simulate the "Ok" gadget
  77. which appears in requester windows.  Similarly, the ESCAPE key simulates
  78. the cancel gadget.
  79.  
  80.     Functions can be applied to the entire picture, or to a selected area.
  81. To select an area, use the mouse to "draw" a selection rectangle by
  82. pressing the left mouse button at one corner and dragging it (with the
  83. button still down) to the opposite corner.  To cancel an area selection
  84. in progress, press the ESCAPE key or the MENU button.
  85.  
  86.     Functions which have alternate operations (such as Open, Gamma, et. al.)
  87. perform the alternate function when either ALT key is held (naturally).
  88.  
  89.     All menu items which call up a requester for additional information
  90. have '...' appended to them.
  91.  
  92.  
  93. 1.2  REQUIREMENTS
  94.  
  95.     * Amiga 500..3500
  96.     * MC68000 or better.
  97.     * 512K memory (the more, the better).
  98.     * AmigaDos V1.2 software or newer.
  99.     * ARP Library version 39.1 or newer.
  100.  
  101.  
  102. 1.3  KNOWN LIMITATIONS
  103.  
  104.     ImageLab allocates some memory from the C-heap, instead of the system
  105. memory pool.  This means you will probably need a large stack space to 
  106. run extensive operations.  If you experience problems, try setting the
  107. stack size to 25K or more.
  108.  
  109.     ImageLab's undo function is not very complete.
  110.  
  111.     ImageLab cannot take advantage of a MC68881 or MC68882, alas.
  112.  
  113.  
  114.  
  115. 1.4  FUTURE ITEMS
  116.  
  117.     * HSI in color palette.
  118.     * HSI separation and merge.
  119.     * Programmable convolution kernel sizes.
  120.     * Multiple image screens.
  121.     * Better 'undo'.
  122.     * ???
  123.  
  124.  
  125. 1.6  MISCELLANEOUS
  126.  
  127.     Copyright 1991 by Gary W. Milliorn
  128.     All rights reserved.
  129.  
  130.     Developed using Manx C 5.0d, 32-bit mode.
  131.  
  132.  
  133. -----------------------------------------------------------------------------
  134. 2.0  INSTALLATION
  135.  
  136.     As of V2.3a, ImageLab requires the ARP library to work properly.
  137. By now, most people know about ARP so I'll not cover it's installation.
  138. ImageLab only requires that the "arp.library" exist in the LIBS: directory.
  139.  
  140.     To install the ImageLab program in your system, you can use the install
  141. shell script to perform the default installation procedure.  Review the file
  142. first, and if it is acceptable to you, just enter "execute install" at any
  143. CLI and it will run automatically.
  144.  
  145.     Otherwise, review the following paragraphs to manually install whatever
  146. portions you would like to have.
  147.  
  148.  
  149. 2.1  IMAGELAB PROGRAM
  150.  
  151.     Except for the ARP library, ImageLab does not require any of the other
  152. files supplied with the distribution archive to be present.  By default,
  153. a directory is created on your SYS: directory, and ImageLab is placed in
  154. there.  You can use the WorkBench or CLI to move it to a more suitable
  155. directory, such as "C:", "SYS:bin:", or wherever you prefer non-C-A programs
  156. to reside.
  157.  
  158.  
  159. 2.2  IMAGELAB FONTS
  160.  
  161.     ImageLab comes with a font, "ceres", a bold-faced, proportional, 9
  162. point font that (I think) looks nice when used with menus.  Its installation
  163. is strictly optional, as ImageLab handles fonts of any style and size, up to
  164. a reasonable point (Helvetica/50 is right out).  Use your own favorite, if
  165. you want.
  166.  
  167.     If no particular font is specified when ImageLab is started, it first
  168. tries to open this font, then tries Topaz/9, then reverts to the default
  169. system font. 
  170.  
  171.  
  172. 2.3  IMAGELAB HELP
  173.  
  174.     ImageLab can be provided with on-line help by storing the help file
  175. ("ImageLab.help") in the same location where the ImageLab program is
  176. stored (generally, "SYS:ImageLab/ImageLab.help"); alternately, it can
  177. be stored in the "S:" directory (ImageLab will locate it automatically).
  178.  
  179.     Installing the help file is strictly optional.
  180.  
  181.  
  182. -----------------------------------------------------------------------------
  183. 3.0  STARTING IMAGELAB
  184.  
  185.     ImageLab can be run via the CLI or via WorkBench.  Operation is
  186. basically identical, except that some of the defaults are changed.
  187.  
  188.  
  189. 3.1  CLI STARTUP
  190.  
  191.     When started from the CLI, the ImageLab command line has the
  192. following format:
  193.  
  194.         ImageLab [-a str][-biv][-c #][-f font] [[dir/]file]
  195.  
  196.     the options are:
  197.  
  198.         -?        : summarize CLI usage.
  199.         -a str        : set IFF `ANNO' chunks to 'str' on write.
  200.         -b        : enable the bell.
  201.         -c ##        : set the clipboard unit to ## (default is 0).
  202.         -f font        : specify font.  Fonts are specified as
  203.                   "name/size", as in "Helvetica/9".
  204.         -i        : enable icon generation.
  205.         -v        : verbose.  If set, ImageLab prints debugging
  206.                   info.
  207.         dir/file    : load initial image from `file' (in the
  208.                   specified directory).  File requester
  209.                   directory defaults to `dir'.
  210.  
  211.     Icon creation is disabled when ImageLab is started from the CLI.  To
  212. enable it, you must specify the "-i" option.
  213.  
  214.  
  215. 3.2  WORKBENCH STARTUP
  216.  
  217.     ImageLab can be started up via the WorkBench.  Its icon is a tool,
  218. which allows it to receive filenames by clicking on a Project icon
  219. such as ImageLab creates, or selecting both to open "alien" files,
  220. such as those created by Deluxe Paint, DigiView, etc.
  221.  
  222.     The ImageLab icon accepts the tool types listed below.  To set
  223. them, use the WorkBench "Info" function.
  224.  
  225.     ANNO=str     : set IFF `ANNO' chunks to 'str' on write.
  226.     BELL=ON|OFF     : if ON, create bells; otherwise, do not.
  227.     CLIP=##         : set the clipboard unit to ## (default is 0).
  228.     FONT=name     : set the ImageLab font to "name"
  229.                Fonts are specified as "name/size",
  230.     ICON=ON|OFF     : if ON, create icons; otherwise, do not.
  231.     VERBOSE=ON|OFF     : if ON, ImageLab writes debugging information
  232.                to its WorkBench window.  Do NOT use without
  233.                a "WINDOW..." specification.
  234.     WINDOW=CON:etc.. : create a message window of the specified size.
  235.                Mostly just for debug support.  Do NOT remove!
  236.  
  237.     If you had also selected a PROJECT when ImageLab was started, it tries
  238. to open that file as an IFF image file.  Only one file may be specified this
  239. way, however.
  240.  
  241.     Icon creation is enabled when ImageLab is started from the CLI.  To
  242. disable it, you must specify the "ICON=OFF" option.
  243.  
  244. NOTE: ImageLab *MUST* have a "WINDOW=" tooltype when it runs, even if you
  245. don't use the VERBOSE option.  If this annoys you, get ConMan and edit
  246. it to be "WINDOW=CND:0/130/640/60/ImageLab Console" (a deferred open console)
  247. and the window won't open unless any messages are written.
  248.  
  249.  
  250. -----------------------------------------------------------------------------
  251. 4.0  KEY REFERENCE
  252.  
  253.     The following table lists the keyboard keys which can be used in
  254. ImageLab:
  255.  
  256.     ESC        - terminate an operation.  Same as 'CANCEL'.
  257.     RETURN        - select an operation.  Same as 'OK'.
  258.     ENTER        - same as return.
  259.     HELP        - invoke the help utility.
  260.     F1-F5        - reserved.
  261.     F6        - Disable Paint (enables Area Select tool).
  262.     F7        - Paint: Draw mode.
  263.     F8        - Paint: Trace (fill-in) mode.
  264.     F9        - Paint: XOR mode.
  265.     F10        - Paint: Random mode.
  266.     SPACE        - bring ImageLab Menu window to front.
  267.  
  268.     UP        - scroll image up 1 line.
  269.     DOWN        - scroll image down 1 line.
  270.     LEFT        - scroll image left 1 line.
  271.     RIGHT        - scroll image right 1 line.
  272.     SHIFT-UP    - scroll image up 10 lines.
  273.     SHIFT-DOWN    - scroll image down 10 lines.
  274.     SHIFT-LEFT    - scroll image left 10 lines.
  275.     SHIFT-RIGHT    - scroll image right 10 lines.
  276.     ALT-UP        - scroll image up one screen.
  277.     ALT-DOWN    - scroll image down one screen.
  278.     ALT-LEFT    - scroll image left one screen.
  279.     ALT-RIGHT    - scroll image right one screen.
  280.  
  281.     CTRL-UP        - position the screen up 10 lines.
  282.     CTRL-DOWN    - position the screen down 10 lines.
  283.  
  284.     AMIGA-0        - Clear Area.
  285.     AMIGA-1        - Smooth Convolution.
  286.     AMIGA-2        - Sharpen Convolution.
  287.     AMIGA-3        - Sobel Transform.
  288.     AMIGA-4        - Roberts Transform.
  289.     AMIGA-5        - Binary Transform.
  290.     AMIGA-6        - Threshold Transform.
  291.     AMIGA-7        - Flip Horizontal.
  292.     AMIGA-8        - Flip Vertical.
  293.     AMIGA-9        - Pseudo-Color Palette.
  294.     AMIGA-A        - Average Area.
  295.     AMIGA-B        - Convert Color to Black & White.
  296.     AMIGA-C        - Copy selected area.
  297.     AMIGA-D        - Display FFT Transform.
  298.     AMIGA-E        - Edit/paint picture.
  299.     AMIGA-F        - FFT Transform.
  300.     AMIGA-G        - Greyscale Palette.
  301.     AMIGA-H        - Histogram Function.
  302.     AMIGA-I        - Inverse FFT Transform.
  303.     AMIGA-J        - Invert Area.
  304.     AMIGA-K        - Close Picture.
  305.     AMIGA-L        - Laplacian Convolution.
  306.     AMIGA-M        - Duplicate Area.
  307.     AMIGA-N        - Noise Generation.
  308.     AMIGA-O        - Open Picture.
  309.     AMIGA-P        - Palette Edit.
  310.     AMIGA-Q        - Quit ImageLab.
  311.     AMIGA-R        - Revert Picture to Old Version.
  312.     AMIGA-S        - Save Picture.
  313.     AMIGA-T        - Distort.
  314.     AMIGA-U        - Interpolated Copy Area.
  315.     AMIGA-V        - Paste Area.
  316.     AMIGA-W        - Double Area.
  317.     AMIGA-X        - Cut Area.
  318.     AMIGA-Y        - Copy Area.
  319.     AMIGA-Z        - Undo last operation.
  320.     AMIGA-[        - Darken Image.
  321.     AMIGA-]        - Brighten Image.
  322.     AMIGA-<        - Scale Down Image.
  323.     AMIGA->        - Scale Up Image.
  324.     AMIGA--        - Negative Palette.
  325.     AMIGA-=        - Histogram Palette Equalization.
  326.     AMIGA-_        - Vertical-edge Convolution.
  327.     AMIGA-|        - Horizontal-edge Convolution.
  328.     AMIGA-,        - Occupy All of Screen.
  329.     AMIGA-.        - Occupy Half of Screen.
  330.     AMIGA-/        - Occupy Little of Screen.
  331.  
  332.  
  333. -----------------------------------------------------------------------------
  334. 5.0  COMMAND REFERENCE
  335.  
  336.     The following sections describe the function of each menu item in
  337. detail.  Each subject is listed in the order it appears in the menus,
  338. in left-to-right, top-to-bottom order.  The heading for each subject
  339. includes the names of the menus on the levels preceeding it, if any.
  340.  
  341.  
  342. PROJECT ABOUT
  343.  
  344.     The "About" menu item provides general information about ImageLab,
  345. such as:
  346.  
  347.     * Version number
  348.     * Shareware status.
  349.     * Where to contact me to register.
  350.     * Where to send suggestions and bug reports.
  351.     * How much free memory is available.
  352.     * Access to the "help" system.
  353.  
  354.     Click on the "OK" gadget when you are done, or click on "Help" to get
  355. further information.
  356.  
  357.  
  358. PROJECT INFO
  359.  
  360.     The "Info" item opens a window and displays the following information
  361. about the picture file currently open:
  362.  
  363.   +--------------------------------------+
  364.   | Name: "filename".              |  Name of the Image File.
  365.   | File Size: 12345 bytes.         |  Size of the Image File.
  366.   | Image Size: LLL x WWW x HH.          |  Total Size of the Image.
  367.   | Screen Size: LLL x WWW x HH.     |  Displayed Size of the Image.
  368.   | Pixel Range: 0..N.              |  Active pixel range.
  369.   | Mode: (none).             |  Screen Modes: EHB, HAM, HIRES, etc.
  370.   | Region: (0,0)..(8,8)  Size: [9 x 9]. |  Selected area: location and size.
  371.   | FFT: 1024 complexes.         |  Size of FFT retained information.
  372.   +--------------------------------------+
  373.  
  374.  
  375. PROJECT OPEN...
  376.  
  377.     The "Open..." item brings up the ARP file requester.  Refer to the ARP
  378. documentation for further details on the file requester, but it is fairly
  379. straightforward.
  380.  
  381.     If there is an image opened already, and it has been modified, then a
  382. requester will be displayed.  Select "OK" to discard your changes, and
  383. proceed with loading the new image.  Pressing either ALT key when beginning
  384. "Open..." will cause any opened image to be discarded without asking
  385. first.
  386.  
  387.     Select the IFF file you want to use, and select OK to read in the image
  388. or CANCEL to stop loading in a new picture.  The file may be any standard
  389. IFF image as long you have sufficent CHIP memory to load the image.
  390.  
  391.     OPTIONS
  392.         
  393.     ALT - if held down while making the "Open..." selection, then
  394.           ImageLab will close any open, edited picture without asking
  395.           you to verify that you want to discard the changes.  All
  396.           changes will be lost.
  397.  
  398.     SHIFT - if held down while making the "Open..." selection, then
  399.         one bit plane will be stripped from the file while it is
  400.         read in.  This is useful to process Digi-View files
  401.         (which have an extra bit plane in them) in ImageLab.
  402.         This has the same effect as the "Restrict Palette" option,
  403.         but conserves the memory that would otherwise be needed.
  404.  
  405.  
  406. PROJECT REVERT
  407.  
  408.     The "Revert" menu item re-opens the image using the contents of the
  409. last file you opened or saved.  This menu item is only enabled when any
  410. changes have been made to your image, or to its color-map.
  411.  
  412.     Revert recognizes the same options as the Open function (see PROJECT
  413. OPEN).
  414.  
  415.  
  416. PROJECT CLOSE
  417.  
  418.     "Close" closes the current image and frees all associated memory
  419. (including any FFT data).  If the image has been modified but not saved,
  420. a warning requester will be displayed first.
  421.  
  422.     OPTIONS
  423.  
  424.     ALT - if held down while making the "Close" selection, then
  425.           ImageLab will close any open, edited picture without asking
  426.           you to verify that you want to discard the changes.  All
  427.           changes will be lost.
  428.  
  429.  
  430. PROJECT SAVE
  431.  
  432.     The "Save" item writes to disk your current image file, including
  433. any changes that have been made to it.  User-settable options allow
  434. ImageLab to create icons and/or include ImageLab specific information in
  435. the IFF file.
  436.  
  437.     See Also: SAVE FFT
  438.           SAVE TYPE
  439.           ICONS
  440.  
  441.  
  442. PROJECT SAVE AS...
  443.  
  444.     The "Save As..." item allows you to save the current image under
  445. a different name.  Selecting this item brings up the ARP file
  446. requester, allowing you to alter the current filename or enter a new
  447. one.  If OK is selected, then the file is saved as described in the
  448. "Save" function.
  449.  
  450.  
  451. PROJECT QUIT
  452.  
  453.     The "Quit" menu item closes the image and exits ImageLab.  If the
  454. picture has been modified but not saved, a requester will be brought
  455. up to give you a chance to save it first.
  456.  
  457.     OPTIONS
  458.     
  459.     ALT - if held down while making the "Close" selection, then
  460.           ImageLab will close any open, edited picture without asking
  461.           you to verify that you want to discard the changes.  All
  462.           changes will be lost.
  463.  
  464.  
  465. EDIT UNDO
  466.  
  467.     The "Undo" operation attempts to undo the last operation that was
  468. done.  Undo works well with color palette changes, but currently
  469. cannot undo changes to the picture itself; use the "Revert" command
  470. for that.
  471.  
  472.     Only one level of "undo" is supported.
  473.  
  474.  
  475. EDIT CUT
  476.  
  477.     The "Cut" operation copies the selected area to the clipboard,
  478. then clears the resulting area to the background color (color 0).
  479.     
  480.     If either SHIFT key is held, the area is set to the foreground
  481. color (the maximum pixel value, such as 15 for a 16 color screen).
  482.     
  483.  
  484. EDIT COPY
  485.  
  486.     The "Copy" operation copies the selected area to the clipboard.
  487.     
  488.  
  489. EDIT PASTE
  490.  
  491.     The "Paste" menu item copies the contents of the clipboard, if
  492. there is any and it is an IFF ILBM FORM, into the image.  If the
  493. clipboard is empty, you will receive an error message.
  494.     
  495.     To paste an area on the image, ImageLab brings the screen to the
  496. foreground and puts a draggable rectangle (the size of the paste
  497. area) on the screen.  Position the area where desired, and click the
  498. left mouse button to copy from the clipboard to that area.
  499.  
  500.     Click the right mouse button or press the ESCAPE key to abandon
  501. the attempt to paste the clipboard -- your image will remain unchanged.
  502.  
  503.  
  504. EDIT CLEAR
  505.  
  506.     The "Clear" operation sets the selected area to the background color
  507. (color 0).
  508.  
  509.     If either ALT key is held, the area is set to the foreground color
  510. (the maximum pixel value, such as 15 for a 16 color screen).
  511.     
  512.  
  513. EDIT UNSELECT
  514.  
  515.     The "Unselect" operation clears the select rectangle from the
  516. image, causing all ImageLab operations to be performed on the
  517. entire image.
  518.  
  519.  
  520. EDIT SCREEN
  521.  
  522.     The "Edit Screen..." function allows you to change the size,
  523. depth, or modes of the current image's screen (it does not affect
  524. the image, which will be converted to a scrolling bitmap if the
  525. screen shrinks).  When selected, a requester is brought up, somewhat
  526. like:
  527.  
  528.         +-------------------------------------+
  529.         |  Enter the new screen parameters:   |
  530.         |                                     |
  531.         |  Width:     [ 640 ]                 |
  532.         |                                     |
  533.         |  Height:    [ 200 ]                 |
  534.         |                                     |
  535.         |  Depth:     [  5    ]             |
  536.         |                                     |
  537.         |    ( ) HAM      (/) LACE            |
  538.         |                                     |
  539.         |    ( ) EHB      ( ) HIRES           |
  540.         |                                     |
  541.         | [ Ok ]                [ Cancel ]    |
  542.         +-------------------------------------+
  543.  
  544.     To enable a screen mode (HAM, Interlace, Hi-Res, or Extra-Half-Bright),
  545. click in the box until it is selected with a check-mark (the current modes
  546. are pre-selected).  Size parameters can be changed by editing the displayed
  547. values.
  548.  
  549.     OPTIONS:
  550.  
  551.     ALT - if held while "Edit Screen..." is selected, it will use the
  552.           size of the currently selected area as the default size
  553.           instead of the screen size.
  554.  
  555.  
  556. EDIT IMAGE
  557.  
  558.     The "Edit Image..." function allows you to change the size, or
  559. depth of the current image.  When selected, a requester is brought up,
  560. somewhat like:
  561.  
  562.         +-------------------------------------+
  563.         |  Enter the new image parameters:    |
  564.         |                                     |
  565.         |  Width:     [ 640 ]                 |
  566.         |                                     |
  567.         |  Height:    [ 200 ]                 |
  568.         |                                     |
  569.         |  Depth:     [  5    ]             |
  570.         |                                     |
  571.         | [ Ok ]                [ Cancel ]    |
  572.         +-------------------------------------+
  573.  
  574.     NOTE: FFT data is preserved across this function, although its
  575.           applicability is highly questionable.
  576.  
  577.     OPTIONS:
  578.  
  579.     ALT - if held while "Edit Image..." is selected, it will use the
  580.           size of the currently selected area as the default size
  581.           instead of the total image size.
  582.  
  583.  
  584. TRANSFORM DUPLICATE
  585.  
  586.     The "Duplicate" item moves the pixels from the currently selected
  587. area to a destination of your choosing.  When "Duplicate" is selected, a
  588. draggable box is positioned on the screen.  Click the right mouse button
  589. down to begin positioning it, and release the button when you are over
  590. the target area.
  591.  
  592.     NOTE: the image is copied off-screen first, so overlapping images can
  593.           be produced.
  594.  
  595.  
  596. TRANSFORM RESIZE
  597.  
  598.     The "Resize" item causes the selected item to be resized, in a
  599. variety of ways.  When selected, the screen is brought to the front
  600. (if needed) and the mouse drags to alter the size of the selected
  601. area (the starting location cannot be changed).  Select the approximate
  602. area, and release the mouse button to begin resizing the area.  Note
  603. that it is possible to scale up in one dimension and scale down in
  604. another at the same time.
  605.  
  606.  
  607. TRANSFORM RESIZE COPY
  608.  
  609.     The "Resize Copy" resizes an area by expanding or shrinking it
  610. to fit the target area.  When expansion is needed, pixels are
  611. supplied by copying the last pixel encountered (the one immediately
  612. above or to the left).
  613.  
  614.  
  615. TRANSFORM RESIZE INTERPOLATE
  616.  
  617.     The "Resize Interpolate" resizes an area by expanding or shrinking it
  618. to fit the target area.  When expansion is needed, pixels are supplied
  619. by using bilinear interpolation to create reasonable pixels in the
  620. intervening areas.
  621.  
  622.     The difference between "Copy" and "Interpolate" arise when the
  623. area is expanded:  "Copy" just copies the first pixel to fill the
  624. expanded area, while "Interpolate" employs bilinear interpolation
  625. to fill in the area.  Interpolation produces a smoother picture,
  626. but is slower to operate.
  627.  
  628.  
  629. TRANSFORM RESIZE HALVE
  630.  
  631.     The "Halve" option allow you to quickly halve the selected area
  632. to half its original size.
  633.  
  634.     OPTIONS
  635.  
  636.     ALT - if held while selecting the "Resize Halve" function, the
  637.           destination area will be kept square.
  638.     
  639.  
  640. TRANSFORM RESIZE DOUBLE
  641.  
  642.     The "Double" operation allows you to quickly double the size of
  643. the selected area.  "Double" employs interpolation for best results.
  644.  
  645.     OPTIONS
  646.  
  647.     ALT - if held while selecting the "Resize Halve" function, the
  648.           destination area will be kept square.
  649.     
  650.  
  651. TRANSFORM FLIP HORIZONTAL
  652.  
  653.     The "Flip Horizontal" item flips the selected area around an imaginary
  654. vertical axis, producing a left-right mirror image.
  655.     
  656.  
  657. TRANSFORM FLIP VERTICAL
  658.  
  659.     The "Flip Vertical" item flips the selected area around an imaginary
  660. horizontal axis, producing a top-bottom mirror image.
  661.  
  662.  
  663. TRANSFORM INVERT
  664.  
  665.     The "Invert" item inverts the selected area.  This produces a negative-
  666. like area for greyscale images.
  667.  
  668.  
  669. TRANSFORM PAINT
  670.  
  671.     The Paint functions are used to change what the mouse button does.
  672. Normally, it is used to select areas, but if any of the paint functions
  673. are selected, the mouse is used to change pixel values (and corresponding
  674. FFT data points, if any).
  675.  
  676.  
  677. TRANSFORM PAINT PAINT OFF
  678.  
  679.     The "Paint Off" function is the default selected item.  When checked,
  680. the mouse is used to select areas of interest.
  681.  
  682.  
  683. TRANSFORM PAINT DRAW
  684.  
  685.     The "Draw" function is used to set pixels to the last selected color
  686. (using the COLOR PALETTE function).  FFT data is set to the real value 
  687. of the color index.
  688.  
  689.  
  690. TRANSFORM PAINT XOR
  691.  
  692.     The "XOR" function is used to toggle the pixels under the mouse.
  693. FFT data is edited by complementing the sign of the imaginary component.
  694.  
  695.  
  696. TRANSFORM PAINT RND
  697.  
  698.     The "RND" function is used to replace the pixels under the mouse
  699. and FFT real value with random values.
  700.  
  701.  
  702. TRANSFORM PAINT TRACE
  703.  
  704.     The "Trace" option works like "Draw", except that intermediate
  705. pixels are connected.  This produces smoothed lines; however, it
  706. cannot be used to modify FFT data.
  707.  
  708.  
  709. TRANSFORM FFT TRANSFORM
  710.  
  711.     The "Transform" function invokes ImageLab's two-dimensional FFT 
  712. routine.  FFT's convert time domain information (a picture is a valid
  713. representation of this) to frequency domain information.  Using the
  714. default settings, the transform of an image produces a strong DC
  715. component at the center (representing the uniform background) with
  716. sine circles radiating outwards (representing the edge frequencies
  717. of components in the picture).
  718.  
  719.     Refer to any good textbook for a better explanation of this.
  720.  
  721.     When the FFT has been computed, you can use the "Paint" functio
  722. to introduce errors in the transform, and use the "Inverse" function
  723. to try to recover your picture.  For fun, try blotting out the strong
  724. DC term in the center of the picture.
  725.  
  726.     ImageLab uses an FFT instead of a DFT for speed; however, FFT's
  727. must be a power of two in both dimensions (2, 4, 8, etc.).  If the
  728. picture or selected area is not a power of two in size, the FFT function
  729. is disabled.  To select an FFT sized area, hold down the CONTROL key
  730. while drag-selecting an area.
  731.  
  732.     The Transform function can take some time for FFT's over about 32
  733. by 64 (on a standard MC68000 Amiga).  A bar chart tracks the FFT's
  734. progress in the ImageLab display window.
  735.  
  736. NOTE: the only functions which can alter the associated FFT data is 
  737.       the "Paint" function.
  738.  
  739.  
  740. TRANSFORM FFT INVERSE
  741.  
  742.     The "Inverse" operation computes the complex conjugate of the FFT
  743. data.  If the data has not been modified, you can use Display and your
  744. original picture will be regenerated.  If it has been altered in some
  745. way, your source may substantially return, but with a few errors introduced.
  746. The "Merge/XOR" function can quickly highlight changed pixels.
  747.  
  748. NOTE: if Translation is enabled (usually the case), your picture will
  749. return rotated 180 degrees.  You can use the "Flip Horizontal" and 
  750. "Flip Vertical" functions (both in sequence) to quickly correct this.
  751.  
  752.  
  753. TRANSFORM FFT DISPLAY
  754.  
  755.     The "Display" function causes ImageLab to replace a selected area
  756. of the current screen with a two-dimensional representation of the FFT
  757. data you have computed (you cannot select this function unless FFT data
  758. is present, whether it was just created or loaded from a file).
  759.  
  760.     When selected, the screen is popped forward, and you can use the
  761. mouse to position a fixed-size rectangle on the screen.  Click the
  762. right mouse button over the desired area, and the FFT data will be
  763. filled into that area.
  764.  
  765. NOTE: The "Display" function is controlled by the "Log Display"
  766.       option.  You do not have to re-compute the FFT if you only change
  767.       the display modes.
  768.  
  769.  
  770. TRANSFORM FFT TRANSLATION
  771.  
  772.     The "Translation" function is a chcek-selected option that enables
  773. the displacement (or offset) of the FFT function to the center of the
  774. FFT area.  Without this option enabled, the FFT data places the DC
  775. component at the lower left corner, with reflections appearing in all
  776. four corners, like so.
  777.  
  778.         +-------------+     +-------------+
  779.         |*-         -*|     |             |
  780.         |`           `|     |      .      |
  781.         |             |     |      *      |
  782.         |             |     |    -*@*-    |
  783.         |             |     |      *      |
  784.         |`           `|     |      .      |
  785.         |*-         -*|     |             |
  786.         +-------------+     +-------------+
  787.         No Translation        With Translation
  788.  
  789.     NOTE: if the translation option is changed, you must re-compute
  790.           the FFT for it to have any effect.
  791.  
  792.  
  793. TRANSFORM FFT LOG DISPLAY
  794.  
  795.     If the "Log Display" option is checked, the "Display" function will
  796. perform a logarithmic enhancement to the FFT data before displaying it.
  797. The dynamic range of the FFT falls off sharply along the axes from the
  798. DC component at zero.
  799.  
  800.     This option is automatically checked when you select the "Transform"
  801. function, since that is the usual case.  It is cleared when "Inverse"
  802. is selected, for the same reason.  If, for some reason, you don't want
  803. this, you can override the settings before you select "Display".
  804.  
  805.     Note that the FFT Transform data will be very black, possibly with
  806. a singular white DC term at the center, unless you use the log enhancer.
  807.  
  808.  
  809. TRANSFORM FFT ZERO REAL
  810.  
  811.     The "Zero Real" option sets the real part of the complex FFT data to
  812. zero.
  813.     
  814.  
  815. TRANSFORM FFT ZERO IMAGINARY
  816.  
  817.     The "Zero Imaginary" option sets the imaginary part of the complex
  818. FFT data to zero.
  819.  
  820.  
  821. TRANSFORM FFT INVERT REAL
  822.  
  823.     The "Invert Real" function replaces the real part with its
  824. reciprocal.  The imaginary part remains unchanged.
  825.  
  826.  
  827. TRANSFORM FFT PHASE RANDOMIZE
  828.  
  829.     The "Phase Randomize" replaces the phase component of the FFT data
  830. with a random value (it must convert the data to polar form and back,
  831. so this can be slow).
  832.  
  833.  
  834. TRANSFORM FFT FREE FFT
  835.  
  836.     The "Free FFT" function releases all memory associated with an
  837. FFT.  If you are pressed for space, this function will free up quite
  838. a bit, since 16 bytes are required for each pixel in the FFT area.
  839.  
  840.  
  841. TRANSFORM CONVOLVE
  842.  
  843.     Convolution operations perform graphical convolution on the
  844. selected area.  Currently, all convolutions are 3x3 in size.
  845.  
  846.     OPTIONS:
  847.  
  848.     ALT - if held when any convolution function is selected, then
  849.           the custom matrix editor is brought up with the contents
  850.           of the selected convolution matrix.  You can edit this
  851.           matrix to suit your needs.
  852.  
  853.           NOTE: the built-in matrices cannot be changed, they are fixed
  854.              and will be reset each time you use them.
  855.  
  856.  
  857. TRANSFORM CONVOLVE SMOOTH
  858.  
  859.     The "Smooth" operation uses graphical convolution to smooth the
  860. area selected by using the smoothing kernel:
  861.     
  862.             1    1    1
  863.             1    1    1
  864.             1    1    1
  865.  
  866.     "Smooth" rounds off rough edges of an image at a cost of clarity.
  867.  
  868.  
  869. TRANSFORM CONVOLVE SHARPEN
  870.  
  871.     The "Sharpen" operation uses graphical convolution to accentuate
  872. the differences between the center pixel and the surrounding ones.
  873. The kernel used is:
  874.     
  875.             -1    -1    -1
  876.             -1     9    -1
  877.             -1    -1    -1
  878.  
  879.     "Sharpen" accentuates subtle changes of an image at a cost of
  880. smoothness.
  881.  
  882.  
  883. TRANSFORM CONVOLVE LAPLACIAN
  884.  
  885.     The "Laplacian" operation uses graphical convolution to highlight
  886. outline edges.  The kernel used is:
  887.         
  888.         -1    -1    -1
  889.         -1     8    -1
  890.         -1    -1    -1
  891.  
  892.  
  893. TRANSFORM CONVOLVE LOW FREQUENCY
  894.  
  895.     The "Low Frequency" kernel highlights unchanging areas.  The kernel
  896. used is:
  897.         
  898.         -1    -1    -1
  899.         -1     1    -1
  900.         -1    -1    -1
  901.  
  902.  
  903. TRANSFORM CONVOLVE VERTICAL EDGE
  904.  
  905.     The "Vertical Edge" convolution operation uses the convolver to
  906. highlight vertical edges, but not horizontal ones.  The kernel used is:
  907.         
  908.             -1    0    1
  909.             -1    0    1
  910.             -1    0    1
  911.  
  912.  
  913. TRANSFORM CONVOLVE HORIZONTAL EDGE
  914.  
  915.     The "Horizontal Edge" operation uses graphical convolution to
  916. highlight horizontal edges (but not vertical ones).  The kernel used is:
  917.         
  918.             -1    -1    -1
  919.              0     0     0
  920.              1     1     1
  921.  
  922.  
  923. TRANSFORM CONVOLVE CUSTOM...
  924.  
  925.     The "Custom..." option brings up a custom matrix editor.  This
  926. window displays nine cells in a three by three format.  You can select
  927. and edit the value in each of the cells.  Each cells value will be
  928. multiplied by the corresponding pixel value, and the sum of all nine
  929. will be stored at the center pixel.
  930.  
  931.  
  932. TRANSFORM FILTER SOBEL
  933.  
  934.     The "Sobel" transform is a highly effective outline tracing function,
  935. which examines the gradients present at each pixel location in the picture
  936. or selected area.
  937.  
  938.     OPTIONS
  939.  
  940.     ALT - if held when the "Roberts" function is selected, then the
  941.           resulting value is scaled down.  With the limited resolution
  942.           of the Amiga display, this is typically never needed.  However,
  943.           sharp edges could result in overflow, so if the result
  944.           appears corrupted, try again with the ALT key active.
  945.  
  946.  
  947. TRANSFORM FILTER ROBERTS
  948.  
  949.     The "Roberts" transform is a variation of the "Sobel" transform,
  950. both of which are effective at outline tracing.  The Roberts transform
  951. uses the L->R, U->D, and diagonal gradients at each pixel location
  952. in the picture or selected area.
  953.  
  954.     OPTIONS
  955.  
  956.     ALT - if held when the "Roberts" function is selected, then the
  957.           resulting value is scaled down.  With the limited resolution
  958.           of the Amiga display, this is typically never needed.  However,
  959.           sharp edges could result in overflow, so if the result
  960.           appears corrupted, try again with the ALT key active.
  961.  
  962.  
  963. TRANSFORM FILTER BINARY...
  964.  
  965.     The "Binary..." function replaces each pixel with white (or the
  966. color of the highest palette value, which is typically white) if it
  967. is greater than or equal to that limit, or with black (color #0) if
  968. it is less than a specified limit.
  969.  
  970.     The limit is specified by a sliding bar, which allows you to specify
  971. the color index number (0..max).  The entire display's color-map updates 
  972. when you move the slider, but only the selected area will be changed
  973. when you select "Ok."
  974.  
  975.     The effect of the "Binary" functions is much like orthographic film:
  976. the result is pure black and white.  Of course, the resolution is cut off
  977. sharply.
  978.  
  979.  
  980. TRANSFORM FILTER THRESHOLD...
  981.  
  982.     The "Threshold..." function reduces the range of a picture or
  983. selected area by clipping pixels which fall outside a user-defined
  984. range.  Values outside this range are clipped to the minimum or
  985. maximum, as appropriate.  The entire display's color-map updates 
  986. when you move the slider, but only the selected area will be changed
  987. when you select "Ok."
  988.  
  989.     To select a threshold, a requester is brought up which has two
  990. sliders on it:  adjust the minimum and maximum values to your
  991. desired range.
  992.     
  993. NOTE: the requester will reject attempts to set a minimum value greater
  994.       than a maximum value.
  995.  
  996.  
  997. TRANSFORM FILTER PIXELIZE...
  998.  
  999.     The "Pixelize..." function replaces each pixel with <n> copies
  1000. of itself, where <n> is from 2 to 10.  This effect "computerizes"
  1001. images, by craeting a blocky image of low resolution (i.e., IBM
  1002. compatible).
  1003.  
  1004.  
  1005. TRANSFORM FILTER MINIMUM
  1006.  
  1007.     The "Minimum" function replaces each pixel with the minimum value
  1008. found in the surrounding eight pixels.
  1009.  
  1010.  
  1011. TRANSFORM FILTER MEDIAN
  1012.  
  1013.     The "Median" function replaces each pixel with the median value
  1014. found in the surrounding eight pixels.  Since a sort is required to
  1015. find a median, this function is slower than the corresponding "Minimum"
  1016. or "Maximum" functions.
  1017.  
  1018.  
  1019. TRANSFORM FILTER MAXIMUM
  1020.  
  1021.     The "Maximum" function replaces each pixel with the maximum value
  1022. found in the surrounding eight pixels.
  1023.  
  1024.  
  1025. TRANSFORM FILTER DISTORT...
  1026.  
  1027.     The "Distort..." function introduces distortion into the picture or
  1028. selected area.  Distortion is simulated by displacing the pixel in a
  1029. random direction at random intervals (the distortion probability).
  1030.  
  1031.     A requester allows you to specify the approximate percentage
  1032. probability that distortion will occur, from 0 (never) to 100 (always).
  1033.  
  1034.  
  1035. TRANSFORM FILTER NOISE...
  1036.  
  1037.     The "Noise..." function introduces impulse noise into the picture
  1038. or selected area.  Noise is generated by writing the highest index pixel
  1039. (typically white) at random intervals (controlled by the noise probability).
  1040.  
  1041.     A requester is displayed which allows you to specify the approximate
  1042. percentage probability that noise will occur, from 0 (never) to
  1043. 100 (always).
  1044.  
  1045.     OPTIONS
  1046.  
  1047.     ALT - if held while selecting the "Noise..." function, then the
  1048.           impulse noise generated will be color #0 instead of the
  1049.           maximum pixel value (typically, this is black instead of
  1050.           white).
  1051.  
  1052.  
  1053. TRANSFORM AVERAGE
  1054.  
  1055.     The "Average" functions perform area averaging of the picture or
  1056. of a selected area.  Averaging is performed by using a 3x3 control
  1057. matrix to select points of interest surrounding each pixel in the
  1058. selected area.  For each non-zero term in the matrix, the corresponding
  1059. pixel value is added to a sum.  Then the center pixel is replaced by the
  1060. average value.
  1061.  
  1062.     The effect of averaging an area is to reduce noise by blurring the
  1063. area, in a manner similar to (but faster) the 'Smooth' convolution
  1064. kernel.  The various averaging options select different severities of
  1065. smoothing.
  1066.     
  1067.     The various submenus select different control matrices.  See the
  1068. individual sections for details on the matrix used.
  1069.  
  1070.     OPTIONS
  1071.  
  1072.     ALT - if held when any of the average functions is selected, then
  1073.           the custom matrix editor is brought up with the contents of
  1074.           the selected averaging matrix.  You can edit it to suit your
  1075.           needs.
  1076.  
  1077.           NOTE: the built-in matrices cannot be changed, they are
  1078.             fixed and will be reset each time you use them.
  1079.  
  1080.     CTRL - if held while selecting an averaging option, then the sum of
  1081.            the selected pixels is always divided by 9 (the kernel size),
  1082.            instead of the number of pixels selected by the matrix.  This
  1083.            has the effect of squashing the result into a darker image.
  1084.  
  1085.  
  1086. TRANSFORM AVERAGE HORIZONTAL
  1087.  
  1088.     "Horizontal" averages are based upon the two pixels neighboring to the
  1089. left and right, using the following 3x3 matrix:
  1090.         
  1091.             0    0    0
  1092.             1    1    1
  1093.             0    0    0
  1094.         
  1095.  
  1096. TRANSFORM AVERAGE VERTICAL
  1097.  
  1098.     "Vertical" averages are based upon the two neighbors above and below,
  1099. using the following 3x3 matrix:
  1100.         
  1101.             0    1    0
  1102.             0    1    0
  1103.             0    1    0
  1104.  
  1105.         
  1106. TRANSFORM AVERAGE H&V
  1107.  
  1108.     The "H & V" average combines the previous two methods to base the
  1109. average on those four pixels, using the following 3x3 matrix:
  1110.         
  1111.             0    1    0
  1112.             1    1    1
  1113.             0    1    0
  1114.  
  1115.         
  1116. TRANSFORM AVERAGE DIAGONAL
  1117.  
  1118.     The "Diagonal" average varies the previous one by using the four pixels
  1119. at each corner, using the following 3x3 matrix:
  1120.         
  1121.             1    0    1
  1122.             0    1    0
  1123.             1    0    1
  1124.  
  1125.         
  1126. TRANSFORM AVERAGE ALL
  1127.  
  1128.     The "All" averaging control matrix (the default) averages each pixel
  1129. based upon all its surrounding pixels (this produces the best average.)
  1130. It is based upon the following 3x3 matrix:
  1131.         
  1132.             1    1    1
  1133.             1    1    1
  1134.             1    1    1
  1135.         
  1136.  
  1137. TRANSFORM AVERAGE CUSTOM...
  1138.  
  1139.     The "Custom..." average option brings up a custom matrix editor.
  1140. This editor displays nine cells in a three by three format, somewhat
  1141. like so:
  1142.  
  1143.     +-------------------------+
  1144.     |  Enter Custom Matrix:   |
  1145.     |                |
  1146.     |  [  0 ][  0 ][  0 ]      |
  1147.     |  [  0 ][  0 ][  0 ]      |
  1148.     |  [  0 ][  0 ][  0 ]      |
  1149.     |                |
  1150.     |  [ Ok ] [ Cancel ]      |
  1151.     +-------------------------+
  1152.  
  1153.     You can select and edit the value in each of the cells.  Enter a
  1154. non-zero value (typically one) to enable that location (pictorially
  1155. speaking) to be used in the averaging, or leave it as zero to ignore
  1156. that location.  Enter a value greater than one to emphasize a particular
  1157. location.
  1158.  
  1159.  
  1160. TRANSFORM INTENSITY BRIGHTEN
  1161.  
  1162.     The "Intensity Brighten" item is used to brighten the image, by
  1163. adding one to each pixel value (and limiting the maximum value).
  1164.     
  1165.  
  1166. TRANSFORM INTENSITY DARKEN
  1167.  
  1168.     The "Intensity Darken" item is used to darken the image, by
  1169. subtracting one from each pixel value (and limiting the minimum value
  1170. to zero).
  1171.  
  1172.  
  1173. TRANSFORM INTENSITY OTHER...
  1174.  
  1175.     The "Intensity Other..." item is used to brighten or darken the image,
  1176. by adding or subtracting a value from each pixel value (and limiting the
  1177. minimum and maximum values).  A requester is brought up, allowing values
  1178. from -20..20 to be entered (zero has no effect).
  1179.  
  1180.  
  1181. TRANSFORM INTENSITY SCALE UP
  1182.  
  1183.     The "Scale Up" function causes the intensity to be scaled (more
  1184. strongly than the "Intensity" functions) by using a multiplicative
  1185. function.  "Scale Up" scales each pixel value by 2 (overflow values
  1186. are truncated at the maximum pixel intensity).
  1187.     
  1188.  
  1189. TRANSFORM INTENSITY SCALE DOWN
  1190.  
  1191.     "Scale Down" halves the intensity of a selected area.
  1192.         
  1193.  
  1194. TRANSFORM INTENSITY SCALE OTHER...
  1195.  
  1196.     The "Scale Other..." option works like the "Scale Up" and "Scale Down"
  1197. functions, by allows larger scalars to be entered.  A requester is brought
  1198. up, allowing values from -20..20 to be entered (zero has no effect).
  1199. Negative values correspond to Scale Down values, while positive values
  1200. cause scaling up.
  1201.     
  1202.  
  1203. TRANSFORM INTENSITY ROOT
  1204.  
  1205.     The "Root" option dramatically scales down large intensity range by
  1206. replacing each pixel by its square root.
  1207.  
  1208.  
  1209. TRANSFORM MERGE
  1210.  
  1211.     The "Merge" function is used to combine the current picture with
  1212. another loaded from disk.  The submenu selected controls the manner
  1213. in which the pictures are merged.
  1214.     
  1215.     When any merge option is selected, a file requester is activated,
  1216. allowing you to specify the second picture.  Typically, this should
  1217. be the original picture, or at least one with the same dimensions and
  1218. depth of the original source, but this is not required.
  1219.  
  1220.     When "OK" is selected, a new screen containing the selected picture
  1221. is activated, and then the corresponding pictures are merged.
  1222.  
  1223.  
  1224. TRANSFORM MERGE OVERLAY
  1225.  
  1226.     The "Merge Overlay" function copies all pixels in the merge picture
  1227. onto the original one wherever the original one contains a zero pixel.
  1228. This is somewhat like a genlock overlay.
  1229.  
  1230.  
  1231. TRANSFORM MERGE ADD
  1232.  
  1233.     The "Add Overlay" function performs an arithmetic merge of the
  1234. two pictures, limiting the pixels to the maximum allowed value if
  1235. overflow occurs.
  1236.  
  1237.  
  1238. TRANSFORM MERGE SUBTRACT
  1239.  
  1240.     The "Subtract Overlay" function performs an arithmetic merge of the
  1241. two pictures, subtracting the merge picture from the source picture.
  1242. Pixels are limited to the minimum allowed value if underflow occurs.
  1243.  
  1244.  
  1245. TRANSFORM MERGE AND
  1246.  
  1247.     The "AND" function uses the Amiga's blitter to perform a logical
  1248. AND (source & merge -> source).
  1249.     
  1250.  
  1251. TRANSFORM MERGE OR
  1252.  
  1253.     The "OR" function uses the Amiga's blitter to perform a logical
  1254. OR (source | merge -> source).
  1255.  
  1256.  
  1257. TRANSFORM MERGE XOR
  1258.  
  1259.     The "XOR" function uses the Amiga's blitter to perform a logical
  1260. XOR (source ^ merge -> source).
  1261.  
  1262.  
  1263. TRANSFORM MERGE OTHER...
  1264.  
  1265.     The "Other..." function allows custom blitter operations; to use,
  1266. enter the blitter minterm as a decimal number (or in hex if you preceed
  1267. it with '$').  Refer to the Amiga RKM's for details on blitter minterms.
  1268.  
  1269.  
  1270. PICTURE HISTOGRAM DISPLAY
  1271.  
  1272.     The "Histogram Display" function counts the number of each pixel
  1273. values in the picture or selected area, and displays the totals.  The
  1274. results are displayed as a graph in the main (WorkBench) window.
  1275.  
  1276.     Histograms can be produced of HAM pictures, but the information
  1277. is scaled down from 4096 pixels to 256 pixels when the X axis is
  1278. plotted.
  1279.     
  1280.  
  1281. PICTURE HISTOGRAM EQUALIZE
  1282.  
  1283.     The "Equalize" function uses the calculated histogram information
  1284. to adjust the color palette values to obtain a more uniform color
  1285. distribution.
  1286.  
  1287.  
  1288. PICTURE HISTOGRAM BAR GRAPH
  1289.  
  1290.     The "Bar Graph" option, if checked, causes histograms plots to
  1291. be generated using bar graphs.  If not selected, line graphs are
  1292. produced.
  1293.  
  1294.  
  1295. PICTURE COLORS PALETTE
  1296.  
  1297.     The "Palette..." option brings up a color palette on the screen.
  1298. You can select a particular color from the block on the palette window,
  1299. and alter its red, green, and blue components using the three sliders
  1300. labelled R, G, and B.
  1301.  
  1302.     If you select "OK", the changes are added to your picture.  If
  1303. you select "Cancel", the old palette is restored.
  1304.  
  1305.  
  1306. PICTURE COLORS GREYSCALE
  1307.  
  1308.     The "Greyscale" option sets the picture's color map to a linearly
  1309. increasing range.  This option automatically adjusts to different
  1310. picture depths, but since the Amiga's video DAC's are only 4 bits
  1311. wide, only 16-color pictures can make proper use of greyscale images.
  1312. Pictures with more than 16 colors will have repeated grey colors,
  1313. while those with less than 16 colors will have skipped values.
  1314.  
  1315.  
  1316. PICTURE COLORS NEGATIVE
  1317.  
  1318.     The "Negative" option reverses the order of the color map.  If
  1319. the picture currently has a greyscale color map, the picture will
  1320. appear as a negative; otherwise, it is just an interesting effect.
  1321. Negative values can sometimes make it easier to pick out features
  1322. and details of the picture.
  1323.     
  1324. Using this function on color pictures is... also interesting -- you
  1325. will generally want to convert it to black and white first.
  1326.  
  1327.     SEE ALSO:    PICTURE COLORS COLOR TO B&W
  1328.                 PICTURE GREYSCALE
  1329.  
  1330.  
  1331. PICTURE COLORS SATURATE
  1332.  
  1333.     The "Saturate" function converts the palette to values such that
  1334. all colors are saturated (i.e, if a color is mostly red, it becomes
  1335. pure red).
  1336.     
  1337.     OPTIONS
  1338.  
  1339.     ALT - if held while selecting this function, then the intensity
  1340.           level is also intensified; this forces each pixel to a basic
  1341.           primary color (red, green, blue, yellow, magenta, cyan, white
  1342.           or black).
  1343.  
  1344.  
  1345. PICTURE COLORS PSEUDO-COLOR
  1346.  
  1347.     The "PsuedoColor" option converts the palette to values such that
  1348. dark colors are tinted blue (i.e., "cold") and bright colors
  1349. are tinted red (i.e., "hot").  Average colors are given a green hue.
  1350. The effect is much like a thermograph, and tends to accentuate the
  1351. difference between pixels.
  1352.     
  1353.     OPTIONS
  1354.  
  1355.     ALT - if held when the "Pseudo-Color" function is selected, then
  1356.           the color map is replaced with completely random values.
  1357.           This is mostly for fun.
  1358.  
  1359.  
  1360. PICTURE COLORS COLOR TO B&W
  1361.  
  1362.     The "Color to B&W" option converts a color picture to a black and
  1363. white one (a grey scale, actually).  This function is the primary tool
  1364. used to allow ImageLab to process color IFF files (it is also known as
  1365. the Un-Ted Turner function).  "Color to B&W" uses the standard EIA
  1366. weighting levels to obtains an evenly distributed grey scale.  Note:
  1367. if your picture has more than 16 colors, the greyscale will cause the
  1368. picture to appear grainier -- this is a limitation of the Amiga DAC
  1369. architecture.
  1370.  
  1371.  
  1372. PICTURE COLORS LINEARIZE
  1373.  
  1374.     The "Linearize" option converts the palette to a monotonically
  1375. increasing palette.  ImageLab requires such a palette for its
  1376. image processing function to perform properly.  For example, if your
  1377. four color palette is:
  1378.  
  1379.         000        555        fff        aaa
  1380.  
  1381. the "Linearize" function will re-order it as:
  1382.  
  1383.         000        555        aaa        fff
  1384.  
  1385. Note that this function requires rewriting all pixels in the picture
  1386. in order to avoid changing its appearance.  This function will be
  1387. required for some DigiView pictures which do not use a linearly
  1388. increasing palette.
  1389.  
  1390.  
  1391. PICTURE COLORS DELETE COLORS...
  1392.  
  1393.     The "Delete Colors..." function beings up a requester which has
  1394. a button for every possible color, numbered from 0..n.  To delete a
  1395. represented color, click on an unselected button and it will be
  1396. highlightes.  When "Ok" is selected, every selected color will be
  1397. deleted from the picture.  The remaining colors are then packed 
  1398. further down into the palette.  "Delete Colors..." allows you to
  1399. remap the color palette, possibly reducing the number of colors (and
  1400. therefore, graphics bit planes) required.
  1401.     
  1402.     See "Edit Screen" and "Edit Image" for related functions.
  1403.  
  1404. NOTE: since every pixel must be changed for this operation, it can
  1405.       be lengthy.
  1406.  
  1407.  
  1408. PICTURE COLORS MAP COLORS...
  1409.  
  1410.     The "Map Colors..." function operates similarly to "Delete Colors",
  1411. except that only two colors can be selected.  When "Ok" is selected,
  1412. those two colors are exchanged in both the color map and the picture.
  1413.  
  1414. See: DELETE COLORS...
  1415.  
  1416.  
  1417.  
  1418. PICTURE GAMMA CORRECTION
  1419.  
  1420.     The "Gamma Correction" applies a series of corrective factors to
  1421. the greyscale color map, based upon empirical values for the Amiga
  1422. monitor.  These factors vary quite a bit; to alter them, hold down
  1423. the ALT key when selecting "Gamma Correction" and a requester will
  1424. allow you to enter other values for gamma, c, and I0.  The default
  1425. values are:
  1426.  
  1427.     gamma    = 0.5
  1428.     c        = 1.75
  1429.     I0        = 1.00
  1430.  
  1431.  
  1432. PICTURE HAM CONVERSION
  1433.  
  1434.     The "HAM Conversion" option is enabled only when the loaded
  1435. image is a HAM picture.  Selecting this function converts the picture
  1436. or selected area to a 4-plane greyscaled image.
  1437.  
  1438.     "HAM Conversion" correctly processes selected area that do not
  1439. begin in the left-most column by scanning all pixels to the left of
  1440. the selection area and tracking the resulting RGB values.
  1441.  
  1442.  
  1443. PICTURE HALFTONE...
  1444.  
  1445.     The "Halftone..." function allows the conversion of the current
  1446. screen to a halftoned image.  A requester allows the selection of a
  1447. two-cell or three-cell halftone (note that this implies that the
  1448. resulting picture will be two or three times as large as the
  1449. selected area).
  1450.  
  1451.     The original screen is replaced with a 1 bit-plane deep screen
  1452. containing the half-toned image (in black and white).
  1453.  
  1454.  
  1455. OTHER POSITION SCREEN TO FRONT
  1456.  
  1457.     Moves the image screen to the front.
  1458.  
  1459.  
  1460. OTHER POSITION SCREEN TO BACK
  1461.  
  1462.     Moves the image screen to the back.
  1463.  
  1464.  
  1465. OTHER POSITION OCCUPY ALL
  1466.  
  1467.     Positions the image screen to occupy all of the display.  The menu
  1468. key for this function is LEFT-AMIGA- ','.
  1469.  
  1470.  
  1471. OTHER POSITION OCCUPY MIDDLE
  1472.  
  1473.     Positions the image screen to occupy half of the display.  The menu
  1474. key for this function is LEFT-AMIGA- '.'.
  1475.  
  1476.  
  1477. OTHER POSITION OCCUPY LITTLE
  1478.  
  1479.     Positions the image screen to occupy a small part of the display.
  1480. The menu key for this function is LEFT-AMIGA- '.'.
  1481.  
  1482.  
  1483. OTHER AUTO FRONT
  1484.  
  1485.     The "Auto Front" option, if checked, automtically flips the image
  1486. screen to the front and back after each ImageLab function is executed.
  1487. This should make it easier to access the menus without having to use
  1488. the screen position functions or Left-Amiga-M/N each time.
  1489.  
  1490. BUGS: it causes the screen to flip for trivial functions also, which
  1491.       is very annoying.
  1492.  
  1493.  
  1494. OTHER SAVE TYPE COMPRESS PICTURE
  1495.  
  1496.     The "Compress Picture" item specifies how pictures will be saved.
  1497. If the item is not checked, the file will be saved using no compression.
  1498. If checked, the standard byte-run compression will be used.  The state
  1499. of this menu item is set each time an image is loaded, and reflects
  1500. the method of compression used in the file.  This option is examined
  1501. when images are written out, so you can use this to change the compression
  1502. method, if needed.
  1503.  
  1504.  
  1505. OTHER SAVE TYPE SAVE FFT DATA
  1506.  
  1507.     The "Save FFT Data" option allows ImageLab to write out any FFT
  1508. data with the image file.  The data is saved in a FORM ILBM file
  1509. with the usual image data, and the FFT data stored in a "CFFT"
  1510. chuck.
  1511.  
  1512.     By default, this is disabled, since "CFFT" is a custom, non-
  1513. registered IFF ID.  This *should* be transparent to other picture
  1514. display programs, but, alas, that is not always true.
  1515.  
  1516.  
  1517. OTHER RESTRICT PALETTE
  1518.  
  1519.     The "Restrict Palette" function is primarily used to deal with
  1520. image files which have a palette larger than is necessary to
  1521. represent the picture (i.e., the picture has 16 colors, but the
  1522. palette has 32 locations reserved).  This occurs often with some
  1523. DigiView pictures, which creates an extra bit-plane for internal
  1524. control functions.
  1525.  
  1526.     If this option is checked, then the palette is halved (regardless
  1527. of the total number).  The "Restrict Palette" option is reset (unchecked)
  1528. whenever a new picture is loaded (or "Revert"ed), or when the screen
  1529. parameters are edited.
  1530.  
  1531. See also: EDIT PARAMETERS
  1532.       OPEN
  1533.       REVERT
  1534.  
  1535.  
  1536. OTHER ICONS
  1537.  
  1538.     The "Icons" item controls whether ImageLab creates an icon whenever
  1539. a file is saved (via "Save" or "Save As...").  If "Icons" is checked (sic), 
  1540. an icon is generated that resembles the Deluxe Paint (tm) icon, except
  1541. that the default project is ImageLab.
  1542.  
  1543.     Icon generation defaults to unchecked if ImageLab is run from a CLI,
  1544. and to checked if it is run from WorkBench.  Icon generation can also be
  1545. initialized by the options:
  1546.  
  1547.     -b            (from the CLI)
  1548.     ICON=OFF    (from the WorkBench)
  1549.  
  1550.  
  1551. OTHER BELL
  1552.  
  1553.     The "Bell" item controls whether ImageLab signals an alarm on the
  1554. completion of any operation.  If the menu is checked, then the Amiga's
  1555. bell function is called.  This will simply flash the screen by default,
  1556. but several public domain functions are available which will intercept
  1557. this call and substitute an audible bell or a sampled sound.
  1558.  
  1559.     The primary use of the bell function is to alert you when some of
  1560. the lengthier functions have completed.  Some functions, especially
  1561. the FFT function, may take several minutes to complete.
  1562.  
  1563.     The bell is off by default, since it would tend to be annoying for
  1564. trivial functions.  It can be enabled by selecting the menu item until
  1565. the checkmark is present.  The bell can be enabled by default by using
  1566. the options:
  1567.  
  1568.     -b            (from the CLI)
  1569.     BELL=ON        (from the WorkBench)
  1570.