home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / Misc / crx-is2.lha / DocTXT.lha / ImageStudio.txt < prev   
Encoding:
Text File  |  1995-05-21  |  202.2 KB  |  7,301 lines

  1. ImageStudio, shareware image processing and conversion package for the
  2. Amiga.
  3.  
  4.    Copyright (C) 1994,1995 Andy Dean, Graham Dean.
  5.  
  6.    Welcome to ImageStudio, shareware image processing and conversion
  7. package for the Amiga.
  8.  
  9.    This document applies to version 2.1.x, written on 22nd May 1995,
  10. Copyright (C) 1994,1995 Andy Dean, Graham Dean.
  11.  
  12. Introduction
  13. ************
  14.  
  15.    This chapter gives a brief introduction into the features offered by
  16. the program.
  17.  
  18. Copyright and Disclaimer
  19. ========================
  20.  
  21.    No guarantee of any kind is given that the programs described in
  22. this document are 100% reliable. You are using this material at your
  23. own risk. The authors *can not* be made responsible for any damage
  24. which is caused by using these programs.
  25.  
  26.    The unregistered package is freeware, but still copyright by Andy
  27. Dean and Graham Dean. This means that you can copy it freely as long as
  28. you don't ask for a more than nominal copying fee.
  29.  
  30.    The registered version of the program and its associated keyfile
  31. *may not* be freely distributed.
  32.  
  33.    The GIF loader/saver module (gif.isio) remains freely-distributable
  34. for both the registered and unregistered versions of the program. No
  35. charge is made for this module.
  36.  
  37.    Permission is granted to include the unregistered package in
  38. Public-Domain collections, especially in the excellent Fred Fish Amiga
  39. Disk Library (including CD ROM versions of it). The distribution file
  40. may be uploaded to Bulletin Board Systems or FTP servers. If you want
  41. to distribute this package you must not remove or alter any of the
  42. supplied files, although the files may be re-compressed using any Amiga
  43. archiver program.
  44.  
  45.    This program (or parts of it) may not be included or used in
  46. commercial programs unless by written permission from the authors.
  47.  
  48.    Installer and Installer project icon (c) Copyright 1991-93
  49. Commodore-Amiga, Inc.  All Rights Reserved. Reproduced and distributed
  50. under license from Commodore.
  51.  
  52.    INSTALLER SOFTWARE IS PROVIDED "AS-IS" AND SUBJECT TO CHANGE; NO
  53. WARRANTIES ARE MADE.  ALL USE IS AT YOUR OWN RISK. NO LIABILITY OR
  54. RESPONSIBILITY IS ASSUMED.
  55.  
  56.    amigaguide.library (c) Copyright 1991-93 Commodore-Amiga, Inc. All
  57. Rights Reserved. Reproduced and distributed under license from
  58. Commodore.
  59.  
  60.    AMIGAGUIDE SOFTWARE IS PROVIDED "AS-IS" AND SUBJECT TO CHANGE; NO
  61. WARRANTIES ARE MADE.  ALL USE IS AT YOUR OWN RISK. NO LIABILITY OR
  62. RESPONSIBILITY IS ASSUMED.
  63.  
  64.    Jonathan Forbes, the author of LX, has granted permission to include
  65. the unmodified Version 1.03 LX executable by itself (i.e. without
  66. documentation) with any PUBLIC DOMAIN or SHAREWARE package, provided
  67. that a brief credit note is included in the program's documentation
  68. (see Credits).
  69.  
  70. Machine requirements
  71. ====================
  72.  
  73.    ImageStudio requires the following system to run:
  74.  
  75.    * Workbench 2.04 or above.
  76.  
  77.    * Around 1 megabyte of free memory.
  78.  
  79.    * Several megabytes of free hard disk space.
  80.  
  81.    If ImageStudio is run on an AGA machine (A1200 or A4000), it will
  82. use the new display modes and palette routines to improve the quality
  83. of the internal viewer images.
  84.  
  85. Brief description
  86. =================
  87.  
  88.    ImageStudio is written for the casual graphics user who wishes to
  89. convert or manipulate various graphics formats on a modest Amiga
  90. system. There are several commercial offerings available, however the
  91. casual user is paying a lot of money for many facilities and options
  92. they would probably never use.
  93.  
  94.    Bitmap graphics, by their nature, usually require large amounts of
  95. RAM. One of the main objectives of ImageStudio was to reduce this
  96. burden by utilising virtual memory - most users have more spare hard
  97. disk space than spare RAM.
  98.  
  99.    ImageStudio works with several buffers at any one time (dependant on
  100. how many levels of undo are specified), each of these buffers can hold
  101. either colour-mapped or 24-bit images. For a detailed description of
  102. colour-mapped and 24-bit images, See Image types.
  103.  
  104.    ImageStudio comes with a fully featured ARexx port, which allows the
  105. writing of macro scripts to automate repetative processes and also
  106. allows communication with other ARexx aware programs. Again, ARexx has
  107. the reputation of being "something pretty difficult", so we've
  108. simplified the use of ARexx in ImageStudio by allowing the user to
  109. create, edit and run scripts entirely within ImageStudio - ImageStudio
  110. even provides a blank template as a starting point for each new script.
  111.  
  112. List of features
  113. ================
  114.  
  115.    General:
  116.    * Full 24-bit image buffers, with optimizations for colour-mapped
  117.      (palette based) images.
  118.  
  119.    * Up to 100 levels of undo / redo.
  120.  
  121.    * User configurable virtual memory.
  122.  
  123.    * Fully font sensitive, style guide complient, user interface.
  124.  
  125.    * Fully featured, easy to use, ARexx interface.
  126.  
  127.    * Modular loaders and savers.
  128.  
  129.    * User saveable preferences.
  130.  
  131.    * Operations applicable to the whole image or a selected region.
  132.  
  133.    * Up to 256 greyshade preview window (with optional dither).
  134.  
  135.    * Zoom on preview window.
  136.  
  137.    * Internal / external viewers (external for third party 24-bit
  138.      graphics cards).
  139.  
  140.    * Loading / saving / manipulating of AGA image formats (e.g. 256
  141.      colours, HAM8) on non-AGA machines.
  142.  
  143.    * Max image size of 32000 x 32000 (crops images to 250 x 250 in the
  144.      unregistered version).
  145.  
  146.    * Copy / paste to / from the system clipboard.
  147.  
  148.    * Runs on all Workbench 2.04+ Amiga's - utilises AGA chipset if
  149.      available.
  150.  
  151.    * Online AmigaGuide help, as well as ASCII, TeX `.dvi' and
  152.      PostScript documentation.
  153.  
  154.    * Multi-level help error requesters.
  155.  
  156.    * Public screen.
  157.  
  158.    * Requires no third party libraries or utilities.
  159.  
  160.    Import:
  161.    * IFF-ILBM formats (Standard palette based, HAM6, HAM8, extra
  162.      halfbright, ILBM24)
  163.  
  164.    * BMP
  165.  
  166.    * GIF (conforming to GIF87a or GIF89a)
  167.  
  168.    * JPEG (conforming to JFIF standard)
  169.  
  170.    * PCX
  171.  
  172.    * Targa
  173.  
  174.    Export:
  175.    * IFF-ILBM formats (Standard palette based, HAM6, HAM8, extra
  176.      halfbright, ILBM24)
  177.  
  178.    * BMP
  179.  
  180.    * EPS
  181.  
  182.    * GIF (conforming to GIF87a or GIF89a)
  183.  
  184.    * JPEG (conforming to JFIF standard)
  185.  
  186.    * PCX
  187.  
  188.    * Targa
  189.  
  190.    Colour Balance:
  191.    * All operations are available to the R,G,B components separately.
  192.  
  193.    * Brightness ( upto ±100%)
  194.  
  195.    * Contrast (non to full)
  196.  
  197.    * Gamma ( + and - )
  198.  
  199.    Convolution:
  200.    * Many supplied convolution filters.
  201.  
  202.    * User definable convolutions, load and save to disk.
  203.  
  204.    Effects:
  205.    * Built in effects: Dynamic range expansion, FlipX, FlipY, RollX,
  206.      RollY, Negative, Greyscale, Highlight, Shadow, Random, Pixelize,
  207.      Remove isolated pixels.
  208.  
  209.    Scale:
  210.    * Crop to selected region.
  211.  
  212.    * Increase / decrease scale by percentage or absolute image size.
  213.  
  214.    * Simple scale or colour averaged.
  215.  
  216.    Colour reduction:
  217.    * Increase colour mapped images to 24-bit.
  218.  
  219.    * Decrease number of colours in 24-bit or colour mapped images via
  220.      Heckbert median cut algorithm.
  221.  
  222.    * Dithers available for colour reduction: None, Floyd-Steinberg,
  223.      Burkes, Stucki, Sierra, Jarvis, Stevenson-Arce.
  224.  
  225.    Palette:
  226.    * Edit palette colours and ranges.
  227.  
  228.    * Save current palette.
  229.  
  230.    * Force palette onto current image, dithering if necessary (all
  231.      dithers available).
  232.  
  233. Shareware version
  234. =================
  235.  
  236.    To encourage users to register, the freely distributable version of
  237. ImageStudio will crop images to 250x250 pixels. All other operations
  238. are available.
  239.  
  240.    For details on how to register, See How to register.
  241.  
  242. Starting ImageStudio
  243. ====================
  244.  
  245.    ImageStudio can be started from either the Workbench or CLI. From
  246. the Workbench it is simply a case of double-clicking on the icon.
  247. ImageStudio supports shift-clicking on a file to start the program with
  248. (see the Workbench manual for more information).
  249.  
  250.    To start ImageStudio from the CLI, simply type:
  251.  
  252.      run ImageStudio [filename]
  253.  
  254.    where `filename' is an optional file to load in at startup. The full
  255. range of tooltypes is supported, and can be appended to the CLI
  256. command. For example:
  257.  
  258.      run ImageStudio "SCREENNAME=Image2" "PREVIEWDITHER=YES" [filename]
  259.  
  260.    would start the program on a public screen named `Image2' with
  261. preview dithering on. See Tooltypes, for a full list of available
  262. tooltypes.
  263.  
  264. Upgrading from version 1.x.x
  265. ============================
  266.  
  267.    All versions of ImageStudio from version 2.0.0 require a *keyfile*
  268. to work fully.
  269.  
  270.    Users who have registered the ImageStudio package after v2.0.0 will
  271. be provided with a unique keyfile that can be used immediately.
  272.  
  273.    Users who have registered v1.x.x of the ImageStudio package will
  274. have to create their own keyfile using the `Create keyfile' option
  275. under the `Project' menu. See Create_keyfile, for more details.
  276.  
  277.    The idea of the keyfile is that once a keyfile has been created, it
  278. can be placed somewhere where all the programs in the ImageStudio
  279. package can access it. This is typically either the ImageStudio drawer
  280. or the `S:' directory. The user should never need to create another
  281. keyfile, it should work with all future versions of the software; for
  282. this reason, it is suggested that the keyfile is backed up and kept
  283. somewhere safe, as we will be unwilling to give out replacements should
  284. you loose it.
  285.  
  286.    It should also be noted that each keyfile is unique to each user,
  287. and your keyfile should not be given to others. If the number of
  288. registrations should drop due to people abusing the keyfile scheme and
  289. distributing pirate versions of the program, we shall be forced to do
  290. one or more of the following:
  291.  
  292.   1. Stop providing free upgrades. All programs will be individually
  293.      stamped and all upgrades must be paid for.
  294.  
  295.   2. Remove online help and provide printed manuals instead. This will
  296.      naturally raise the price substantially.
  297.  
  298.   3. Sell the software to a software publisher for commercial
  299.      distribution. This is likely to lead to a large price increase.
  300.  
  301.   4. Stop developing ImageStudio and related products.
  302.  
  303.    We see no reason why we should have to resort to any of these
  304. measures, but if you're using a pirated copy of ImageStudio now and you
  305. refuse to register, you *WILL* force this upon us.
  306.  
  307.    If you are using a pirate copy of ImageStudio, so will hundreds of
  308. others. A hundred orders to us is the difference between us writing the
  309. next version of the program, and us abandoning it. It really is your
  310. choice.
  311.  
  312. Configuring ImageStudio
  313. =======================
  314.  
  315.    In order to benefit from ImageStudio's virtual memory, it is
  316. recommended that the default location used for the storage of the
  317. temporary files is changed. The default location for the storage of
  318. these files is `T:' which is usually in RAM - we want to move this out
  319. onto harddisk.
  320.  
  321.    To do this, select `Prefs' from the `Project' menu and open up the
  322. prefs requester. Change the TEMPDIR preference to the desired location
  323. for the temporary files. See Prefs, for more information on changing
  324. preference variables.
  325.  
  326.    It is suggested that a drawer be made on a harddisk partition with
  327. lots of space to store these files. For example, make a drawer in your
  328. `Work:' partition called `tmp', and change the TEMPDIR preference to
  329. read `Work:tmp'.
  330.  
  331. Tutorial
  332. ********
  333.  
  334.    This chapter introduces ImageStudio by way of a few tutorials
  335. demonstrating commonly performed operations.
  336.  
  337. Changing the image format
  338. =========================
  339.  
  340.    The simplest use of ImageStudio is just as a file format converter;
  341. See File formats, for details about the supported file formats.
  342.  
  343.    In this example we will change the image format of the
  344. `FW14B_250x250.gif' from GIF to IFF-ILBM.
  345.  
  346.   1. Load the file `FW14B_250x250.gif' from the `Pics' drawer. To do
  347.      this, select `Open' from the `Project' menu. When the file
  348.      requester opens, select the file and it will load into
  349.      ImageStudio. The greyscale preview will show the image.
  350.  
  351.   2. The Infobar at the bottom of the screen shows the current image
  352.      size and number of colours, as well as a fuelgauge showing
  353.      progress when applicable. The current co-ordinates of the pointer
  354.      are also shown when the preview window is active.
  355.  
  356.   3. Open the save requester. To do this, select `Save' from the
  357.      `Project' menu. A requester will open, containing (amongst other
  358.      things) possible save formats.
  359.  
  360.   4. Select the file format to save. To do this, click on `IFF-ILBM' in
  361.      the listview.
  362.  
  363.   5. Change the filename to avoid overwriting the original file. To do
  364.      this, type the new filename - `FW14B_250x250.ilbm' into the
  365.      `Filename' string gadget.
  366.  
  367.   6. Save out the file by clicking on the `Save' gadget.
  368.  
  369.    The file will now be saved out as a 256 colour IFF-ILBM onto the
  370. disk.
  371.  
  372.    Note:
  373.  
  374.    * ImageStudio automatically recognises the filetype of the incoming
  375.      image. It will use its internal loaders first, then trying
  376.      datatypes if running on Workbench 2.1+.
  377.  
  378.    * All time consuming operations show their progress in the Infobar's
  379.      fuelgauge and can be aborted by clicking on the `Abort' gadget.
  380.  
  381. Changing the number of colours
  382. ==============================
  383.  
  384.    Often it is necessary to reduce the number of colours in an image,
  385. either to reduce the file size or produce images compatible with
  386. non-AGA software.
  387.  
  388.    In this example we will reduce the number of colours in the
  389. `FW14B_250x250.gif' image from 256 colours to 16 colours.
  390.  
  391.   1. Load in the `FW14B_250x250.gif' from the `Pics' drawer, if it not
  392.      already loaded.
  393.  
  394.   2. Open the colours requester by selecting `Colours...' from the
  395.      `Process' menu.
  396.  
  397.   3. The gadgets in the requester will show that the image is a 256
  398.      colour colour-mapped image. Change the number of colours to 16 by
  399.      clicking on the cycle gadget or sliding the `No. of colours'
  400.      slider.
  401.  
  402.   4. Leave the `Colour choice' and `Dithering' gadgets for now.
  403.  
  404.   5. Click on `OK' to perform the operation.
  405.  
  406.   6. When the operation is complete, view the image with the internal
  407.      viewer by selecting `View' from the `View' menu. A 16 colour Lores
  408.      image will be displayed.
  409.  
  410.   7. Remove the internal viewer by clicking the right mouse button.
  411.  
  412.    The colour reduced image should contain all the main colours used in
  413. the original image (blue, yellow, red and grey), but should contain
  414. less shades of the colours. To give the impression of more colours,
  415. dithering can be used to mix pixels of the chosen colours. To perform
  416. the last operation with dithering:
  417.  
  418.   1. Undo the colour reduction operation to return to the original 256
  419.      colour image. To do this, select `Undo' from the `Edit' menu.
  420.  
  421.   2. Bring up the colours requester as before and select 16 colours.
  422.      Also change the `Dithering' gadget from `None' to
  423.      `Floyd-Steinberg'.
  424.  
  425.   3. Click on `OK' to perform the operation.
  426.  
  427.   4. View as before.
  428.  
  429.    The image will now perform more gradual changes to colour changes.
  430.  
  431. Changing the colour balance
  432. ===========================
  433.  
  434.    When receiving images from external sources (scanners, frame
  435. grabbers) it is ofter necessary to change to "colour balance" of the
  436. image. Frame grabbers, for example, may have too much `red' in the
  437. image.
  438.  
  439.    In this example we shall see the effects on the
  440. `ColourFace_200x250RED.ham6' image of altering the colour balance.
  441.  
  442.   1. Load in the `ColourFace_200x250RED.ham6' image from the `Pics'
  443.      drawer. As the file is in HAM6 format, it is turned into 24-bit
  444.      internally.
  445.  
  446.   2. View the image with the internal viewer. As the Amiga doesn't have
  447.      true 24-bit screenmodes, the internal viewer will approximate the
  448.      24-bit image with a HAM preview screen (HAM6 on ECS machines, HAM8
  449.      on AGA machines). It should be obvious from the viewer that the
  450.      image is too red.
  451.  
  452.   3. Open the balance floating palette if it is not already open. Do
  453.      this by selecting `Show balance' from the `Tools' menu.
  454.  
  455.   4. To remove some of the red component, make sure that we are only
  456.      dealing with the red component. To do this, make sure that only
  457.      the `Red' checkbox at the bottom of the floating palette is
  458.      checked.
  459.  
  460.   5. Reduce the brightness slider, by say 20%. The graph on the right
  461.      of the floating palette will reflect the change (see Show_balance
  462.      for more details on the graph).
  463.  
  464.   6. View the image again, this time the image should have lost much of
  465.      its unnatural red tint.
  466.  
  467.    Brightness and contrast work in very much the same way as a TV set,
  468. but gamma may need some explanation.
  469.  
  470.    When printing an image out, it is usual for light colours to be
  471. resolved well and dark colours to be reduced to a dark mush. It is
  472. therefore preferable to have some way boost the brightness of the
  473. mid-dark colours whilst still leaving the very light colours light and
  474. the very dark colours dark. Gamma is the operator to perform this
  475. change. By applying a small amount of positive gamma, a much better
  476. balanced image can be produced for printing out.
  477.  
  478.    See Show_balance, for more information on the balance floating
  479. palette.
  480.  
  481. Applying an effect
  482. ==================
  483.  
  484.    ImageStudio has many built in effects for performing commonly used
  485. operations.
  486.  
  487.    This example will remove some noise from a region of
  488. `HappyFace_240x250.bmp', a simulated scanned image.
  489.  
  490.   1. Load in the `HappyFace_240x250.bmp' image from the `Pics' drawer.
  491.  
  492.   2. The image represents what may happen if you hand scan an image
  493.      into the computer - lots of "noise".
  494.  
  495.   3. Open the effects floating palette if it is not already open. Do
  496.      this by selecting `Show effects' from the `Tools' menu.
  497.  
  498.   4. Select `Remove isolated pixels' in the listview of the floating
  499.      palette. If you clicked on the `Apply' button now, the effect
  500.      would be applied to the whole image. To compare the image before
  501.      and after the effect, we'll only apply the effect to the left hand
  502.      side of the image.
  503.  
  504.   5. Open the `Region co-ords' requester by selecting `Region
  505.      co-ords...' from the `Edit' menu. To select the left hand side of
  506.      the image, set the following values in the gadgets: Min x = 0, Min
  507.      y = 0, Width = 120, Height = 250. Make sure that the radio button
  508.      on the left of the requester shows that the Width / Height are
  509.      being used, not the Max values; click on `Ok'.
  510.  
  511.   6. A region of "crawling ants" will show the selected region.
  512.  
  513.   7. Click on `Apply' of the effects floating palette. The `Remove
  514.      isolated pixels' effect will be applied to the selected region.
  515.  
  516.   8. The left of the image will have had a lot of the noise
  517.      automatically removed. Clear the selected region by clicking in
  518.      the preview window.
  519.  
  520.    Note:
  521.    * Not all effects can be applied to regions and whole images. See
  522.      Effects, for a comprehensive description of all the available
  523.      effects.
  524.  
  525.    See Show_effects, for more information on the effects floating
  526. palette.
  527.  
  528. Applying a convolution
  529. ======================
  530.  
  531.    Convolution is a powerful image processing tool, ImageStudio allows
  532. the user to define their own convolution filters.
  533.  
  534.    This example will apply a `Texture' filter to the
  535. `CheetahFace_250x200.ilbm' image.
  536.  
  537.   1. Load in the `CheetahFace_250x200.ilbm' image from the `Pics'
  538.      drawer.
  539.  
  540.   2. The `CheetahFace_250x200.ilbm' image is a 32 colour colour-mapped
  541.      image and convolution only works in 24-bit (see Show_convolves for
  542.      information on how convolves actually work). We therefore need to
  543.      turn the image into a 24-bit.
  544.  
  545.   3. Open the colours requester and click on the `16 million colours'
  546.      radio button on the left. Click on `OK'. The image in converted
  547.      into 24-bit.
  548.  
  549.   4. Open the convolves floating palette if it is not already open. Do
  550.      this by selecting `Show convolves' from the `Tools' menu.
  551.  
  552.   5. There should be many convolution filters in the list, click on
  553.      `Texture'.
  554.  
  555.   6. Apply the convolution filter to the image by clicking on `Apply'
  556.      at the bottom of the floating palette.
  557.  
  558.   7. After the filter has been applied, you could view the result with
  559.      the internal viewer in 24-bit, but for a clearer image we'll
  560.      convert it back to 32 colours.
  561.  
  562.   8. Open the colours requester, select `No. colours' = 32 and `Dither'
  563.      = `None'. Click on `OK'.
  564.  
  565.   9. Now view the 32 colour image with the internal viewer. The image
  566.      now has a rough paper(?) texture applied to it.
  567.  
  568.    Note:
  569.  
  570.    * There are many commonly used convolution filters available, it is
  571.      up to the user to build a collection suitable filters for their
  572.      own use.
  573.  
  574.    See Show_convolves, for more information on the convolves floating
  575. palette.
  576.  
  577. Scaling the image
  578. =================
  579.  
  580.    In this example we will scale the `CheetahFace_250x200.ilbm' image
  581. from 250 x 200 pixels down to 80 x 40 (icon size).
  582.  
  583.   1. Load in the `CheetahFace_250x200.ilbm' image from the `Pics'
  584.      drawer.
  585.  
  586.   2. Open the scale requester by selecting `Scale...' in the `Process'
  587.      menu.
  588.  
  589.   3. Set the `Width' = 80 and `Height' = 40. Click on `OK'.
  590.  
  591.   4. The image is re-scaled to that of an icon.
  592.  
  593.    The finish the creation of the icon, we can load it into Commodore's
  594. `IconEdit' program. Both ImageStudio and IconEdit support the
  595. clipboard, so we can copy the image into the clipboard from ImageStudio
  596. and paste it into IconEdit.
  597.  
  598.   1. Copy the image to the clipboard by selected `Copy' in the `Edit'
  599.      menu of ImageStudio.
  600.  
  601.   2. Run IconEdit from the `Tools' drawer of your system partition.
  602.  
  603.   3. Select `Paste' from IconEdit's `Edit' menu. The image will be
  604.      copied into IconEdit for final editing.
  605.  
  606. Menu options
  607. ************
  608.  
  609.    This chapter describes ImageStudio's menu options in detail.
  610.  
  611.    Selecting a main menu from the list below will give a list of
  612. sub-menu options.
  613.  
  614. Project
  615. =======
  616.  
  617.    Select the submenu you wish to investigate.
  618.  
  619. Open
  620. ----
  621.  
  622.    Keyboard shortcut - `Amiga - O'
  623.  
  624.    This is how the user loads in an image into the program.
  625.  
  626.    A file requester will appear, through which the user can select a
  627. file to open. Upon selecting a file, ImageStudio will test the file
  628. against its known file formats - loading the file if the image type is
  629. recognised. If the image format is not recognised, an error will be
  630. shown.
  631.  
  632.    In most cases the image will load directly into ImageStudio; however
  633. in the case of HAM6 and HAM8 formats the image is converted into 24-bit
  634. data as it is loaded in, as ImageStudio cannot work directly on HAM
  635. images. For a detailed description of colour-mapped and 24-bit images,
  636. See Image types.
  637.  
  638. Save
  639. ----
  640.  
  641.    Keyboard shortcut - `Amiga - S'
  642.  
  643.    The save requester allows the user to choose the filename for the
  644. saved image as well as the image's format.
  645.  
  646.    To change the filename, either click in the string gadget and edit
  647. the filename directly or click on the `Choose...' gadget to select the
  648. filename with a file requester.
  649.  
  650.    To change the image format of the file to be saved, click in the
  651. listview on the appropriate format. Depending on the format selected,
  652. depends on whether the `Options...' button is available. Some formats
  653. (e.g. IFF-ILBM) have further options available by clicking on the
  654. `Options...' button.
  655.  
  656.    When the user has selected the filename and the image format, the
  657. file can be saved by clicking on `OK' or no action can be performed by
  658. clicking on `Cancel'. If the currently selected filename already
  659. exists, the user will be warned that they are about to overwrite it.
  660.  
  661. Screen
  662. ------
  663.  
  664.    The user may select the current screen's resolution, number of
  665. colours and font.
  666.  
  667. Screen mode
  668.      The screenmode requester allows the user to change the properties
  669.      of the current screen. Click on the desired screenmode as well as
  670.      the size, number of colours and overscan settings. To bring the
  671.      changes into effect, click on `OK' else to perform no action click
  672.      on `Cancel'.
  673.  
  674. Screen font
  675.      The screenfont requester allows the user to choose the font to be
  676.      used in all the ImageStudio windows and menus. Any Amiga font can
  677.      be used, although if a font which is too large to allow some of
  678.      the windows to fit on the screen is chosen, the program will
  679.      default back to using topaz 8.
  680.  
  681.      Under Workbench2.04, not all gadgets will scale properly with
  682.      different sized fonts. Checkbox gadgets and mutual exclude (radio
  683.      button) gadgets will remain a constant size, which may cause some
  684.      windows to look slightly strange with very large or very small
  685.      font sizes.
  686.  
  687. Prefs
  688. -----
  689.  
  690.    The user may configure the program to their own needs with the prefs
  691. requester. The requester consists of a scrolling list with all the
  692. available preferences, several gadgets that show the current tooltype
  693. value whilst allowing the user to change it, and a couple of checkboxes
  694. for saving the current screenmode and window positions. When the user
  695. is happy with the current values, they may save them as defaults by
  696. clicking `Save', use them for the current session by clicking `Use' or
  697. discard the changes by clicking `Cancel'.
  698.  
  699.    The preferences in the list are separated into string values (e.g.
  700. filenames, ARexx port name etc...), numeric values (e.g. virtual memory
  701. pagesize, number of undo buffers etc...) and boolean, or ON / OFF
  702. values (e.g. Online AmigaGuide help, splash window on startup etc...).
  703. A short description of the preference is shown on the left of the list,
  704. the tooltype (see Tooltypes) name is shown below.
  705.  
  706.    To change a preference value, click on its name in the list. The
  707. current value will be copied to the text or numeric value below; the
  708. exception to this is a boolean preference, see below. The value is
  709. changed by changing the displayed value in the gadget, it will be
  710. stored as this value if another preference is selected or the user
  711. presses `Save' or `Use'. If a string preference is selected that
  712. requires a filename to be chosen, the `Choose...' gadget can be used to
  713. select the desired filename from a file requester.
  714.  
  715.    Boolean preferences are changed by double-clicking on their entries
  716. in the list. The value will toggle between the two states.
  717.  
  718.    If the user wishes to save the current screenmode or window
  719. positions to be the defaults next time the program is started, they may
  720. click on the `Save screenmode' and / or the `Save window positions'
  721. checkboxes.
  722.  
  723.    When changing any of the preferences that require the use of an
  724. external program (e.g. the external text editor), the string must be
  725. formatted to contain a `%s' placed where the filename should be placed.
  726.  
  727.    The default string of
  728.  
  729.      run sys:Tools/Memacs <NIL: >NIL: "%s"
  730.  
  731.    for the `TEXTEDITOR' preference would run Commodore's Micro-emacs
  732. text editor to edit files. It is recommended that the "run" is added at
  733. the start of the string to run the program in the background (i.e.
  734. ImageStudio doesn't have to wait for the text editor to finish) and
  735. that the double-quotes are placed around the `%s' to allow for
  736. filenames containing spaces.
  737.  
  738.    The preferences values may also be read (see ARexx_PREF_GET) and
  739. written (see ARexx_PREF_SET) from ARexx.
  740.  
  741. About
  742. -----
  743.  
  744.    This brings up a small requester containing information about the
  745. program version number and the user name (only in registered version).
  746.  
  747. Info
  748. ----
  749.  
  750.    This brings up an information requester containing memory and file
  751. usage information.
  752.  
  753.    The `Memory' figures are the amount of RAM used by the buffers, the
  754. `VMem' figures are the amount of disk space used by the virtual memory.
  755.  
  756.    At the bottom of the requester the amount of free RAM and ARexx port
  757. name is shown.
  758.  
  759. Help
  760. ----
  761.  
  762.    Keyboard shortcut - `Amiga - H'
  763.  
  764.    This brings up the main page of the AmigaGuide document.
  765.  
  766.    In order for AmigaGuide help to work, the following must be
  767. satisfied:
  768.  
  769.   1. Commodore's AmigaGuide help has to be installed on your system.
  770.      This comes with Workbench3.0+ and can be freely obtained for
  771.      earlier versions of Workbench.
  772.  
  773.   2. The preference `HELP' must be `ON' (see Prefs).
  774.  
  775.   3. The *full* filename of the AmigaGuide helpfile must be given in
  776.      the `HELPFILE' preference (see Tooltype_HELPFILE).
  777.  
  778.    It is recommended that help be turned off if you are short of memory.
  779.  
  780.    Once help is running, it can either be accessed by selecting the
  781. `Help' submenu in the `Project' menu or by performing a standard "help
  782. menu pick" on a menu item. To do this, highlight the menu item you item
  783. you wish to know more about, but instead of releasing the right mouse
  784. button to select the item, press `Help' on the keyboard. To clarify,
  785. perform the following steps:
  786.  
  787.   1. Press right mouse button.
  788.  
  789.   2. Highlight menu item you wish to find out help on.
  790.  
  791.   3. Press `Help' on the keyboard.
  792.  
  793.   4. Release right mouse button.
  794.  
  795. Create keyfile
  796. --------------
  797.  
  798.    This allows registered users with v1.x.x of ImageStudio to create a
  799. keyfile to `unlock' the freely distributable versions of ImageStudio.
  800.  
  801.    A file requester will open asking the user to select their
  802. registered version of ImageStudio v1.x.x. If ImageStudio recognises
  803. this as a registered copy, a keyfile with the name given by the
  804. `KEYFILE' preference (see Tooltype_KEYFILE) will created.
  805.  
  806.    If all is successful, when ImageStudio is next started it will be
  807. fully operational.
  808.  
  809.    A plea:
  810.  
  811.      Please do not give your keyfile to anyone else. Each keyfile is
  812.      individual to each user, so should your keyfile get into
  813.      distribution it can be traced back to you. Don't try altering your
  814.      keyfile, it won't work.
  815.  
  816.      Many thanks for your co-operation in this matter.
  817.  
  818. Iconify
  819. -------
  820.  
  821.    Keyboard shortcut - `Amiga - !'
  822.  
  823.    This reduces the program to a small icon on the Workbench screen. To
  824. reopen the program, simply double-click on the icon. In order to reduce
  825. the amount of memory used by the program when it is iconified, some of
  826. the working memory used by the program is purged; this could lead to a
  827. freeing of several hundred K of memory, depending on the virtual memory
  828. page size and data in internal caches.
  829.  
  830. Quit
  831. ----
  832.  
  833.    This quits the program. If any changes remain unsaved, the user is
  834. warned before the program quits.
  835.  
  836. Edit
  837. ====
  838.  
  839.    Select the submenu you wish to investigate.
  840.  
  841. Undo
  842. ----
  843.  
  844.    Keyboard shortcut - `Amiga - U'
  845.  
  846.    Undos last operation.
  847.  
  848.    The maximum number of undos is set in the preferences requester, See
  849. Prefs.
  850.  
  851. Redo
  852. ----
  853.  
  854.    Keyboard shortcut - `Amiga - R'
  855.  
  856.    Redos last undo.
  857.  
  858.    The maximum number of redos is set in the preferences requester, See
  859. Prefs.
  860.  
  861. Copy
  862. ----
  863.  
  864.    Keyboard shortcut - `Amiga - C'
  865.  
  866.    Copies the current image to the clipboard.
  867.  
  868.    Once the image has been copied to the clipboard it can be used by
  869. any other program that supports the Amiga clipboard.
  870.  
  871. Paste
  872. -----
  873.  
  874.    Keyboard shortcut - `Amiga - V'
  875.  
  876.    Reads in image from the clipboard.
  877.  
  878. Flush buffers
  879. -------------
  880.  
  881.    Flushing the buffers will free any memory and diskspace used by undo
  882. / redo buffers. The user is warned that once the buffers have been
  883. freed, the data cannot be recovered. The current buffer (i.e. the image
  884. in the preview window) is not affected.
  885.  
  886. Region co-ords
  887. --------------
  888.  
  889.    Keyboard shortcut - `Amiga - D'
  890.  
  891.    Allows the user to select a region by typing the co-ordinates.
  892.  
  893.    The region co-ords requester allow the user to specify the selected
  894. region by either typing in the co-ordinates of the minimum and maximum
  895. corners of the rectangle or the minimum co-ordinates and the
  896. rectangle's width and height. A radio button on the left of the
  897. requester shows whether the maximum co-ords or the width and height are
  898. to be used to select the region.
  899.  
  900.    If there is already a selected region, these values are copied into
  901. the requester when it is opened.
  902.  
  903. Region clear
  904. ------------
  905.  
  906.    Removes any selected region from the preview window.
  907.  
  908.    As well as this menu item, the region can be cleared by simply
  909. clicking in the preview window.
  910.  
  911. Select all
  912. ----------
  913.  
  914.    Keyboard shortcut - `Amiga - A'
  915.  
  916.    Makes the selected region the whole of the displayed image in the
  917. preview window.
  918.  
  919.    Note:
  920.  
  921.    If the user has zoomed in on a region of the image (see Zoom_in),
  922. `Select all' will not select the whole image but just the displayed
  923. image in the preview window.
  924.  
  925. View
  926. ====
  927.  
  928.    Select the submenu you wish to investigate.
  929.  
  930. Full image
  931. ----------
  932.  
  933.    Keyboard shortcut - `Amiga - F'
  934.  
  935.    Displays the whole image in the preview window.
  936.  
  937. Zoom in
  938. -------
  939.  
  940.    Keyboard shortcut - `Amiga - <'
  941.  
  942.    Zooms in to make the currently selected region fill the preview
  943. window.
  944.  
  945. Zoom out
  946. --------
  947.  
  948.    Keyboard shortcut - `Amiga - >'
  949.  
  950.    Zooms out by a factor of 3 times.
  951.  
  952. Internal viewer
  953. ---------------
  954.  
  955.    Keyboard shortcut - `Amiga - I'
  956.  
  957.    Views the current image with the internal viewer.
  958.  
  959.    If the image is colour-mapped, the viewer will try and open a screen
  960. with the same number of colours as the image. Under the AGA graphics
  961. chipset this should always be possible (providing there is enough free
  962. CHIP RAM), however under the ECS chipset it is impossible to open up
  963. screens of greater than 5 bitplanes. Viewing a 256 colour image, for
  964. example, on a ECS machine is not possible directly.
  965.  
  966.    If the image originated as an IFF-ILBM, the viewer screen will try
  967. and open up in the same screen mode as the image. If this is not
  968. possible, the user may change to a more suitable screenmode with the
  969. `View screenmode' menu option, See View_screenmode.
  970.  
  971.    Viewing 24-bit images is done by using the HAM screenmodes (HAM6
  972. under ECS, HAM8 under AGA) to approximate the 24-bit image. In order to
  973. keep the viewer reasonably fast, the HAM image sometimes suffers from
  974. `colour fringing' as the approximation is relatively crude (especially
  975. under ECS).
  976.  
  977.    If the internal viewer won't display the current image, check the
  978. following:
  979.  
  980.   1. If the image was loaded in as an IFF-ILBM, the saved screenmode
  981.      may not be supported by your machine. For example, the screenmode
  982.      may be `Productivity' and your machine doesn't have a multiscan
  983.      monitor. Simply change the screenmode to one your machine does
  984.      support - e.g.  `Hires Laced'
  985.  
  986.   2. A colour-mapped image contains more colours than it is possible to
  987.      show on a ECS machine. Either reduce the number of colours in the
  988.      image to a number that can be displayed or increase the number of
  989.      colours to 16 million (see Colours) and use the internal viewer to
  990.      display an approximation in a HAM screen.
  991.  
  992.   3. Make sure you have enough CHIP RAM free to open the screen. Large
  993.      256 colour and 16 million colours images take lots of CHIP RAM.
  994.  
  995.    To stop the viewer at any time, press the right mouse button or
  996. click on `Abort' in the infobar.
  997.  
  998. View screenmode
  999. ---------------
  1000.  
  1001.    This allows the user to set the screenmode of the image, and
  1002. therefore of the internal viewer.
  1003.  
  1004.    Click on the desired screenmode for the image in the screenmode
  1005. requester. The current screenmode is highlighted in the listview.
  1006.  
  1007. External viewer
  1008. ---------------
  1009.  
  1010.    Uses an external viewer program to view the image.
  1011.  
  1012.    This calls up the external viewer program to view the current image.
  1013. If a third party 24-bit graphics card is installed, a viewer can be
  1014. used to view the image on that.
  1015.  
  1016.    To specify the external viewer to use, See Prefs.
  1017.  
  1018. Process
  1019. =======
  1020.  
  1021.    Select the submenu you wish to investigate.
  1022.  
  1023. Crop
  1024. ----
  1025.  
  1026.    Keyboard shortcut - `Amiga - W'
  1027.  
  1028.    Crops the current image to the selected region.
  1029.  
  1030.    This reduces the image to only that which is in the selected region.
  1031. A region must be selected in order for this operation to work.
  1032.  
  1033. Scale
  1034. -----
  1035.  
  1036.    Keyboard shortcut - `Amiga - L'
  1037.  
  1038.    Reduces / increases the size of the image.
  1039.  
  1040.    The scale requester allows the user to change the image's width /
  1041. height by either selecting the absolute size of the new image or the
  1042. percentage by which to scale. A radio gadget to the left shows which
  1043. operation will be performed.
  1044.  
  1045.    The percentage value may also be changed by sliding the width and
  1046. height sliders to achieve the desired final size; divide and multiply
  1047. by 2 buttons are provided to quickly scale the image by common amounts.
  1048.  
  1049.    Finally, two methods of scaling are supported: fast and colour
  1050. average. Fast scaling works with both colour-mapped and 24-bit images
  1051. and produces results adequate for most needs. If the image is to be
  1052. scaled up by a large amount the image may become very `blocky' and if
  1053. the image is scaled down a large amount, information in the image may
  1054. be lost. To reduce this, colour average scaling is available on 24-bit
  1055. images which reduces blockiness when increasing the scale and reduces
  1056. information loss when reducing the scale. Colour average rescale can
  1057. take significantly longer than a fast rescale.
  1058.  
  1059. Colours
  1060. -------
  1061.  
  1062.    Keyboard shortcut - `Amiga - K'
  1063.  
  1064.    Allows increasing / decreasing of the number of colours in the
  1065. image, with various dithers.
  1066.  
  1067.    The colours requester allows the user control over the number of
  1068. colours in the image. A radio button on the left hand side shows
  1069. whether the current image is colour-mapped or 24-bit.
  1070.  
  1071.    To increase the number of colours in a colour-mapped image, simply
  1072. select the new number of colours with the top cycle gadget or the `No.
  1073. colours' slider. Although the number of colours need not be a power of
  1074. 2 (2, 4, 8, 16, 32, 64, 128 or 256), internally the number will be
  1075. rounded up to the nearest power of 2. If, for example, a 16 colour
  1076. picture was increased to 20 colours then the image would become a 32
  1077. colour image.
  1078.  
  1079.    Colour-mapped images can also be turned into 24-bit images by
  1080. clicking on the `16 million colours' radio button on the left hand side
  1081. of the requester. This is useful if the user wishes to perform an
  1082. operation on a colour-mapped image that can only be performed on a
  1083. 24-bit image. The resultant 24-bit image can then be turned back into a
  1084. colour-mapped image after the operation is complete.
  1085.  
  1086.    To reduce the number of colours in an image, the same process is
  1087. followed as above with a few differences. Whereas increasing the number
  1088. of colours in an image does not lose any image information, it is
  1089. enevitable that reducing the number of colours must lose some of the
  1090. colour information. In order to help reduce the effect of this, two
  1091. other aids are used: dithering and palette choice.
  1092.  
  1093.    The result of colour reduction is always a colour-mapped image. The
  1094. user may select the number of colours in the final image with the top
  1095. cycle gadget or the `No. colours' slider. Again, although the number of
  1096. colours need not be a power of  2 (2, 4, 8, 16, 32, 64, 128 or 256),
  1097. internally the number will be rounded up to the nearest power of 2.
  1098. This though can be useful, as the user may want to reduce a 24-bit
  1099. image down to 30 colours - leaving 2 spare for his / her own use.
  1100.  
  1101.    In order to give the impression of more colours in the reduced
  1102. colour image, dithering can be employed to smoothly distribute colours
  1103. over areas of high colour change. `Floyd-Steinberg' is the most common
  1104. method and works well in most cases. For larger images, better contrast
  1105. can be obtained by using a more computationally intensive dither
  1106. (`Burkes', `Stucki', `Sierra', `Jarvis') and for the user with large
  1107. images and lots of time to spare, `Stevenson-Arce'. Again, there is no
  1108. hard and fast rule which method of dithering is best; if you're not
  1109. happy with the result, try a different method.
  1110.  
  1111. Palette
  1112. -------
  1113.  
  1114.    Allows the saving of the current palette and loading of new palette
  1115. onto the current image.
  1116.  
  1117.    Palettes can either be loaded, saved and edited in ImageStudio:
  1118.  
  1119. Palette load
  1120.      This is used to force a palette onto an image. The requester
  1121.      allows the user to choose the palette to load and any dithering to
  1122.      be applied to the image, See Colours. Various sample palettes are
  1123.      given with the distribution to map the image to the Workbench
  1124.      colours or a general purpose palette. New palettes can be
  1125.      generated with any popular paint package(1).
  1126.  
  1127. Palette save
  1128.      Saves the current palette out to the filename chosen by the user
  1129.      in the requester. The palette file is compatible with the popular
  1130.      paint packages. This option has no relevance for 24-bit images, as
  1131.      they have no palette.
  1132.  
  1133. Palette edit
  1134.      This brings up the palette edit requester. Here the user may edit
  1135.      each colour individually or move the colours around with the
  1136.      `Copy' and `Swap' operations. Colour ranges can be created and
  1137.      ranges may be sorted into order of increasing or decreasing
  1138.      luminosity.
  1139.  
  1140.      To edit a colour, simply click on the colour in the scrolling
  1141.      viewer and edit the R,G,B or H,S,V colour values (see Colour
  1142.      representations).
  1143.  
  1144.      To copy or swap two colours, click on the first one in the
  1145.      scrolling viewer then click on either `Copy' or `Swap'. The
  1146.      pointer will change to a "To" pointer to allow you to click on
  1147.      another colour to swap or copy to.
  1148.  
  1149.      To create a colour spread, alter one colour to be the start of the
  1150.      spread and alter another colour to be the end of the spread.
  1151.      Clicking on the first colour, then on `Spread', the on the end
  1152.      colour will cause a smooth transition of colours between the start
  1153.      and end colours.
  1154.  
  1155.      Sorting the colours is like a colour spread, only no colour values
  1156.      are actually changed. Simply click on the start of the sort,
  1157.      followed by either of the `Sort' buttons and finally on the end
  1158.      colour. The colours between these values will be sorted into
  1159.      either an increasing or decreasing order of luminosity.
  1160.  
  1161.      Finally, to apply the new colour palette to the image click on
  1162.      `OK'. To remap the image to the new palette (swap the old colours
  1163.      with their nearest match in the new palette), click on `Remap'.
  1164.  
  1165.      Whilst changing the colours in the scrolling viewer, the colours
  1166.      in the preview window will change. *This is not a representation
  1167.      of what is happening to the image!*.
  1168.  
  1169.    ---------- Footnotes ----------
  1170.  
  1171.    (1)  Except Brilliance, which seems to save all 384 colours of its
  1172. palette.
  1173.  
  1174. Tools
  1175. =====
  1176.  
  1177.    Select the submenu you wish to investigate.
  1178.  
  1179. Command shell
  1180. -------------
  1181.  
  1182.    Keyboard shortcut - `Amiga - 0'
  1183.  
  1184.    Opens the ARexx command shell.
  1185.  
  1186.    The command shell allows the user to enter ARexx commands directly,
  1187. without having to write a script file (see Show_scripts). This means
  1188. that the effect of the ARexx command may be seen directly, allowing the
  1189. commands to be experimented with before adding them to a script.
  1190.  
  1191.    The values returned by a command are displayed in a readable form in
  1192. the command shell.
  1193.  
  1194.    It should be noted that the command shell differs from executing an
  1195. actual ARexx script in the following ways:
  1196.  
  1197.   1. Each entered command is passed directly to ImageStudio without
  1198.      going through ARexx first. This means that no ARexx statements can
  1199.      be used (e.g. loops) and no variables may be defined.
  1200.  
  1201.   2. The string entered in the command shell is *exactly* what is seen
  1202.      by the ImageStudio command parser - nothing is evaluated. It is
  1203.      not neccessary therefore to enclose strings in both single and
  1204.      double quotes to stop them from being evaluated. For example, the
  1205.      following line is valid in the command shell, but invalid in an
  1206.      ARexx script as the string would have its quotes removed (see
  1207.      Common ARexx problems):
  1208.  
  1209.           REQUEST_MESSAGE TEXT "A string with spaces in it"
  1210.  
  1211.  
  1212.    Help on a particular command's template (see Command templates) can
  1213. be obtained by typing:
  1214.  
  1215.      help <command>
  1216.  
  1217.    in the command shell. The command's template for the input and
  1218. return values will be show.
  1219.  
  1220. Show balance
  1221. ------------
  1222.  
  1223.    Keyboard shortcut - `Amiga - 1'
  1224.  
  1225.    Opens / closes the balance floating palette.
  1226.  
  1227.    The balance floating palette is used to control the brightness,
  1228. contrast and gamma of the current image. On 24-bit images, the colour
  1229. balance can be altered on selected regions as well as the whole image
  1230. whereas colour-mapped images only allow alterations to the whole image.
  1231.  
  1232.    The colour balance effects are usually applied to all the red /
  1233. green / blue components simultaneously, but each component can be
  1234. altered individually by checking the `Red', `Green' or `Blue'
  1235. checkboxes at the bottom of the floating palette.
  1236.  
  1237.    The effect of changing either the brightness, contrast or gamma can
  1238. be seen in the graph on the right hand side of the floating palette.
  1239. The graph shows the input RGB component along the X-axis and the output
  1240. RGB component along the Y-axis.
  1241.  
  1242.               output
  1243.       Light RGB ^
  1244.                 |
  1245.                 |
  1246.                 |
  1247.                 |
  1248.                 |
  1249.        Dark RGB |
  1250.                 +-------> input
  1251.             Dark RGB  Light RGB
  1252.  
  1253.    No operation is shown therefore with a straight diagonal line - the
  1254. input value is mapped to the same output value.
  1255.  
  1256.               output
  1257.                 ^
  1258.                 |     /
  1259.                x|____/
  1260.                 |   /|
  1261.                 |  / |
  1262.                 | /  |
  1263.                 |/   |
  1264.                 +-------> input
  1265.                      x
  1266.  
  1267. Brightness
  1268.      Altering the brightness is achieved by mutliplying up / down the
  1269.      RGB components by the specified amount. The range of the slider is
  1270.      from -100% (everything becomes black) to +100% (everything is
  1271.      twice as bright).
  1272.  
  1273. Contrast
  1274.      Altering the contrast forces dark colours darker and light colours
  1275.      lighter. The range of the slider is from -100% (everything becomes
  1276.      mid grey) to +100% (RGB components are either on/off).
  1277.  
  1278.      Note: 100% contrast on a colour image doesn't produce a black and
  1279.      white image as may be expected. As each RGB component is treated
  1280.      individually, it leaves you with an 8 colour image - the 8 colours
  1281.      being composed of combinations of the RGB components as below:
  1282.  
  1283.     Black
  1284.           0% Red, 0% Green, 0% Blue
  1285.  
  1286.     Red
  1287.           100% Red, 0% Green, 0% Blue
  1288.  
  1289.     Green
  1290.           0% Red, 100% Green, 0% Blue
  1291.  
  1292.     Blue
  1293.           0% Red, 0% Green, 100% Blue
  1294.  
  1295.     Yellow
  1296.           100% Red, 100% Green, 0% Blue
  1297.  
  1298.     Magenta
  1299.           100% Red, 0% Green, 100% Blue
  1300.  
  1301.     Cyan
  1302.           0% Red, 100% Green, 100% Blue
  1303.  
  1304.     White
  1305.           100% Red, 100% Green, 100% Blue
  1306.  
  1307.      If you wish to turn a colour image into 2 colour black and white,
  1308.      greyscale the image first with the greyscale effect, See Effects.
  1309.  
  1310. Gamma
  1311.      Adjusting the gamma of an image has the effect of lightening some
  1312.      of the mid-dark colours, whilst leaving the dark colours dark.
  1313.      This can often enhance the eye's perception of the image, as the
  1314.      eye is more responsive to light colours. Gamma correction can also
  1315.      be useful when printing an image out, as mid-dark colours tend to
  1316.      get printed too dark.
  1317.  
  1318.      Only small alterations are usually needed with this operator (-20%
  1319.      to +20%).
  1320.  
  1321. Show effects
  1322. ------------
  1323.  
  1324.    Keyboard shortcut - `Amiga - 2'
  1325.  
  1326.    Opens / closes the effects floating palette.
  1327.  
  1328.    The effects floating palette contains a list of ImageStudio's built
  1329. in effects. Not all types of effect can be applied to all types of
  1330. buffer, the details are given below. Any numerical values required by
  1331. the individual effects are set using the slider on the effect floating
  1332. palette.
  1333.  
  1334.    An effect can be applied by clicking on the `Apply' button or
  1335. double-clicking on the list entry.
  1336.  
  1337.    See Effects, for details of all available effects.
  1338.  
  1339. Show convolves
  1340. --------------
  1341.  
  1342.    Keyboard shortcut - `Amiga - 3'
  1343.  
  1344.    Opens / closes the convolves floating palette.
  1345.  
  1346.    The convolves floating palette allows the user to apply their own
  1347. convolution effects to a 24-bit image; convolution will not work on
  1348. colour-mapped images.
  1349.  
  1350.    To create a new convolution filter, select `New' and then `Edit'
  1351. from the floating palette. The convolve grid requester contains the
  1352. convolution filter's name at the top as well as gadgets for the filter,
  1353. divisor and bias values. When the user has set the filter values, click
  1354. on `OK' to return to the convolve floating palette.
  1355.  
  1356.    To apply a filter, select it in the listview and click on `Apply'.
  1357. To delete a filter from the list, click on `Del'. This will not delete
  1358. the file from the disk, this has to be done from the Workbench.
  1359.  
  1360.    To scan a new drawer for convolution filters, click on `Load' and
  1361. select a directory to scan. To save the current list's convolution
  1362. filters, click on `Save' and select a drawer to save to.
  1363.  
  1364.    The default drawer to scan at startup is set in the preferences, See
  1365. Prefs.
  1366.  
  1367.    A convolve can be applied by clicking on the `Apply' button or
  1368. double-clicking on the list entry.
  1369.  
  1370.    What follows is a quick description of convolution, it is not
  1371. necessary to understand this to use the filters.
  1372.  
  1373.    It is convenient think of the convolution filter as an array of
  1374. numbers that "slides" over the image a pixel at a time. To find the new
  1375. colour value of the pixel at the centre of the filter, multiply the
  1376. filter values by the values of the colours under the array then divide
  1377. the result by the `Div' value, then add the `Bias' value.
  1378.  
  1379.    If we take the example of 3 x 3 `blur low' filter being applied to
  1380. the pixels below:
  1381.  
  1382.      filter                  pixels
  1383.      
  1384.      0 1 0                   a b c
  1385.      1 2 1  convolved with   d e f   gives:
  1386.      0 1 0                   g h i
  1387.  
  1388.    ((0 x a) + (1 x b) + (0 x c) + (1 x d) + (2 x e) + (1 x f) + (0 x g)
  1389. + (1 x h) + (0 x i)) / Div + Bias
  1390.  
  1391.    which would be applied to the new pixel in the position of the `e'
  1392. pixel.
  1393.  
  1394.    Although the pixels shown above are shown as `a', `b' etc... they
  1395. are actually the 3 red, green and blue values that comprise the colour.
  1396.  
  1397.    Examples:
  1398.  
  1399.   1.      0 0 0
  1400.           0 1 0
  1401.           0 0 0
  1402.           Div = 3, Bias = 0
  1403.      would make each pixel one third of its original brightness.
  1404.  
  1405.   2.      0 0 0
  1406.           0 0 0
  1407.           0 1 0
  1408.           Div = 1, Bias = 0
  1409.      would move each pixel up by one.
  1410.  
  1411.   3.      0 0 0
  1412.           0 1 0
  1413.           0 0 0
  1414.           Div = 1, Bias = 50
  1415.      would add 50 onto each of the red, green, blue components of the
  1416.      centre pixel.
  1417.  
  1418.    Note:
  1419.  
  1420.    * The red, green, blue components of a pixel can have values in the
  1421.      range 0 to 255. If a convolution value is greater than 255 it is
  1422.      made equal to 255. Similarly if a convolution value is less than 0
  1423.      it is made equal to 0.
  1424.  
  1425.    * ImageStudio has optimized routines for 1x1, 3x3 and 5x5 filters.
  1426.      If the program detects that only values in a 3x3 filter are being
  1427.      used, only calculations for a 3x3 filter are performed.
  1428.  
  1429. Show scripts
  1430. ------------
  1431.  
  1432.    Keyboard shortcut - `Amiga - 4'
  1433.  
  1434.    Opens / closes the scripts floating palette.
  1435.  
  1436.    The scripts floating palette gives a list of easily available ARexx
  1437. scripts for the user to apply.
  1438.  
  1439.    To execute a script in the list, select the desired script and click
  1440. on `Apply' or simply double-click on the list entry. The script can be
  1441. stopped by either clicking on `Abort' during any operation or choosing
  1442. `Cancel' on any given requester (if the script is written correctly,
  1443. that is). See Writing scripts, for more information on creating ARexx
  1444. scripts.
  1445.  
  1446.    New scripts can be created by clicking on `New...' button. The user
  1447. is requested to name the new script and it is placed in the listview.
  1448. By default, the script will already contain some ARexx commands to help
  1449. the user - the user simply adds what is neccessary.
  1450.  
  1451.    To edit the currently selected script, the `Edit...' button is used.
  1452. The text editor set in the preferences (see Prefs) is used to edit the
  1453. file.
  1454.  
  1455.    The `Load...' button allows the user to scan another directory for
  1456. ARexx script files. `Other...' will let the user select another ARexx
  1457. script file to run, without adding it to the list.
  1458.  
  1459. Show coords
  1460. -----------
  1461.  
  1462.    Keyboard shortcut - `Amiga - 5'
  1463.  
  1464.    Opens / closes co-ords floating palette.
  1465.  
  1466.    The co-ords floating palette shows the current position in the image
  1467. of the mouse pointer. When dragging box to select a region, the current
  1468. region width and height are shown.
  1469.  
  1470. ARexx
  1471. *****
  1472.  
  1473.    This chapter gives information about the program's interface to the
  1474. ARexx programming language.
  1475.  
  1476. Introduction to ARexx
  1477. =====================
  1478.  
  1479.    ARexx is the script language that is distributed with all Amigas
  1480. sporting Workbench 2.04 and above. It is used on the Amiga for two main
  1481. tasks:
  1482.  
  1483.   1. Providing an easy and consistent method of adding macro facilities
  1484.      to programs.
  1485.  
  1486.   2. To allow ARexx aware programs to communicate with each other.
  1487.  
  1488.    Most users are dissuaded from using ARexx with their programs
  1489. because of the learning curve involved in (i) learning ARexx and (ii)
  1490. using the functions provided with each program. With ImageStudio, we
  1491. have tried to simplify the process of creating an ARexx script by:
  1492.  
  1493.   1. Providing an easy interface for creating and running the scripts.
  1494.  
  1495.   2. Providing a ready-made script template which the user can just
  1496.      "fill in the blanks" to produce a fully working program.
  1497.  
  1498.   3. Providing many commands to perform commonly performed operations.
  1499.      This means the user needs to write less code in ARexx and doesn't
  1500.      need to rely on external utilities and libraries to perform the
  1501.      operations.
  1502.  
  1503.    Typical uses for ARexx in ImageStudio include:
  1504.  
  1505.    * Batch processing. ImageStudio can now be told to repeatedly
  1506.      perform the same operation on many images. The user could, for
  1507.      example, convert all PCX files in a given directory into IFF-ILBM
  1508.      files.
  1509.  
  1510.    * Background processing. ImageStudio can be told to watch a given
  1511.      directory and whenever a new file is generated to perform a set of
  1512.      operations on it. This is useful for producing ray-traced
  1513.      animations, where each frame of the animation could be converted
  1514.      from 24bits to HAM6 (say) as each frame was generated by the ray
  1515.      tracer.
  1516.  
  1517.    * Adding additional image manipulation abilities to other programs.
  1518.      ImageStudio could be passed an image from another program, process
  1519.      it, then return it back to the original program. By using a
  1520.      desktop publishing package that supports ARexx, an image could be
  1521.      saved from the DTP program, gamma corrected by ImageStudio, then
  1522.      reloaded back into the DTP program all automatically.
  1523.  
  1524.    Many example files are given with ImageStudio (see Example scripts),
  1525. which can either be used directly or modified to perform the desired
  1526. operation.
  1527.  
  1528.    In order for ARexx to be available to ImageStudio, you must start
  1529. ARexx at startup time by including the line:
  1530.  
  1531.      rexxmast >NIL:
  1532.  
  1533.    in your `User-Startup' file in the `S:' directory. Normally this
  1534. line should be present in your User-Startup, but if you find no scripts
  1535. run from ImageStudio you must add this line manually.
  1536.  
  1537. Writing scripts
  1538. ===============
  1539.  
  1540.    We have tried to simplify the process of writing an ARexx script as
  1541. much a possible to provide access to the power of ARexx scripts without
  1542. (too much(!)) pain.
  1543.  
  1544.    An ARexx script can be written and run without ever having to leave
  1545. ImageStudio. The only extra tool needed is a text editor; ImageStudio
  1546. can be configured to use your favourite text editor by changing the
  1547. program's preferences (see Prefs). The basic process of creating an
  1548. ARexx script is as follows:
  1549.  
  1550.   1. Open the `Scripts' floating palette.
  1551.  
  1552.   2. Create and name the new script by clicking on `New...'.
  1553.  
  1554.   3. Load the blank script template into your editor by clicking on
  1555.      `Edit...'.
  1556.  
  1557.   4. Add the desired commands to the template in the space provided.
  1558.  
  1559.   5. Save the file and exit the text editor.
  1560.  
  1561.   6. Run the script by clicking on the `Apply' button on the scripts
  1562.      floating palette.
  1563.  
  1564.    Any errors the script may generate will be displayed in a requester
  1565. on the ImageStudio screen.
  1566.  
  1567.    To try this process out, try the following:
  1568.  
  1569.   1. Open the `Scripts' floating palette.
  1570.  
  1571.   2. Click on `New...' and call the script "FirstScript".
  1572.  
  1573.   3. Edit the new script by clicking on `Edit...'.
  1574.  
  1575.   4. In the space provided in the script, type the following lines:
  1576.  
  1577.           OPEN "Pics/FW14B_250x250.gif"
  1578.           SCALE 80 40
  1579.           PALETTE_LOAD "Palettes/Workbench4.palette" DITHER FS
  1580.           VIEW
  1581.  
  1582.   5. Save the file and exit the text editor.
  1583.  
  1584.   6. Run the script by clicking on the `Apply' button on the scripts
  1585.      floating palette.
  1586.  
  1587.    The result of the above script should be a 4 colour icon sized image
  1588. of a Formula1 racing car. This could now be copied into the clipboard
  1589. by selecting `Copy' in the `Edit' menu and pasted into Commodore's
  1590. IconEdit program for final conversion into an icon. Alternatively, the
  1591. command to copy the image into the clipboard could be added to the end
  1592. of the script.
  1593.  
  1594.    See ARexx commands, for a full description of the ARexx commands
  1595. used in the above example.
  1596.  
  1597.    Note, please don't remove the "/* BEGIN PROGRAM ****" and
  1598. corresponding "END PROGRAM" lines in the blank macro template - these
  1599. will be used to insert the recorded ARexx macros when they are
  1600. implemented (see Future additions).
  1601.  
  1602. Basic ARexx
  1603. ===========
  1604.  
  1605.    This section is meant as a beginners guide to using ARexx with
  1606. ImageStudio. We cannot hope to teach you the ARexx language, although
  1607. it is only neccessary to the know the very basics to start using ARexx
  1608. scripts with ImageStudio. It is assumed that the user is editing and
  1609. running their scripts from within ImageStudio (see Show_scripts).
  1610.  
  1611.    For further information on ARexx, we suggest reading Commodore's
  1612. ARexx user guide supplied with the A4000 or the Workbench2 and 3
  1613. upgrade packs. For A600 and A1200 users who don't get this manual, we
  1614. recommend the "ARexxGuide" AmigaGuide document by Robin Evans which is
  1615. a shareware document containing extensive information on the ARexx
  1616. language. The guide can be obtained from all good PD houses.
  1617.  
  1618.    The ARexx programming language is similar to many other programming
  1619. languages in its structure. Users who have BASIC, C, FORTRAN, Pascal,
  1620. Modula2 or Oberon experience will notice many similarites. It is not
  1621. similar to Assember language, Lisp or Prolog. An ARexx program is, in
  1622. its simplest form, a list of instructions for ImageStudio to perform.
  1623. Here is a simple ARexx program:
  1624.  
  1625.      /* A simple ARexx program */
  1626.      
  1627.      REQUEST_MESSAGE TEXT '"Hello world!"'
  1628.      
  1629.      exit
  1630.  
  1631.    This shows some important things about an ARexx program:
  1632.  
  1633.   1. All ARexx programs *must* start with a comment line. A comment
  1634.      line is a line which starts with the `/*' sequence of characters
  1635.      and ends with the `*/' characters. Anything between these
  1636.      characters is ignored by ARexx.
  1637.  
  1638.   2. For clarity, all of ImageStudio's commands are shown CAPITALISED,
  1639.      ARexx commands are kept in lower case. REQUEST_MESSAGE is
  1640.      therefore an ImageStudio command that should be performed.
  1641.  
  1642.   3. The REQUEST_MESSAGE has some `arguments' or `parameters' following
  1643.      it. These tell the REQUEST_MESSAGE command how to behave, in this
  1644.      case they tell the command to pop up greeting message.
  1645.  
  1646.   4. To stop an ARexx program, use the command `exit'.
  1647.  
  1648.    OK, lets enhance our program a little:
  1649.  
  1650.      /* A better simple ARexx program */
  1651.      
  1652.      REQUEST_MESSAGE TEXT '"What do you think of\n'||,
  1653.         'the show so far?"',
  1654.         BUTTONTEXT "Great|Mediocre|Rubbish"
  1655.      
  1656.      exit
  1657.  
  1658.    From this example we learn:
  1659.  
  1660.   1. To separate a long command line, place a comma `,' as the last
  1661.      character on the line. This tells ARexx to treat the next line as
  1662.      a continuation of the previous. Two line breaks are used in the
  1663.      above example.
  1664.  
  1665.   2. ARexx loves to evaluate things. If we want to stop ARexx
  1666.      evaluating variables, the variable should be enclosed in single
  1667.      quotes ` ' '.
  1668.  
  1669.    See ARexx problem 1, if little explanation is needed as to the many
  1670. double and single quotes used above. If we now tell you that the `\n'
  1671. characters are used represent a newline and the `||' characters glue
  1672. string together, we should see that:
  1673.  
  1674.      '"What do you think of\n'||'the show so far?"'
  1675.  
  1676.    would be evaluated to:
  1677.  
  1678.      "What do you think of*the show so far?"
  1679.  
  1680.    where `*' represents a newline. The lesson to be learnt here is that
  1681. whenever you use a string (with or without spaces) it is best to
  1682. enclose the whole thing in single quotes outside the double quotes to
  1683. keep the whole thing together.
  1684.  
  1685.    On with the examples. The previous script isn't much use if we can't
  1686. test for which button the user pressed, so:
  1687.  
  1688.      /* A better simple ARexx program */
  1689.      
  1690.      options results
  1691.      
  1692.      REQUEST_MESSAGE TEXT '"What do you think of\n'||,
  1693.         'the show so far?"',
  1694.         BUTTONTEXT "Great|Mediocre|Rubbish"
  1695.      
  1696.      if RESULT == 0 then
  1697.         REQUEST_MESSAGE TEXT '"Sorry, I was trying very hard."'
  1698.      else if RESULT == 2 then
  1699.         REQUEST_MESSAGE TEXT '"It gets better."'
  1700.      else do
  1701.         REQUEST_MESSAGE TEXT '"We like happy users."'
  1702.         REQUEST_MESSAGE TEXT '"Treat yourself to a coffee."'
  1703.         end
  1704.      
  1705.      exit
  1706.  
  1707.    This shows:
  1708.  
  1709.   1. Normally ARexx ignores the values returned by commands. To allow
  1710.      commands to return values, use "options results"; this is done for
  1711.      you in the blank ARexx script.
  1712.  
  1713.   2. Unless otherwise specified (see Return values) commands return the
  1714.      results of their operation in a variable called "RESULT". The
  1715.      command REQUEST_MESSAGE returns the value of the button that the
  1716.      user pressed.  It is this value that we can test for.
  1717.  
  1718.   3. The `if' tests are shown above. Note that if you only want to
  1719.      perform one operation as part of the `if', you can just place it
  1720.      after the `then'. If you wish to perform more operations, they
  1721.      must be placed in  a `do / end' set.
  1722.  
  1723.    OK, that's about it for the introduction to ARexx. We really suggest
  1724. now that you look at the example scripts provided with ImageStudio (see
  1725. Example scripts) to learn more examples. Have fun!
  1726.  
  1727.    Note, if you use any ARexx command which prints text out (e.g.
  1728. "say"), this text is printed to the file given by the tooltype
  1729. REXXOUTPUT (see Tooltype_REXXOUTPUT). After the script has been
  1730. executed, this file can be examined.
  1731.  
  1732. Command templates
  1733. =================
  1734.  
  1735.    The parameters passed to the ARexx commands closely follow
  1736. Commodore's style guidelines. The parsing of the arguments follows the
  1737. standard template format described below.
  1738.  
  1739.    Commands are always of the form:
  1740.  
  1741.      command [options]
  1742.  
  1743.    The command may be something like `OPEN' or `SCALE' and the options
  1744. may be filenames, numbers etc... A typical command template may look
  1745. like:
  1746.  
  1747.      OPEN FILE/A,FORMAT,ARGS,FORCE/S
  1748.  
  1749.    The commands and options are not case sensitive, therefore `OPEN',
  1750. `Open' or `open' can be used to open a file. The options after the
  1751. command name are separated by commas, and are named (e.g. FILE or FORCE
  1752. are option names). After the name, follows an optional modifier (e.g.
  1753. /A or /S are modifiers) which describes what type of information the
  1754. option specifies.
  1755.  
  1756.        When using the command, the option names may be ommitted if the
  1757. parameters for the command are given in the same order as the options
  1758. in the template, but for clarity it is recommended that the option
  1759. names be used.
  1760.  
  1761.    The following modifiers are used:
  1762.  
  1763. No modifier
  1764.      If the option has no modifier, the option is expecting a string.
  1765.      Strings are lines of text with no spaces; to use a string with a
  1766.      space, place the string in double-quotes (").
  1767.  
  1768. Multiple strings (/M)
  1769.      Many strings can be specified if an option uses this modifier.
  1770.  
  1771. Numeric (/N)
  1772.      Numeric options allow both positive and negative integers.
  1773.      Floating point numbers are not yet used by ImageStudio.
  1774.  
  1775. Boolean (/S)
  1776.      Some options can be specified to "switch" that option on. By
  1777.      leaving the option out, the option is switched off.
  1778.  
  1779. Keyword (/K)
  1780.      A keyword option shows that the option name must be used to set
  1781.      this option.
  1782.  
  1783. Always (/A)
  1784.      This option must always be included in this command.
  1785.  
  1786.    In practice, it soon becomes very easy to interpret command
  1787. templates - some examples with explanations are given below:
  1788.  
  1789.      OPEN FILE/A,FORMAT,ARGS,FORCE/S
  1790.  
  1791.    The command `OPEN' is used to open a file and load it into
  1792. ImageStudio. OPEN requires a filename (FILE/A is a string, and is
  1793. always required), an optional FORMAT string, an optional ARGS string
  1794. and and optional FORCE switch. The following are valid OPEN commands:
  1795.  
  1796.    The following would load a file called
  1797. `Pics/CheetahFace250x200.ilbm', forcing the old project to be
  1798. overwritten:
  1799.  
  1800.      OPEN FILE "Pics/CheetahFace250x200.ilbm" FORCE
  1801.  
  1802.    The following would load a file called `Ram Disk:Tulip.jpg', asking
  1803. first if the current project has changed:
  1804.  
  1805.      OPEN '"Ram Disk:Tulip.jpg"'
  1806.  
  1807.    The following is an error, if the filename has spaces in it, it
  1808. should be enclosed in single and double-quotes:
  1809.  
  1810.      OPEN "Ram Disk:Tulip.jpg"
  1811.  
  1812.      SCALE X/N,Y/N,PERCENT/S,METHOD
  1813.  
  1814.    `SCALE' is used to change the size of the image (see ARexx_SCALE).
  1815. SCALE expects two numerical values (X/N,Y/N are numbers but neither are
  1816. required), can be used to scale either to an absolute size or by a
  1817. given percentage (adding the PERCENT switch specifies percentage
  1818. scaling) and can use a variety of methods (METHOD is used to specify a
  1819. description string of the method to be used - again, if this is not
  1820. specified a default method is used). The following are valid SCALE
  1821. commands:
  1822.  
  1823.    The following scales the image to 640x480 pixels:
  1824.  
  1825.      SCALE X 640 Y 480
  1826.  
  1827.    The following makes the image 50 percent of its original height:
  1828.  
  1829.      SCALE Y 50 PERCENT
  1830.  
  1831.    The following scales the image to 800x600 pixels using the colour
  1832. averaging method:
  1833.  
  1834.      SCALE 800 600 METHOD AVERAGE
  1835.  
  1836.    The following is an error, no X or Y values given:
  1837.  
  1838.      SCALE X PERCENT
  1839.  
  1840.    The following is an error, floating point values are not allowed:
  1841.  
  1842.      SCALE Y 127.5
  1843.  
  1844.    See ARexx commands, for more detailed descriptions of each of the
  1845. individual ARexx commands.
  1846.  
  1847. Return values
  1848. =============
  1849.  
  1850.    The return values for the ARexx commands are specified in the same
  1851. notation as the input parameters, although the types of returned values
  1852. is more limited than the input parameter types. In order for results to
  1853. be returned from ARexx commands, it is essential that the line:
  1854.  
  1855.      options results
  1856.  
  1857.    be placed near the start of the ARexx script.
  1858.  
  1859.    Commands may return either strings, numbers or arrays of either. By
  1860. default, all ARexx commands return their values in a variable called
  1861. "RESULT". This is fine if the command returns a single number or
  1862. string. For example, the following call to the FILE_JOIN command (see
  1863. ARexx_FILE_JOIN) would return the string "T:Image.ilbm" in the RESULT
  1864. variable:
  1865.  
  1866.      FILE_JOIN PATHPART "T:" FILEPART "Image.ilbm"
  1867.  
  1868.    If the user wishes to return the result in another variable other
  1869. than RESULT, they may specify the VAR keyword. For example, the
  1870. following would perform the same action as above, only putting the
  1871. result in the varible called "FULLNAME"
  1872.  
  1873.      FILE_JOIN PATHPART "T:" FILEPART "Image.ilbm" VAR FULLNAME
  1874.  
  1875.    Some ARexx commands return multiple values, and these to can be
  1876. returned in a single variable - each returned value in the variable is
  1877. seperated with a space. The following returns information about the
  1878. current image (see ARexx_IMAGEINFO_GET):
  1879.  
  1880.      IMAGEINFO_GET
  1881.  
  1882.    and the RESULT variable might look something like:
  1883.  
  1884.      640 400 8 Pics/Zebra.ilbm 32772
  1885.  
  1886.    It is possible then to extract the desired information using ARexx's
  1887. built in parsing routines. A neater way to return multiple values
  1888. though is through a "stem" variable. Here, a base name for a variable
  1889. is given and the returned values' names get added to it. It is clearer
  1890. with an example:
  1891.  
  1892.      IMAGEINFO_GET STEM IMAGEINFO.
  1893.  
  1894.    would return the same information as previously, only it would
  1895. create the following variables:
  1896.  
  1897.      IMAGEINFO.WIDTH = 640
  1898.      IMAGEINFO.HEIGHT = 400
  1899.      IMAGEINFO.DEPTH = 8
  1900.      IMAGEINFO.FILE = Pics/Zebra.ilbm
  1901.      IMAGEINFO.MODEID = 32772
  1902.  
  1903.    Now you can refer easily to the returned values.
  1904.  
  1905.    If an ARexx function returns an array of results, they are named as
  1906. follows:
  1907.  
  1908.      STEMNAME.RESULTNAME.NUMBER
  1909.  
  1910.    with the variable STEMNAME.RESULTNAME.COUNT holding the number of
  1911. returned results. Again, an example being the following which gets all
  1912. the ".ilbm" images in the "Pics" dirctory:
  1913.  
  1914.      FILES_MATCH PATHPART "Pics" PATTERN "#?.ilbm" STEM MATCHED.
  1915.  
  1916.    which might return the following:
  1917.  
  1918.      MATCHED.FILEPARTS.COUNT = 4
  1919.      MATCHED.FILEPARTS.0 = Zebra.ilbm
  1920.      MATCHED.FILEPARTS.1 = WilliamsFW14B.ilbm
  1921.      MATCHED.FILEPARTS.2 = Spitfire.ilbm
  1922.      MATCHED.FILEPARTS.3 = Brightside.ilbm
  1923.  
  1924.    See ARexx tips, for more information on how to turn array stem
  1925. variables into string variables.
  1926.  
  1927. Error checking
  1928. ==============
  1929.  
  1930.    ImageStudio uses the standard ARexx method of returning errors, with
  1931. a further extension.
  1932.  
  1933.    Whenever a command is executed, a variable called "RC" has its value
  1934. set by ARexx. If the command executed normally, RC is set to zero. If
  1935. any failure happened, RC is set to either 5 (warning), 10 (failure) or
  1936. 20 (serious failure).
  1937.  
  1938.    ImageStudio also sets the value of a further variable called "RC2",
  1939. which either contains a text description of the reason for failure or a
  1940. standard AmigaDos error code.
  1941.  
  1942.    A description string is returned in RC2 if a failure occurs within
  1943. the execution of a command. RC2 will be an AmigaDos error number if
  1944. there is an error with the command syntax (e.g. mis-spelled command
  1945. name or missing quotes).
  1946.  
  1947.    If, for example the user was to try to use the scale command when
  1948. there was no image in the buffer, RC and RC2 would be set to the
  1949. following:
  1950.  
  1951.      RC = 10
  1952.      RC2 = "SCALE, No image"
  1953.  
  1954.    If the scale operation were to be performed with the command:
  1955.  
  1956.      SCLAE 80 40
  1957.  
  1958.    the following values would be set:
  1959.  
  1960.      RC = 10
  1961.      RC2 = 236
  1962.  
  1963.    where AmigaDos error 236 represents `not implemented', i.e. unknown
  1964. command. The default blank script template will convert the most common
  1965. likely AmigaDos error codes into description strings (see Commodore's
  1966. AmigaDos manual for a full description of AmigaDos errors).
  1967.  
  1968.    By default, the blank script template turns on automatic error
  1969. checking. The line:
  1970.  
  1971.      signal on error
  1972.  
  1973.    tells ImageStudio to jump to the ERROR: label whenever a command
  1974. fails. The blank script then puts up a requester showing the error.
  1975.  
  1976.    The user may wish to turn off the automatic error checking to
  1977. perform error checking themselves. This is neccessary, for example, if
  1978. the user wishes to trap the user pressing `Cancel' on a requester (this
  1979. returns an error). The following checks when the user cancels the file
  1980. requester:
  1981.  
  1982.      /* Turn off automatic error checking */
  1983.      
  1984.      signal off error
  1985.      
  1986.      /* Open the requester */
  1987.      
  1988.      REQUEST_FILE
  1989.      
  1990.      /* Check for the error condition */
  1991.      
  1992.      if RC ~= 0 then do
  1993.         REQUEST_MESSAGE TEXT '"An error occurred (user\n'||,
  1994.            'probably pressed Cancel)"'
  1995.         end
  1996.      else do
  1997.         REQUEST_MESSAGE TEXT '"You chose: '||RESULT||'"'
  1998.         end
  1999.  
  2000. Common ARexx problems
  2001. =====================
  2002.  
  2003. ARexx problem 1
  2004. ---------------
  2005.  
  2006.      "I can't use strings with spaces in them."
  2007.  
  2008.    Care must be taken when specifying string paramters when the string
  2009. contains space characters. Single quotes must be used around double
  2010. quotes to stop the string from being seen as many different strings.
  2011.  
  2012.    Consider the following example:
  2013.  
  2014.      REQUEST_MESSAGE TEXT "Hello"
  2015.  
  2016.    ARexx would evaluate the string "Hello" and give ImageStudio the
  2017. following command to execute:
  2018.  
  2019.      REQUEST_MESSAGE TEXT Hello
  2020.  
  2021.    i.e. without the double quotes. In this example, REQUEST_MESSAGE
  2022. would do as expected. The problems start when strings have spaces in
  2023. them; consider the following:
  2024.  
  2025.      REQUEST_MESSAGE TEXT "Hello world"
  2026.  
  2027.    ARexx would evaluate the string "Hello world" and give ImageStudio
  2028. the following command to execute:
  2029.  
  2030.      REQUEST_MESSAGE TEXT Hello world
  2031.  
  2032.    which is not what is desired. The Hello becomes the TEXT value and
  2033. the world becomes the value of the next parameter (BUTTONTEXT in this
  2034. case). The result would be a requester with the text of "Hello" and a
  2035. button called "world". Now we must use the single quotes to stop ARexx
  2036. from evaluating the string:
  2037.  
  2038.      REQUEST_MESSAGE TEXT '"Hello world"'
  2039.  
  2040.    would send ImageStudio the following command:
  2041.  
  2042.      REQUEST_MESSAGE TEXT "Hello world"
  2043.  
  2044.    which shows that the whole string "Hello world" belongs to the TEXT
  2045. parameter.
  2046.  
  2047. ARexx problem 2
  2048. ---------------
  2049.  
  2050.      "I can't use AmigaDos commands in a script."
  2051.  
  2052.    There is a bug which causes ImageStudio to sometimes crash the
  2053. machine if the output from AmigaDos command is not properly
  2054. re-directed. The stdin and stdout for all external CLI commands should
  2055. be redirected to the NIL: device.
  2056.  
  2057.    For example:
  2058.  
  2059.      address command 'rename ram:foo ram:bar'
  2060.  
  2061.    could crash the machine if the rename fails (e.g. the file "ram:foo"
  2062. doesn't exist). To avoid this, use:
  2063.  
  2064.      address command 'rename <NIL: >NIL: ram:foo ram:bar'
  2065.  
  2066.    The failure will still be trapped by ARexx and sets RC to 10.
  2067.  
  2068. ARexx problem 3
  2069. ---------------
  2070.  
  2071.      "I can't run scripts from the ram disk."
  2072.  
  2073.    This is due to ARexx scripts being treated by ARexx as external
  2074. commands. Command names may not contain spaces, and scripts in the ram
  2075. disk will be called something like `Ram Disk:MyScript.isrx', which is
  2076. not allowed.
  2077.  
  2078.    To work around this, either move the script to a location without a
  2079. space in its filename or specify the ram disk as `ram:' rather than
  2080. `Ram Disk:'.
  2081.  
  2082. ARexx problem 4
  2083. ---------------
  2084.  
  2085.      "I can't set the same variable twice with VAR"
  2086.  
  2087.    If you are able to return a value from a command into a given
  2088. variable name once in a program, but unable to do it again it's
  2089. probably due to ARexx evaluating your variable the second time it is
  2090. used.
  2091.  
  2092.    For example, the following won't work:
  2093.  
  2094.      FILE_JOIN FILEPART '"Work:"' '"MyFile"' VAR fullname
  2095.      
  2096.      FILE_JOIN FILEPART '"Work:"' '"MyOtherFile"' VAR fullname
  2097.  
  2098.    because ARexx will evaluate `fullname' in the second FILE_JOIN, i.e.
  2099. ARexx will see the second FILE_JOIN as:
  2100.  
  2101.      FILE_JOIN FILEPART "Work:" "MyFile" VAR Work:MyFile
  2102.  
  2103.    The solution is to enclose the variable name in single quotes to
  2104. stop it from being evaluated, i.e. our second FILE_JOIN is written as:
  2105.  
  2106.      FILE_JOIN FILEPART '"Work:"' '"MyOtherFile"' VAR 'fullname'
  2107.  
  2108. ARexx problem 5
  2109. ---------------
  2110.  
  2111.      "I can't get any ARexx script to run."
  2112.  
  2113.    In order for ARexx to be available to ImageStudio, you must start
  2114. ARexx at startup time by including the line:
  2115.  
  2116.      rexxmast >NIL:
  2117.  
  2118.    in your `User-Startup' file in the `S:' directory. Normally this
  2119. line should be present in your User-Startup, but if you find no scripts
  2120. run from ImageStudio you must add this line manually.
  2121.  
  2122. ARexx tips
  2123. ==========
  2124.  
  2125. ARexx tip 1
  2126. -----------
  2127.  
  2128.      "How to turn stem arrays into strings."
  2129.  
  2130.    It usually desirable for commands that return arrays to return the
  2131. values in a stem, making the return values easier to deal with. In some
  2132. cases it is neccessary to pass these values back to ImageStudio after
  2133. reading or altering them. As ImageStudio commands can't accept stems
  2134. directly, these stems have to be converted back into strings.
  2135.  
  2136.    We suggest the following method, using the PALETTE_GET and
  2137. PALETTE_SET commands as examples of getting and setting an array of
  2138. values:
  2139.  
  2140.      /* Get the current palette */
  2141.      
  2142.      PALETTE_GET STEM OLDPALETTE.
  2143.      
  2144.      /* Convert the stem to a parameter list */
  2145.      
  2146.      NEWPALETTE = ''
  2147.      
  2148.      do l = 0 to (OLDPALETTE.PALETTE.COUNT - 1)
  2149.         NEWPALETTE = NEWPALETTE||' '||OLDPALETTE.PALETTE.l
  2150.         end
  2151.      
  2152.      /* Force the new palette back onto the image */
  2153.      
  2154.      PALETTE_SET PALETTE NEWPALETTE REMAP
  2155.  
  2156. ARexx tip 2
  2157. -----------
  2158.  
  2159.      "Shortening command names"
  2160.  
  2161.    Using the current ARexx command interpreter within ImageStudio, it
  2162. is possible to specify a shorter version of each ARexx command. For
  2163. example, `OP' could be used as a synonym for `OPEN' and `RG' is a
  2164. synonym for `RGB_TO_HSV'. The following should be noted however:
  2165.  
  2166.    * This behaviour may be removed in a future version of ImageStudio.
  2167.      Therefore we recommend that this feature only be used to reduce
  2168.      typing in the command shell (see Command_shell) and not be used in
  2169.      ARexx scripts.
  2170.  
  2171.    * If the shortened command name is ambiguous, the first matching
  2172.      command will be executed. For example, if the shortened command
  2173.      `REQUEST' is used, `REQUEST_DIR' will be executed.
  2174.  
  2175. Example scripts
  2176. ===============
  2177.  
  2178. BalanceTest
  2179. -----------
  2180.  
  2181. Description
  2182.      This script allows the user to see the result of changing the
  2183.      brightness, contrast and gamma values over their full ranges.
  2184.  
  2185.      An image is loaded in if one is not present already. The image is
  2186.      then divided into 3 strips - the top, middle and bottom
  2187.      representing changes to the balance, contrast and gamma
  2188.      respectively. Depending on the number of divisions the user
  2189.      chooses, each of the 3 strips is divided further horizontally and
  2190.      each of the brightness, contrast and  gamma values are applied
  2191.      starting from -100 on the left to +100 on the right. An odd number
  2192.      of horizontal divisions are used to leave a central, vertical area
  2193.      of the image which remains unchanged.
  2194.  
  2195. Known bugs
  2196.      None.
  2197.  
  2198. BatchConvert
  2199. ------------
  2200.  
  2201. Description
  2202.      This scripts allows the conversion of multiple images to be output
  2203.      as one image format.
  2204.  
  2205.      The script allows the following:
  2206.  
  2207.        1. Saving of the converted image into a different location as
  2208.           the source.
  2209.  
  2210.        2. Choose any of the available image formats to save, with
  2211.           controls over their subformat.
  2212.  
  2213.        3. Automatic file renaming.
  2214.  
  2215.        4. Automatic deleting of source images if different from the
  2216.           destination image.
  2217.  
  2218. Known bugs
  2219.      If the source and destination files are the same, but have
  2220.      different filenames (e.g. `T:Bud2.gif' and `Ram:T/Bud2.gif') the
  2221.      script will delete the source file (which will be the destination
  2222.      file). To avoid this, make sure both filenames are both specified
  2223.      in the same manner.
  2224.  
  2225. BatchProcess
  2226. ------------
  2227.  
  2228. Description
  2229.      This scripts allows the processing of multiple images to be output
  2230.      as one image format. The script is based on `BatchConvert' (see
  2231.      BatchConvert).
  2232.  
  2233.      The commands to control the processing should be typed in to the
  2234.      appropriate requester as though they were ARexx commands to be
  2235.      executed in a script. For example:
  2236.  
  2237.           SCALE 640 480
  2238.  
  2239.      would scale each image to 640x480 pixels before saving out.
  2240.      Multiple commands can be separated with a semi-colon `;', for
  2241.      example:
  2242.  
  2243.           SCALE 800 600;COLOURS 256 DITHER FS
  2244.  
  2245.      would scale the image to 800x600 and then reduce to 256 colours
  2246.      with Floyd-Steinberg dithering before saving out. Commands are
  2247.      executed from left to right.
  2248.  
  2249.      The script allows the following:
  2250.  
  2251.        1. Saving of the processed image into a different location as
  2252.           the source.
  2253.  
  2254.        2. Choose any of the available image formats to save, with
  2255.           controls over their subformat.
  2256.  
  2257.        3. Automatic file renaming.
  2258.  
  2259.        4. Application of multiple commands to process the image before
  2260.           saving.
  2261.  
  2262.        5. Automatic deleting of source images if different from the
  2263.           destination image.
  2264.  
  2265. Known bugs
  2266.      If the source and destination files are the same, but have
  2267.      different filenames (e.g. `T:Bud2.gif' and `Ram:T/Bud2.gif') the
  2268.      script will delete the source file (which will be the destination
  2269.      file). To avoid this, make sure both filenames are both specified
  2270.      in the same manner.
  2271.  
  2272. BatchProcessNotify
  2273. ------------------
  2274.  
  2275. Description
  2276.      This script starts a batch lot of processing to be performed when
  2277.      a given file is changed or created; the script is based on
  2278.      `BatchConvert' (see BatchProcess).
  2279.  
  2280.      This is useful if you wish to convert the output from a program
  2281.      that has generated multiple frames (e.g. a raytracer or landscape
  2282.      renderer) into a format that can be compiled into an animation
  2283.      (e.g. ILBM24 to HAM6).
  2284.  
  2285.      The first thing the user must select is the filename of the final
  2286.      file in the sequence. When this file has been created, ImageStudio
  2287.      will start the processing of the images. This file may not of
  2288.      course have been created yet, so the user will have to type the
  2289.      name into the file requester.
  2290.  
  2291.      After the user has specified the output format (see BatchProcess),
  2292.      the script will wait for the specified file be created before
  2293.      proceeding with the processing on all the files in the chosen
  2294.      directory with the same basename as the selected final filename.
  2295.  
  2296. Known bugs
  2297.      If the source and destination files are the same, but have
  2298.      different filenames (e.g. `T:Bud2.gif' and `Ram:T/Bud2.gif') the
  2299.      script will delete the source file (which will be the destination
  2300.      file). To avoid this, make sure both filenames are both specified
  2301.      in the same manner.
  2302.  
  2303. Example
  2304.      The user wishes to convert the 24bit output files created by a
  2305.      raytracer into HAM6 format, ready for compiling into an animation.
  2306.      The animation is 200 frames and the files are numbered `pic.0001',
  2307.      `pic.0002' etc... and are located in the `Work:Render' directory.
  2308.      No extra processing is to be performed on the images.
  2309.  
  2310.      Upon running the BatchProcessNotify script, the user enters
  2311.      `Work:Render/pic.0200' as the final frame in the sequence and sets
  2312.      the output file format to be IFF-ILBM, HAM6.
  2313.  
  2314.      The script now waits for the final file to be created, and upon
  2315.      doing so, matches all files in the `Work:Render' directory that
  2316.      start with the basename `pic.'. 200 files should be found. Each of
  2317.      these files are loaded and saved as HAM6, before the script ends.
  2318.  
  2319. ConvolveTest
  2320. ------------
  2321.  
  2322. Description
  2323.      Applies a chosen set of convolution filters to an image.
  2324.  
  2325.      A number of convolution filters are chosen and the image is tiled
  2326.      depending on the number of filters chosen, each filter is applied
  2327.      to each of the tiles.
  2328.  
  2329. Known bugs
  2330.        1. The convolution filters chosen to apply *must* be taken from
  2331.           the directory currently shown in the `Convolves' floating
  2332.           palette. This is because convolution filters with the
  2333.           CONVOLVE command are chosen by name, not filename (see
  2334.           ARexx_CONVOLVE).
  2335.  
  2336.        2. The tiling algorithm used isn't very smart, the number of
  2337.           tiles vertically is the same as the number horizontally. This
  2338.           can lead to almost half of the image being unaffected if the
  2339.           number of chosen filters is just above the nearest square
  2340.           number.
  2341.  
  2342.        3. The maximum number of filters to be applied to the image is
  2343.           100.
  2344.  
  2345. Crop250x250
  2346. -----------
  2347.  
  2348. Description
  2349.      Removes blank area from unregistered images.
  2350.  
  2351.      When a large image in loaded into the unregistered version of
  2352.      ImageStudio, the actual image is only contained in the top-left
  2353.      250x250 pixels of the buffer. This script crops away the blank
  2354.      buffer to leave a buffer of only 250x250 pixels in size.
  2355.  
  2356. Known bugs
  2357.      None.
  2358.  
  2359. Demo
  2360. ----
  2361.  
  2362. Description
  2363.      Demonstrates some of the features of the ImageStudio ARexx
  2364.      interface.
  2365.  
  2366.      Simply follow the prompts to see the features being explained.
  2367.  
  2368. Known bugs
  2369.      None.
  2370.  
  2371. RegionRecall
  2372. ------------
  2373.  
  2374. Description
  2375.      Sets a previously remembered region.
  2376.  
  2377.      This script allows the region that was set with RegionStore (see
  2378.      RegionStore) to be recalled as the active region for the current
  2379.      image. The user is warned if there is already a currently selected
  2380.      region which will be lost if the remembered region is recalled.
  2381.  
  2382. Known bugs
  2383.      None.
  2384.  
  2385. RegionStore
  2386. -----------
  2387.  
  2388. Description
  2389.      Remembers a region for future recall.
  2390.  
  2391.      The region maybe recalled by using the RegionRecall (see
  2392.      RegionRecall) script.
  2393.  
  2394. Known bugs
  2395.      None.
  2396.  
  2397. ToIcon
  2398. ------
  2399.  
  2400. Description
  2401.      Resizes and remaps the image to that suitable as an icon.
  2402.  
  2403.      The script allows the following:
  2404.  
  2405.        1. Choosing of an alternative palette other than the default 4
  2406.           colour Workbench palette.
  2407.  
  2408.        2. Copying of the image into the clipboard, ready to be pasted
  2409.           into IconEdit.
  2410.  
  2411. Known bugs
  2412.      None.
  2413.  
  2414. ARexx commands
  2415. ==============
  2416.  
  2417.    More detailed information on each of the individual ARexx commands
  2418. can be found below.
  2419.  
  2420. BALANCE
  2421. -------
  2422.  
  2423. Command
  2424.      BALANCE
  2425.  
  2426. Parameters template
  2427.      BRIGHTNESS/N, CONTRAST/N, GAMMA/N, NORED/S, NOGREEN/S,
  2428.      NOBLUE/S
  2429.  
  2430. Return template
  2431.      None.
  2432.  
  2433. Description
  2434.      This command allows the user to change the colour balance of the
  2435.      image.  The user may select specify one of the BRIGHTNESS,
  2436.      CONTRAST or GAMMA values to adjust - specifying more than one will
  2437.      only result in the first operation being acted upon.
  2438.  
  2439.      By default, the operation is applied to all the red, green and
  2440.      blue values of the image. The user may stop any of the RGB
  2441.      channels being affected by selecting any of the NORED, NOGREEN or
  2442.      NOBLUE switches. Multiple switches may be used, but not all three
  2443.      together.
  2444.  
  2445.      See Show_balance, for a full description of altering the image's
  2446.      colour balance.
  2447.  
  2448. Parameters
  2449.     BRIGHTNESS
  2450.           This adjusts the brightness / darkness of the image. Valid
  2451.           values are between -100 (make everything black) to 100 (make
  2452.           everything twice as bright).
  2453.  
  2454.     CONTRAST
  2455.           This adjusts the relative difference between dark and light
  2456.           colours. Valid values are -100 (everything to mid-grey) to
  2457.           100 (everything to extreme contrast).
  2458.  
  2459.     GAMMA
  2460.           This adjusts the gamma response of the image. Valid values
  2461.           are -100 to 100.
  2462.  
  2463. Returns
  2464.      Nothing.
  2465.  
  2466. Errors
  2467.      rc = 0 if the operation was successful.
  2468.  
  2469.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2470.      string describing the problem.
  2471.  
  2472. Example
  2473.      The following adjusts the gamma of the image by 10:
  2474.  
  2475.           BALANCE GAMMA 10
  2476.  
  2477.      The following darkens the green componant of the image by -20:
  2478.  
  2479.           BALANCE BRIGHTNESS -20 NORED NOBLUE
  2480.  
  2481. Known bugs
  2482.      None.
  2483.  
  2484. COLOURS
  2485. -------
  2486.  
  2487. Command
  2488.      COLOURS
  2489.  
  2490. Parameters template
  2491.      NUMCOLOURS/N, SIXTEENMILLION/S, COLOURCHOICE, DITHER
  2492.  
  2493. Return template
  2494.      None.
  2495.  
  2496. Description
  2497.      Allows the user to change the number of colours of the current
  2498.      image. The image can be changed to either 2-256 colours or 16
  2499.      million colours (24bit). Methods of colour choice and dithering
  2500.      are available when reducing the number of colours in the image.
  2501.  
  2502.      See Colours, for a full description of changing the number of
  2503.      colours in the image.
  2504.  
  2505. Parameters
  2506.     NUMCOLOURS/N
  2507.           The number of colours desired for the image. Valid values are
  2508.           2 to 256, the result will always be a colour-mapped image.
  2509.  
  2510.     SIXTEENMILLION/S
  2511.           In order to increase the number of possible colours in the
  2512.           image to the maximum possible (16 million), the user should
  2513.           specify this switch. The user may not specify this switch as
  2514.           well as the NUMCOLOURS option.
  2515.  
  2516.     COLOURCHOICE
  2517.           This is a string which determines which method of colour
  2518.           choice should be used to reduce the number of colours in an
  2519.           image. At the present time, HECKBERT is the only available
  2520.           option and will be used by default if no COLOURCHOICE is
  2521.           specified.
  2522.  
  2523.     DITHER
  2524.           This string determines which method of dithering should be
  2525.           used when reducing the number of colours in an image. Valid
  2526.           strings are: NONE, FLOYD-STEINBERG or FS, STUCKI, JARVIS,
  2527.           BURKES, SIERRA and STEVENSON-ARCE. By default, no dithering
  2528.           is used.
  2529.  
  2530. Returns
  2531.      Nothing.
  2532.  
  2533. Errors
  2534.      rc = 0 if the operation was successful.
  2535.  
  2536.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2537.      string describing the problem.
  2538.  
  2539. Example
  2540.      The following reduces the image to 16 colours with Floyd-Steinberg
  2541.      dithering:
  2542.  
  2543.           COLOURS NUMCOLOURS 16 DITHER "FS"
  2544.  
  2545.      The following increases the image to 24bits, allowing 16 million
  2546.      possible colours:
  2547.  
  2548.           COLOURS SIXTEENMILLION
  2549.  
  2550. Known bugs
  2551.      None.
  2552.  
  2553. CONVOLVE
  2554. --------
  2555.  
  2556. Command
  2557.      CONVOLVE
  2558.  
  2559. Parameters template
  2560.      NAME/A
  2561.  
  2562. Return template
  2563.      None.
  2564.  
  2565. Description
  2566.      Applies the named convolution to the 24bit image. Convolution can
  2567.      only be applied to 16 million colour (24bit) images.
  2568.  
  2569.      See Show_convolves, for a full description of convolution filters.
  2570.  
  2571. Parameters
  2572.     NAME/A
  2573.           The name of the convolution filter as it appears in the "Show
  2574.           convolves" floating palette.
  2575.  
  2576. Returns
  2577.      Nothing.
  2578.  
  2579. Errors
  2580.      rc = 0 if the operation was successful.
  2581.  
  2582.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2583.      string describing the problem.
  2584.  
  2585. Example
  2586.      The following applies the "Blur high" convolution filter to the
  2587.      current image:
  2588.  
  2589.           CONVOLVE NAME '"Blur high"'
  2590.  
  2591.      The following increases the image to 24bits if necessary, then
  2592.      applies the "Edge detect" convolution filter:
  2593.  
  2594.           IMAGEINFO_GET STEM IMAGEINFO.
  2595.           
  2596.           if IMAGEINFO.DEPTH ~= 24 then do
  2597.              COLOURS SIXTEENMILLION
  2598.              end
  2599.           
  2600.           CONVOLVE NAME '"Edge detect"'
  2601.  
  2602. Known bugs
  2603.      None.
  2604.  
  2605. COPY
  2606. ----
  2607.  
  2608. Command
  2609.      COPY
  2610.  
  2611. Parameters template
  2612.      None.
  2613.  
  2614. Return template
  2615.      None.
  2616.  
  2617. Description
  2618.      Copies the current image into the clipboard buffer.
  2619.  
  2620.      See Copy, for a full description of copying images to the
  2621.      clipboard.
  2622.  
  2623. Parameters
  2624.      None.
  2625.  
  2626. Returns
  2627.      Nothing.
  2628.  
  2629. Errors
  2630.      rc = 0 if the operation was successful.
  2631.  
  2632.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2633.      string describing the problem.
  2634.  
  2635. Example
  2636.      The following copies the current image to the clipboard:
  2637.  
  2638.           COPY
  2639.  
  2640. Known bugs
  2641.      None.
  2642.  
  2643. CROP
  2644. ----
  2645.  
  2646. Command
  2647.      CROP
  2648.  
  2649. Parameters template
  2650.      None.
  2651.  
  2652. Return template
  2653.      None.
  2654.  
  2655. Description
  2656.      Crops the image to the currently selected region. A region must be
  2657.      selected for this command to work.
  2658.  
  2659.      See Crop, for a full description of cropping images.
  2660.  
  2661. Parameters
  2662.      None.
  2663.  
  2664. Returns
  2665.      Nothing.
  2666.  
  2667. Errors
  2668.      rc = 0 if the operation was successful.
  2669.  
  2670.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2671.      string describing the problem.
  2672.  
  2673. Example
  2674.      The following crops the current image to the currently selected
  2675.      region:
  2676.  
  2677.           CROP
  2678.  
  2679.      The following crops the current image to the currently selected
  2680.      region only if a region exists:
  2681.  
  2682.           REGION_GET STEM REGIONINFO.
  2683.           
  2684.           if REGIONINFO.MINX ~= -1 then do
  2685.              CROP
  2686.              end
  2687.  
  2688. Known bugs
  2689.      None.
  2690.  
  2691. EFFECT
  2692. ------
  2693.  
  2694. Command
  2695.      EFFECT
  2696.  
  2697. Parameters template
  2698.      NAME/A, ARGS
  2699.  
  2700. Return template
  2701.      None.
  2702.  
  2703. Description
  2704.      Applies the named effect to the image. Optional arguments that the
  2705.      effect may require can be passed via the ARGS parameter.
  2706.  
  2707.      See Effects, for a full description of the available effects.
  2708.  
  2709. Parameters
  2710.     NAME/A
  2711.           The name of the effect to apply, as it appears in the
  2712.           "Effects" floating palette.
  2713.  
  2714.     ARGS
  2715.           Any optional arguments that the desired effect may require.
  2716.  
  2717. Returns
  2718.      Nothing.
  2719.  
  2720. Errors
  2721.      rc = 0 if the operation was successful.
  2722.  
  2723.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2724.      string describing the problem.
  2725.  
  2726. Example
  2727.      The following applies the "Negative" effect to the image:
  2728.  
  2729.           EFFECT NAME "Negative"
  2730.  
  2731.      The following pixelizes the image to a size of 4 pixels:
  2732.  
  2733.           EFFECT NAME "Pixelize" ARGS '"PIXELSIZE 4"'
  2734.  
  2735. Known bugs
  2736.      None.
  2737.  
  2738. FILES_MATCH
  2739. -----------
  2740.  
  2741. Command
  2742.      FILES_MATCH
  2743.  
  2744. Parameters template
  2745.      PATHPART/A, PATTERN
  2746.  
  2747. Return template
  2748.      FILEPARTS/M
  2749.  
  2750. Description
  2751.      Returns a list of files in a directory matching an optional
  2752.      pattern.
  2753.  
  2754. Parameters
  2755.     PATHPART/A
  2756.           The path (directory) name from which the filenames should be
  2757.           taken.
  2758.  
  2759.     PATTERN
  2760.           Optional file matching pattern, to allow the inclusion of
  2761.           only specific filenames. By default, all the files in a
  2762.           directory are returned.
  2763.  
  2764. Returns
  2765.     FILEPARTS/M
  2766.           An array of strings containing the matching filenames in the
  2767.           given PATH.
  2768.  
  2769. Errors
  2770.      rc = 0 if the operation was successful.
  2771.  
  2772.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2773.      string describing the problem.
  2774.  
  2775. Example
  2776.      The following gets all the filenames from the "Pics" directory and
  2777.      returns them in the stem FILENAMES.:
  2778.  
  2779.           FILES_MATCH PATHPART "Pics" STEM FILENAMES.
  2780.  
  2781.      The following gets all the filenames in the current directory with
  2782.      a ".ilbm" or ".iff" filename extension:
  2783.  
  2784.           FILES_MATCH PATHPART '""' PATTERN "#?.(ilbm|iff)" STEM FILENAMES.
  2785.  
  2786.      The following gets all the filenames in the "S:" directory that
  2787.      start with an "S" and puts them in pop up requesters:
  2788.  
  2789.           FILES_MATCH PATHPART "S:" PATTERN "S#?" STEM FILENAMES.
  2790.           
  2791.           do l = 0 to (FILENAMES.FILEPARTS.COUNT - 1)
  2792.              REQUEST_MESSAGE BUTTONTEXT "More|Cancel" AUTOCANCEL,
  2793.                 TEXT '"'FILENAMES.FILEPARTS.l'"'
  2794.              end
  2795.  
  2796. Known bugs
  2797.      None.
  2798.  
  2799. FILE_JOIN
  2800. ---------
  2801.  
  2802. Command
  2803.      FILE_JOIN
  2804.  
  2805. Parameters template
  2806.      PATHPART/A, FILEPART/A
  2807.  
  2808. Return template
  2809.      FILE
  2810.  
  2811. Description
  2812.      Joins the path part of a filename to the file part of a filename,
  2813.      returning the full filename. Adds `/' and `:' where appropriate to
  2814.      create a full filename.
  2815.  
  2816. Parameters
  2817.     PATHPART/A
  2818.           The path (directory) part of the filename to be created.
  2819.  
  2820.     FILEPART/A
  2821.           The file part of the filename to be created.
  2822.  
  2823. Returns
  2824.     FILE
  2825.           The full filename created from the path and file parts.
  2826.  
  2827. Errors
  2828.      rc = 0 if the operation was successful.
  2829.  
  2830.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2831.      string describing the problem.
  2832.  
  2833. Example
  2834.      The following creates the filename "Pics/HappyFace_240x250.bmp"
  2835.      from the seperate path and fileparts - the result is put in a pop
  2836.      up requester:
  2837.  
  2838.           FILE_JOIN PATHPART "Pics" FILEPART "HappyFace_240x250.bmp"
  2839.           
  2840.           REQUEST_MESSAGE TEXT '"'RESULT'"'
  2841.  
  2842.      The following creates the filename "T:TempImage.jpg" from the
  2843.      seperate path and fileparts (note how the '/' seperater is not
  2844.      needed) - the result is put in a pop up requester:
  2845.  
  2846.           FILE_JOIN PATHPART "T:" FILEPART "TempImage.jpg"
  2847.           
  2848.           REQUEST_MESSAGE TEXT '"'RESULT'"'
  2849.  
  2850. Known bugs
  2851.      None.
  2852.  
  2853. FILE_RENAME
  2854. -----------
  2855.  
  2856. Command
  2857.      FILE_RENAME
  2858.  
  2859. Parameters template
  2860.      FILE/A, FROM/A, TO/A
  2861.  
  2862. Return template
  2863.      FILE
  2864.  
  2865. Description
  2866.      Replaces the last occurrance of a given string in a filename with
  2867.      another string. Useful for renaming filename extensions.
  2868.  
  2869.      Note: *This command doesn't actually rename the file*, it simply
  2870.      returns what the new filename should be.
  2871.  
  2872.      Hint: To rename *any* filename extension to a chosen extension,
  2873.      you can set "FROM ." and "TO .newextension". This removes any old
  2874.      extension and replaces it with the given new extension. This can
  2875.      be useful if you are converting a large number of different format
  2876.      files to one format (see BatchConvert).
  2877.  
  2878. Parameters
  2879.     FILE/A
  2880.           The original filename to be renamed.
  2881.  
  2882.     FROM/A
  2883.           The string to remove from the old filename.
  2884.  
  2885.     TO/A
  2886.           The string to replace the FROM string in the filename.
  2887.  
  2888. Returns
  2889.     FILE
  2890.           The renamed filename. If no FROM string was found in the
  2891.           original filename, the original filename is returned with the
  2892.           new TO string appended.
  2893.  
  2894. Errors
  2895.      rc = 0 if the operation was successful.
  2896.  
  2897.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2898.      string describing the problem.
  2899.  
  2900. Example
  2901.      The following renames the filename "Zebra_250x250.pcx" to
  2902.      "Zebra_250x250.ilbm", the final filename is placed in RESULT:
  2903.  
  2904.           FILE_RENAME FILE "Zebra_250x250.pcx" FROM ".pcx" TO ".ilbm"
  2905.  
  2906.      The following appends ".out" to the filename "pic.0001":
  2907.  
  2908.           FILE_RENAME FILE "pic.0001" FROM "XXX" TO ".out"
  2909.  
  2910. Known bugs
  2911.      None.
  2912.  
  2913. FILE_SPLIT
  2914. ----------
  2915.  
  2916. Command
  2917.      FILE_SPLIT
  2918.  
  2919. Parameters template
  2920.      FILE/A
  2921.  
  2922. Return template
  2923.      PATHPART, FILEPART
  2924.  
  2925. Description
  2926.      Splits the given filename into seperate path and file parts.
  2927.  
  2928. Parameters
  2929.     FILE/A
  2930.           The full filename to be split.
  2931.  
  2932. Returns
  2933.     PATHPART
  2934.           The path (directory) part of the filename.
  2935.  
  2936.     FILEPART
  2937.           The file part of the filename.
  2938.  
  2939. Errors
  2940.      rc = 0 if the operation was successful.
  2941.  
  2942.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2943.      string describing the problem.
  2944.  
  2945. Example
  2946.      The following seperates the filename "Pics/HappyFace_240x250.bmp"
  2947.      into seperate path and fileparts - the result is put in a pop up
  2948.      requester:
  2949.  
  2950.           FILE_SPLIT FILE "Pics/HappyFace_240x250.bmp" STEM FILENAME.
  2951.           
  2952.           REQUEST_MESSAGE TEXT '"Path:'FILENAME.PATHPART,
  2953.              'File:'FILENAME.FILEPART'"'
  2954.  
  2955.      The following seperates the filename "T:TempImage.jpg" into
  2956.      seperate path and fileparts - the result is put into the default
  2957.      settings of a file requester:
  2958.  
  2959.           FILE_SPLIT FILE "T:TempImage.jpg" STEM FILENAME.
  2960.           
  2961.           REQUEST_FILE PATHPART '"'FILENAME.PATHPART'"',
  2962.              FILE '"'FILENAME.PATHPART'"'
  2963.  
  2964. Known bugs
  2965.      None.
  2966.  
  2967. FULL_IMAGE
  2968. ----------
  2969.  
  2970. Command
  2971.      FULL_IMAGE
  2972.  
  2973. Parameters template
  2974.      None.
  2975.  
  2976. Return template
  2977.      None.
  2978.  
  2979. Description
  2980.      Displays the full image in the preview window.
  2981.  
  2982.      See Full_image, for a full description of this command.
  2983.  
  2984. Parameters
  2985.      None.
  2986.  
  2987. Returns
  2988.      Nothing.
  2989.  
  2990. Errors
  2991.      rc = 0 if the operation was successful.
  2992.  
  2993.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2994.      string describing the problem.
  2995.  
  2996. Example
  2997.      The following displays the full image in the preview window:
  2998.  
  2999.           FULL_IMAGE
  3000.  
  3001. Known bugs
  3002.      None.
  3003.  
  3004. GUI_BLOCK
  3005. ---------
  3006.  
  3007. Command
  3008.      GUI_BLOCK
  3009.  
  3010. Parameters template
  3011.      None.
  3012.  
  3013. Return template
  3014.      None.
  3015.  
  3016. Description
  3017.      Blocks all input to any open ImageStudio windows. This command is
  3018.      used to stop the user from entering any more input into the
  3019.      ImageStudio windows whilst an ARexx script is running. If the
  3020.      script has been started from ImageStudio (i.e. from the "Scripts"
  3021.      floating palette), all the GUI blocking / unblocking is handled
  3022.      automatically - the GUI is blocked when the script starts and
  3023.      unblocked when it finishes.
  3024.  
  3025.      If the script is started externally (i.e. from another ARexx
  3026.      program or from the CLI using `rx'), the user should block the GUI
  3027.      if they think the ARexx is going to spend a long time processing
  3028.      some information. The GUI is still automatically blocked when a
  3029.      requester is opened however.
  3030.  
  3031. Parameters
  3032.      None.
  3033.  
  3034. Returns
  3035.      Nothing.
  3036.  
  3037. Errors
  3038.      rc = 0 if the operation was successful.
  3039.  
  3040.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3041.      string describing the problem.
  3042.  
  3043. Example
  3044.      The following blocks all input to the ImageStudio GUI:
  3045.  
  3046.           GUI_BLOCK
  3047.  
  3048. Known bugs
  3049.      None.
  3050.  
  3051. GUI_UNBLOCK
  3052. -----------
  3053.  
  3054. Command
  3055.      GUI_UNBLOCK
  3056.  
  3057. Parameters template
  3058.      None.
  3059.  
  3060. Return template
  3061.      None.
  3062.  
  3063. Description
  3064.      Unblocks all input to any open ImageStudio windows after a
  3065.      GUI_BLOCK command. If the script has been started from ImageStudio
  3066.      (i.e. from the "Scripts" floating palette), all the GUI blocking /
  3067.      unblocking is handled automatically - the GUI is blocked when the
  3068.      script starts and unblocked when it finishes.
  3069.  
  3070.      If the scripts is started externally (i.e. from another ARexx
  3071.      program or from the CLI using `rx'), the user should unblock the
  3072.      GUI after a GUI_BLOCK command has been issued. The GUI is still
  3073.      automatically unblocked after a requester has been satisfied
  3074.      however.
  3075.  
  3076. Parameters
  3077.      None.
  3078.  
  3079. Returns
  3080.      Nothing.
  3081.  
  3082. Errors
  3083.      rc = 0 if the operation was successful.
  3084.  
  3085.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3086.      string describing the problem.
  3087.  
  3088. Example
  3089.      The following unblocks all input to the ImageStudio GUI:
  3090.  
  3091.           GUI_UNBLOCK
  3092.  
  3093. Known bugs
  3094.      None.
  3095.  
  3096. HELP
  3097. ----
  3098.  
  3099. Command
  3100.      HELP
  3101.  
  3102. Parameters template
  3103.      COMMAND
  3104.  
  3105. Return template
  3106.      COMMANDDESC, COMMANDLIST/M
  3107.  
  3108. Description
  3109.      Returns help on a given ARexx command. This command is meant
  3110.      mainly for use with the command shell (see Command_shell), as it
  3111.      is of very little use within a script. Both the command's
  3112.      parameter and return templates are returned.
  3113.  
  3114. Parameters
  3115.     COMMAND
  3116.           The ARexx command to obtain help on.
  3117.  
  3118. Returns
  3119.     COMMANDDESC
  3120.           The parameter template.
  3121.  
  3122.     COMMANDLIST/M
  3123.           The result template.
  3124.  
  3125. Errors
  3126.      rc = 0 if the operation was successful.
  3127.  
  3128.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3129.      string describing the problem.
  3130.  
  3131. Example
  3132.      The following gets help on the ARexx OPEN command:
  3133.  
  3134.           HELP OPEN
  3135.  
  3136.      The following gets help on the HELP command:
  3137.  
  3138.           HELP HELP
  3139.  
  3140. Known bugs
  3141.      None.
  3142.  
  3143. HSV_TO_RGB
  3144. ----------
  3145.  
  3146. Command
  3147.      HSV_TO_RGB
  3148.  
  3149. Parameters template
  3150.      H/N/A, S/N/A, V/N/A
  3151.  
  3152. Return template
  3153.      R/N, G/N, B/N
  3154.  
  3155. Description
  3156.      Converts a HSV colour value into a RGB colour value.
  3157.  
  3158.      See Colour representations, for more details on RGB and HSV colour
  3159.      representations.
  3160.  
  3161. Parameters
  3162.     H/N/A
  3163.           The hue value of the colour to convert. Valid values are 0 to
  3164.           360.
  3165.  
  3166.     S/N/A
  3167.           The saturation value of the colour to convert. Valid values
  3168.           are 0 to 100.
  3169.  
  3170.     V/N/A
  3171.           The value of the colour to convert. Valid values are 0 to 100.
  3172.  
  3173. Returns
  3174.     R/N
  3175.           The red componant value of the colour.
  3176.  
  3177.     G/N
  3178.           The green componant value of the colour.
  3179.  
  3180.     B/N
  3181.           The blue componant value of the colour.
  3182.  
  3183. Errors
  3184.      rc = 0 if the operation was successful.
  3185.  
  3186.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3187.      string describing the problem.
  3188.  
  3189. Example
  3190.      The following converts yellow from HSV to RGB representation,
  3191.      putting the result in RESULT:
  3192.  
  3193.           HSV_TO_RGB 60 100 100
  3194.  
  3195.      The following converts mid-grey from HSV to RGB representation,
  3196.      putting the result in the stem COLOUR.:
  3197.  
  3198.           HSV_TO_RGB 0 0 49 STEM COLOUR.
  3199.  
  3200. Known bugs
  3201.      None.
  3202.  
  3203. IMAGEINFO_GET
  3204. -------------
  3205.  
  3206. Command
  3207.      IMAGEINFO_GET
  3208.  
  3209. Parameters template
  3210.      None.
  3211.  
  3212. Return template
  3213.      WIDTH/N, HEIGHT/N, DEPTH/N, FILE, MODEID/N, CHANGED/N
  3214.  
  3215. Description
  3216.      Returns information about the current image. If no image is
  3217.      currently loaded, -1 is returned in all the numeric fields.
  3218.  
  3219. Parameters
  3220.      None.
  3221.  
  3222. Returns
  3223.     WIDTH/N
  3224.           The width of the image in pixels, -1 if no image is loaded.
  3225.  
  3226.     HEIGHT/N
  3227.           The height of the image in pixels, -1 if no image is loaded.
  3228.  
  3229.     DEPTH/N
  3230.           The colour depth of the image, -1 if no image is loaded.
  3231.           Returns 1 to 8 for 2 to 256 colour images, 24 for 16 million
  3232.           colour images.
  3233.  
  3234.     FILE
  3235.           The full filename of the current image.
  3236.  
  3237.     MODEID/N
  3238.           The current screenmode of the image. This number is not meant
  3239.           to be interpreted directly, but can be used to be passed to
  3240.           the screenmode requester (see ARexx_REQUEST_SCREENMODE). When
  3241.           the image loaded is a non IFF-ILBM image, this screenmode
  3242.           value is "guessed" at by ImageStudio to be the closest Amiga
  3243.           equivalent based on the image's dimensions.
  3244.  
  3245.     CHANGED/N
  3246.           A numeric value, taking the value 1 to represent a change in
  3247.           the current project or 0 for no change.
  3248.  
  3249. Errors
  3250.      rc = 0 if the operation was successful.
  3251.  
  3252.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3253.      string describing the problem.
  3254.  
  3255. Example
  3256.      The following gets the current image's information and returns it
  3257.      in the stem IMAGE.:
  3258.  
  3259.           IMAGEINFO_GET STEM IMAGE.
  3260.  
  3261.      The following gets the current image's info and opens a screenmode
  3262.      requester with the current screenmode if an image is loaded:
  3263.  
  3264.           IMAGEINFO_GET STEM IMAGE.
  3265.           
  3266.           if IMAGE.WIDTH ~= -1 then do
  3267.              REQUEST_SCREENMODE MODEID IMAGE.MODEID
  3268.              end
  3269.  
  3270. Known bugs
  3271.      None.
  3272.  
  3273. IMAGEINFO_SET
  3274. -------------
  3275.  
  3276. Command
  3277.      IMAGEINFO_SET
  3278.  
  3279. Parameters template
  3280.      MODEID/N
  3281.  
  3282. Return template
  3283.      None.
  3284.  
  3285. Description
  3286.      Sets information about the current image. Currently, only the
  3287.      image's screenmode can be set.
  3288.  
  3289. Parameters
  3290.     MODEID/N
  3291.           The current screenmode ID of the image.
  3292.  
  3293. Returns
  3294.      Nothing.
  3295.  
  3296. Errors
  3297.      rc = 0 if the operation was successful.
  3298.  
  3299.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3300.      string describing the problem.
  3301.  
  3302. Example
  3303.      The following sets the current image's screenmode to LoRes.
  3304.  
  3305.           IMAGEINFO_SET MODEID 0
  3306.  
  3307.      The following opens up a screenmode requester and allows the user
  3308.      to choose the screenmode of the current image:
  3309.  
  3310.           REQUEST_SCREENMODE STEM SCREENMODEINFO.
  3311.           
  3312.           IMAGEINFO_SET MODEID SCREENMODEINFO.MODEID
  3313.  
  3314. Known bugs
  3315.      None.
  3316.  
  3317. NOTIFY_DIR
  3318. ----------
  3319.  
  3320. Command
  3321.      NOTIFY_DIR
  3322.  
  3323. Parameters template
  3324.      PATHPART/A
  3325.  
  3326. Return template
  3327.      FILEPART, ACTION
  3328.  
  3329. Description
  3330.      Monitors the specified directory and returns when a file is either
  3331.      updated or added to the directory. The affected filename is
  3332.      returned as well as the action that had been performed (either
  3333.      updated or added).
  3334.  
  3335.      Whilst the command is waiting for any change in the specified
  3336.      directory, the fuelgauge will flash and the user may press the
  3337.      `Abort' button on the infobar to cancel the operation.
  3338.  
  3339. Parameters
  3340.     PATHPART
  3341.           The path (directory) to be monitored.
  3342.  
  3343. Returns
  3344.     FILEPART
  3345.           The filename of the file that has been changed; the filename
  3346.           returned is without the full pathname. See ARexx_FILE_JOIN,
  3347.           for information on how to add the path part of the filename
  3348.           to create a full filename.
  3349.  
  3350.     ACTION
  3351.           A string containing a descripion of the action performed on
  3352.           FILE, either "ADDED" if the file is new to the directory or
  3353.           "UPDATED" if the file has been updated since the notify
  3354.           started.
  3355.  
  3356. Errors
  3357.      rc = 0 if the operation was successful.
  3358.  
  3359.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3360.      string describing the problem.
  3361.  
  3362. Example
  3363.      The following monitors the ram disk for any change, returning any
  3364.      change in the NOTIFYINFO. stem:
  3365.  
  3366.           NOTIFY_DIR PATHPART "ram:" STEM NOTIFYINFO.
  3367.  
  3368.      The following monitors the "Pics" directory for any change and
  3369.      pops up a requester informing the user of what has happened:
  3370.  
  3371.           NOTIFY_DIR PATHPART "Pics" STEM NOTIFYINFO.
  3372.           
  3373.           REQUEST_MESSAGE TEXT '"'NOTIFYINFO.FILEPART||' has been '||,
  3374.              NOTIFYINFO.ACTION'"'
  3375.  
  3376. Known bugs
  3377.        1. AmigaDos won't notify us if a file is deleted from the
  3378.           directory.
  3379.  
  3380.        2. If many files are added / updated in the directory quickly,
  3381.           NOTIFY_DIR may not necessarily return the first changed file.
  3382.           The same is true if the a file is created with an icon,
  3383.           NOTIFY_DIR may return the name of the ".info" file.
  3384.  
  3385.        3. File notification is not implemented on all filesystems
  3386.           (notably some network filesystems). No problems occur with
  3387.           either the standard OFS or FFS filesystems.
  3388.  
  3389. NOTIFY_FILE
  3390. -----------
  3391.  
  3392. Command
  3393.      NOTIFY_FILE
  3394.  
  3395. Parameters template
  3396.      FILE/A
  3397.  
  3398. Return template
  3399.      None.
  3400.  
  3401. Description
  3402.      Waits for a change in the specified file. The function will return
  3403.      if either a new file by the given name is created, or if the file
  3404.      is updated. Unlike NOTIFY_DIR (see ARexx_NOTIFY_DIR), NOTIFY_FILE
  3405.      also returns if the specified file is deleted.
  3406.  
  3407.      Whilst the command is waiting for any change in the specified
  3408.      file, the fuelgauge will flash and the user may press the `Abort'
  3409.      button on the infobar to cancel the operation.
  3410.  
  3411.      This function can be used to trigger ImageStudio to perform a
  3412.      given set of operations when the specified file has been created.
  3413.      For example, if 50 frames of an animation were being rendered by a
  3414.      ray-tracer then ImageStudio could be told to wait for the last
  3415.      frame to be created an then convert them all to HAM format.
  3416.  
  3417. Parameters
  3418.     FILE
  3419.           The file to be monitored.
  3420.  
  3421. Returns
  3422.      Nothing.
  3423.  
  3424. Errors
  3425.      rc = 0 if the operation was successful.
  3426.  
  3427.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3428.      string describing the problem.
  3429.  
  3430. Example
  3431.      The following monitors the file "Pics/CheetahFace250x200.ilbm" for
  3432.      any change:
  3433.  
  3434.           NOTIFY_FILE "Pics/CheetahFace250x200.ilbm"
  3435.  
  3436.      The following waits for the 50th frame in the sequence "Render."
  3437.      to be created in the "Work:RayTrace":
  3438.  
  3439.           NOTIFY_FILE "Work:RayTrace/Render.050"
  3440.  
  3441. Known bugs
  3442.      File notification is not implemented on all filesystems (notably
  3443.      some network filesystems). No problems occur with either the
  3444.      standard OFS or FFS filesystems.
  3445.  
  3446. OPEN
  3447. ----
  3448.  
  3449. Command
  3450.      OPEN
  3451.  
  3452. Parameters template
  3453.      FILE/A, FORMAT, ARGS, FORCE/S
  3454.  
  3455. Return template
  3456.      None.
  3457.  
  3458. Description
  3459.      Loads the specified file into ImageStudio. Most file formats are
  3460.      automatically recognised by the program, but it is possible to
  3461.      specify extra information with the FORMAT and ARGS parameters.
  3462.  
  3463. Parameters
  3464.     FILE
  3465.           The filename of the file to be loaded.
  3466.  
  3467.     FORMAT
  3468.           Most file formats are automatically recognised by
  3469.           ImageStudio, but some raw formats need to be specified. If
  3470.           the file to be loaded is known to be a raw format, this
  3471.           parameter should be used to specify the file format. See File
  3472.           formats, for more information on raw file formats.
  3473.  
  3474.     ARGS
  3475.           Some file formats require extra information to be specified a
  3476.           load time, this parameter should be used to specify more
  3477.           information. See File formats, for more information on extra
  3478.           arguments allowed by the loaders.
  3479.  
  3480.     FORCE/S
  3481.           By default the user will be warned if they are about to
  3482.           overwrite the current project. By specifying FORCE, the user
  3483.           is not warned.
  3484.  
  3485. Returns
  3486.      Nothing.
  3487.  
  3488. Errors
  3489.      rc = 0 if the operation was successful.
  3490.  
  3491.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3492.      string describing the problem.
  3493.  
  3494. Example
  3495.      The following opens the file "Pics/CheetahFace250x200.ilbm":
  3496.  
  3497.           OPEN "Pics/CheetahFace250x200.ilbm"
  3498.  
  3499. Known bugs
  3500.      None.
  3501.  
  3502. PALETTE_GET
  3503. -----------
  3504.  
  3505. Command
  3506.      PALETTE_GET
  3507.  
  3508. Parameters template
  3509.      None.
  3510.  
  3511. Return template
  3512.      PALETTE/N/M
  3513.  
  3514. Description
  3515.      Gets the palette information from the current image.
  3516.  
  3517. Parameters
  3518.      None.
  3519.  
  3520. Returns
  3521.     PALETTE/N/M
  3522.           An array of the colours in the palette, ordered red, green
  3523.           then blue. Check PALETTE.COUNT for the number of entries in
  3524.           the array, divide this value by 3 to get the number of
  3525.           colours in the palette.
  3526.  
  3527. Errors
  3528.      rc = 0 if the operation was successful.
  3529.  
  3530.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3531.      string describing the problem.
  3532.  
  3533. Example
  3534.      The following gets the palette from the current image and returns
  3535.      it in the PALETTE. stem:
  3536.  
  3537.           PALETTE_GET STEM PALETTE.
  3538.  
  3539.      The following gets the palette from the current image (if
  3540.      possible) and puts the first colour value in a requester:
  3541.  
  3542.           IMAGEINFO_GET STEM IMAGEINFO.
  3543.           
  3544.           if IMAGEINFO.DEPTH ~= 24 then do
  3545.              PALETTE_GET STEM PALETTE.
  3546.           
  3547.              numcolours = PALETTE.PALETTE.COUNT / 3
  3548.           
  3549.              REQUEST_MESSAGE TEXT '"'numcolours||' colours, colour 0 = '||,
  3550.                 PALETTE.PALETTE.0||','||PALETTE.PALETTE.1||','||,
  3551.                 PALETTE.PALETTE.2||'"'
  3552.              end
  3553.           else do
  3554.              REQUEST_MESSAGE TEXT '"Image has no palette."'
  3555.              end
  3556.  
  3557. Known bugs
  3558.      None.
  3559.  
  3560. PALETTE_LOAD
  3561. ------------
  3562.  
  3563. Command
  3564.      PALETTE_LOAD
  3565.  
  3566. Parameters template
  3567.      FILE/A, DITHER
  3568.  
  3569. Return template
  3570.      None.
  3571.  
  3572. Description
  3573.      Loads and remaps a palette onto the current image. Dithering is
  3574.      also allowed to get a better approximation with the new palette.
  3575.  
  3576. Parameters
  3577.     FILE/A
  3578.           The filename of the palette file to load.
  3579.  
  3580.     DITHER
  3581.           A string containing the name of the dither to apply when
  3582.           applying the new palette. The same dither names as the
  3583.           COLOURS command are used (see ARexx_COLOURS). By default, no
  3584.           dithering is applied.
  3585.  
  3586. Returns
  3587.      Nothing.
  3588.  
  3589. Errors
  3590.      rc = 0 if the operation was successful.
  3591.  
  3592.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3593.      string describing the problem.
  3594.  
  3595. Example
  3596.      The following loads a general 256 colour palette onto the image:
  3597.  
  3598.           PALETTE_LOAD FILE "Palettes/General256.palette"
  3599.  
  3600.      The following loads a general 16 colour palette with
  3601.      Floyd-Steinberg dithering onto the image:
  3602.  
  3603.           PALETTE_LOAD FILE "Palettes/General16.palette" DITHER "FS"
  3604.  
  3605. Known bugs
  3606.      None.
  3607.  
  3608. PALETTE_SAVE
  3609. ------------
  3610.  
  3611. Command
  3612.      PALETTE_SAVE
  3613.  
  3614. Parameters template
  3615.      FILE/A
  3616.  
  3617. Return template
  3618.      None.
  3619.  
  3620. Description
  3621.      Saves the palette of the current image out to disk. The image must
  3622.      be colour-mapped for this operation to work.
  3623.  
  3624. Parameters
  3625.     FILE/A
  3626.           The filename of the palette file to save.
  3627.  
  3628. Returns
  3629.      Nothing.
  3630.  
  3631. Errors
  3632.      rc = 0 if the operation was successful.
  3633.  
  3634.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3635.      string describing the problem.
  3636.  
  3637. Example
  3638.      The following saves the current image's palette to the ram disk:
  3639.  
  3640.           PALETTE_SAVE FILE "ram:Image.palette"
  3641.  
  3642.      The following only saves out the palette of the current image if
  3643.      the current image is colour-mapped:
  3644.  
  3645.           IMAGEINFO_GET STEM IMAGEINFO.
  3646.           
  3647.           if IMAGEINFO.DEPTH ~= 24 then do
  3648.              PALETTE_SAVE FILE "Image.palette"
  3649.              end
  3650.  
  3651. Known bugs
  3652.      None.
  3653.  
  3654. PALETTE_SET
  3655. -----------
  3656.  
  3657. Command
  3658.      PALETTE_SET
  3659.  
  3660. Parameters template
  3661.      PALETTE/N/M/A, REMAP/S
  3662.  
  3663. Return template
  3664.      None.
  3665.  
  3666. Description
  3667.      Forces the array of numbers as the current palette for the image.
  3668.      The depth of the resultant image is taken from the number of
  3669.      entries in the array. This is useful for adding colours into the
  3670.      current image's palette.
  3671.  
  3672. Parameters
  3673.     PALETTE/N/M/A
  3674.           The array of numbers that will build the palette. The total
  3675.           number of elements in the array determines the number of
  3676.           palette entries and the depth of the resultant images. The
  3677.           entries in the array are arranged colour0_red, colour0_green,
  3678.           colour0_blue, colour1_red etc... The values of the red, green
  3679.           and blue values are 0 to 255.
  3680.  
  3681.     REMAP
  3682.           By default, the given palette is forced up on the current
  3683.           image. By specifying the REMAP switch, the image can be
  3684.           remapped to best fit the new palette.
  3685.  
  3686. Returns
  3687.      Nothing.
  3688.  
  3689. Errors
  3690.      rc = 0 if the operation was successful.
  3691.  
  3692.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3693.      string describing the problem.
  3694.  
  3695. Example
  3696.      The following sets the current image to black and white, remapping
  3697.      as best as possible:
  3698.  
  3699.           PALETTE_SET PALETTE "0 0 0 255 255 255" REMAP
  3700.  
  3701.      The following reduces the number of colours in the image to 29,
  3702.      then sets the top 3 colours to be red, white and blue. This is an
  3703.      example of how the returned stem value can be turned into a list
  3704.      of parameters for another command:
  3705.  
  3706.           /* Reduce the number of colours */
  3707.           
  3708.           COLOURS NUMCOLOURS 29 DITHER "FS"
  3709.           
  3710.           /* Get the current palette */
  3711.           
  3712.           PALETTE_GET STEM OLDPALETTE.
  3713.           
  3714.           /* Set the top 3 colours to red, white and blue */
  3715.           
  3716.           OLDPALETTE.PALETTE.87 = 255  /* Red */
  3717.           OLDPALETTE.PALETTE.88 = 0
  3718.           OLDPALETTE.PALETTE.89 = 0
  3719.           
  3720.           OLDPALETTE.PALETTE.90 = 255  /* White */
  3721.           OLDPALETTE.PALETTE.91 = 255
  3722.           OLDPALETTE.PALETTE.92 = 255
  3723.           
  3724.           OLDPALETTE.PALETTE.93 = 0    /* Blue */
  3725.           OLDPALETTE.PALETTE.94 = 0
  3726.           OLDPALETTE.PALETTE.95 = 255
  3727.           
  3728.           /* Convert the stem to a parameter list */
  3729.           
  3730.           NEWPALETTE = ''
  3731.           
  3732.           do l = 0 to (OLDPALETTE.PALETTE.COUNT - 1)
  3733.              NEWPALETTE = NEWPALETTE||' '||OLDPALETTE.PALETTE.l
  3734.              end
  3735.           
  3736.           /* Force the new palette onto the image */
  3737.           
  3738.           PALETTE_SET PALETTE NEWPALETTE REMAP
  3739.  
  3740. Known bugs
  3741.      None.
  3742.  
  3743. PALETTE_SORT
  3744. ------------
  3745.  
  3746. Command
  3747.      PALETTE_SORT
  3748.  
  3749. Parameters template
  3750.      FROM/N, TO/N, LIGHTTODARK/S
  3751.  
  3752. Return template
  3753.      None.
  3754.  
  3755. Description
  3756.      Sorts the colours in the palette into ascending / descending order
  3757.      of brightness. The whole palette can be sorted or a selected range.
  3758.  
  3759.      The colours in the palette are numbered from zero, so a 32 colour
  3760.      image would have palette entries 0 to 31 inclusive.
  3761.  
  3762.      The image in automatically remapped to the new palette after the
  3763.      operation.
  3764.  
  3765. Parameters
  3766.     FROM/N
  3767.           The first colour in the palette to sort from. By default this
  3768.           is zero.
  3769.  
  3770.     TO/N
  3771.           The last colour in the palette to sort to. By default this is
  3772.           the last colour in the image's palette.
  3773.  
  3774.     LIGHTTODARK/S
  3775.           By default the palette is sorted from dark to light. This
  3776.           option allows the palette to be sorted light to dark.
  3777.  
  3778. Returns
  3779.      Nothing.
  3780.  
  3781. Errors
  3782.      rc = 0 if the operation was successful.
  3783.  
  3784.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3785.      string describing the problem.
  3786.  
  3787. Example
  3788.      The following sorts the colours in the image's palette dark
  3789.      through to light:
  3790.  
  3791.           PALETTE_SORT
  3792.  
  3793.      The following sorts the lower 32 colours in a 64 colour image from
  3794.      light to dark:
  3795.  
  3796.           PALETTE_SORT FROM 0 TO 31 LIGHTTODARK
  3797.  
  3798. Known bugs
  3799.      None.
  3800.  
  3801. PASTE
  3802. -----
  3803.  
  3804. Command
  3805.      PASTE
  3806.  
  3807. Parameters template
  3808.      FORCE/S
  3809.  
  3810. Return template
  3811.      None.
  3812.  
  3813. Description
  3814.      Pastes the image in the clipboard into the program.
  3815.  
  3816. Parameters
  3817.     FORCE/S
  3818.           By default the user is warned if the the current project is
  3819.           unsaved and they are about to overwrite it. This parameter
  3820.           will not warn the user and overwrite the project regardless.
  3821.  
  3822. Returns
  3823.      Nothing.
  3824.  
  3825. Errors
  3826.      rc = 0 if the operation was successful.
  3827.  
  3828.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3829.      string describing the problem.
  3830.  
  3831. Example
  3832.      The following pastes the image in the clipboard, warning the user
  3833.      if the current project isn't saved:
  3834.  
  3835.           PASTE
  3836.  
  3837.      The following pastes the image in the clipboard with no warning to
  3838.      the user if the current project isn't saved:
  3839.  
  3840.           PASTE FORCE
  3841.  
  3842. Known bugs
  3843.      With v2.0.x, if the user presses `Abort' when the file is being
  3844.      pasted, an error message is not returned and so the ARexx script
  3845.      assumes the file pasted OK. This will be fixed when the loaders /
  3846.      savers become external modules.
  3847.  
  3848. PREF_GET
  3849. --------
  3850.  
  3851. Command
  3852.      PREF_GET
  3853.  
  3854. Parameters template
  3855.      NAME/A
  3856.  
  3857. Return template
  3858.      VALUE
  3859.  
  3860. Description
  3861.      Allows the user to read any of the preferences values currently in
  3862.      use by the program.
  3863.  
  3864.      See Prefs, for a full description of the available preference
  3865.      values.
  3866.  
  3867. Parameters
  3868.     NAME/A
  3869.           The name of the preference whose value should be returned.
  3870.           The tooltype name is given here, so to read the virtual
  3871.           memory pagesize for example, NAME would be PAGESIZE.
  3872.  
  3873.           If the preference name is not found, an error is returned.
  3874.  
  3875. Returns
  3876.     VALUE
  3877.           The value of the preference. If the preference is a string,
  3878.           VALUE is the string value, if the preference is numeric,
  3879.           VALUE is the number value and if the preference is boolean,
  3880.           VALUE is either the value 1 for a positive setting ("YES" or
  3881.           "ON") or 0 for a negative setting ("NO" or "OFF").
  3882.  
  3883. Errors
  3884.      rc = 0 if the operation was successful.
  3885.  
  3886.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3887.      string describing the problem.
  3888.  
  3889. Example
  3890.      The following finds the current virtual memory pagesize:
  3891.  
  3892.           PREF_GET NAME "PAGESIZE"
  3893.           
  3894.           say 'The pagesize is 'RESULT * 1024' bytes'
  3895.  
  3896.      The following detects whether the preview dithering is being used:
  3897.  
  3898.           PREF_GET NAME "PREVIEWDITHER"
  3899.           
  3900.           if RESULT == 1 then do
  3901.              say 'Preview dithering is ON'
  3902.              end
  3903.           else do
  3904.              say 'Preview dithering is OFF'
  3905.              end
  3906.  
  3907. Known bugs
  3908.      None.
  3909.  
  3910. PREF_SET
  3911. --------
  3912.  
  3913. Command
  3914.      PREF_SET
  3915.  
  3916. Parameters template
  3917.      NAME/A, VALUE/A
  3918.  
  3919. Return template
  3920.      None.
  3921.  
  3922. Description
  3923.      Allows the user to set any of the preferences values currently in
  3924.      use by the program. Changing some preference variables may have no
  3925.      effect until the next time the program is run.
  3926.  
  3927.      See Prefs, for a full description of the available preference
  3928.      values.
  3929.  
  3930. Parameters
  3931.     NAME/A
  3932.           The name of the preference whose value should be changed. The
  3933.           tooltype name is given here, so to set the virtual memory
  3934.           pagesize for example, NAME would be PAGESIZE.
  3935.  
  3936.           If the preference name is not found, an error is returned.
  3937.  
  3938.     VALUE/A
  3939.           The desired value of the preference. If the preference is a
  3940.           string, VALUE should be a string value, if the preference is
  3941.           numeric, VALUE should be a number value. If the preference is
  3942.           boolean, VALUE can be either the strings "YES" or "ON" to set
  3943.           a positive value, "NO" or "OFF" to set a negative value.
  3944.  
  3945. Returns
  3946.      Nothing.
  3947.  
  3948. Errors
  3949.      rc = 0 if the operation was successful.
  3950.  
  3951.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3952.      string describing the problem.
  3953.  
  3954. Example
  3955.      The following turns the preview redraw off:
  3956.  
  3957.           PREF_SET NAME "PREVIEWREDRAW" VALUE "OFF"
  3958.  
  3959.      The following sets the virtal memory pagesize to be 200K:
  3960.  
  3961.           PREF_SET NAME "PAGESIZE" VALUE 200
  3962.  
  3963. Known bugs
  3964.      None.
  3965.  
  3966. QUIT
  3967. ----
  3968.  
  3969. Command
  3970.      QUIT
  3971.  
  3972. Parameters template
  3973.      FORCE/S
  3974.  
  3975. Return template
  3976.      None.
  3977.  
  3978. Description
  3979.      Quits the program. By using the FORCE option, the program can be
  3980.      forced to quit without warning the user.
  3981.  
  3982.      The program cannot be quit by issuing the QUIT command from the
  3983.      command shell.
  3984.  
  3985. Parameters
  3986.     FORCE/S
  3987.           By default the user is warned if the program is about to quit
  3988.           and the current project remains unsaved. Specifying this
  3989.           parameter will force the program to quit regardless.
  3990.  
  3991. Returns
  3992.      Absolutely nothing.
  3993.  
  3994. Errors
  3995.      rc = 0 if the operation was successful.
  3996.  
  3997.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3998.      string describing the problem.
  3999.  
  4000. Example
  4001.      The following quits the program, warning the user if the current
  4002.      project is unsaved:
  4003.  
  4004.           QUIT
  4005.  
  4006.      The following quits the program regardless of the status of the
  4007.      current project:
  4008.  
  4009.           QUIT FORCE
  4010.  
  4011. Known bugs
  4012.      None.
  4013.  
  4014. REDO
  4015. ----
  4016.  
  4017. Command
  4018.      REDO
  4019.  
  4020. Parameters template
  4021.      None.
  4022.  
  4023. Return template
  4024.      None.
  4025.  
  4026. Description
  4027.      Re-does the last UNDO operation (see ARexx_UNDO).
  4028.  
  4029. Parameters
  4030.      None.
  4031.  
  4032. Returns
  4033.      Nothing.
  4034.  
  4035. Errors
  4036.      rc = 0 if the operation was successful.
  4037.  
  4038.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4039.      string describing the problem.
  4040.  
  4041. Example
  4042.      The following re-does the last UNDO operation:
  4043.  
  4044.           REDO
  4045.  
  4046. Known bugs
  4047.      None.
  4048.  
  4049. REDRAW
  4050. ------
  4051.  
  4052. Command
  4053.      REDRAW
  4054.  
  4055. Parameters template
  4056.      None.
  4057.  
  4058. Return template
  4059.      None.
  4060.  
  4061. Description
  4062.      Forces a redraw of the image in the preview window. This is not
  4063.      normally needed, as all the redrawing is done automatically
  4064.      however it could be used if the PREVIEWREDRAW preference is
  4065.      changed within a script.
  4066.  
  4067. Parameters
  4068.      None.
  4069.  
  4070. Returns
  4071.      Nothing.
  4072.  
  4073. Errors
  4074.      rc = 0 if the operation was successful.
  4075.  
  4076.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4077.      string describing the problem.
  4078.  
  4079. Example
  4080.      The following forces a redraw of the image in the preview window:
  4081.  
  4082.           REDRAW
  4083.  
  4084.      The following forces a redraw of the image after the preview
  4085.      redraw has been turned off with the PREVIEWREDRAW preference:
  4086.  
  4087.           PREF_SET NAME "PREVIEWREDRAW" VALUE "OFF"
  4088.           
  4089.           REDRAW
  4090.  
  4091. Known bugs
  4092.      None.
  4093.  
  4094. REGION_CLEAR
  4095. ------------
  4096.  
  4097. Command
  4098.      REGION_CLEAR
  4099.  
  4100. Parameters template
  4101.      None.
  4102.  
  4103. Return template
  4104.      None.
  4105.  
  4106. Description
  4107.      Removes the currently selected region, if one exists. No error is
  4108.      given if a region doesn't exist.
  4109.  
  4110. Parameters
  4111.      None.
  4112.  
  4113. Returns
  4114.      Nothing.
  4115.  
  4116. Errors
  4117.      rc = 0 if the operation was successful.
  4118.  
  4119.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4120.      string describing the problem.
  4121.  
  4122. Example
  4123.      The following clears the currently selected region:
  4124.  
  4125.           REGION_CLEAR
  4126.  
  4127.      The following checks that a region is selected before trying to
  4128.      clear it:
  4129.  
  4130.           REGION_GET STEM REGIONINFO.
  4131.           
  4132.           if REGIONINFO.MINX ~= -1 then do
  4133.              REGION_CLEAR
  4134.              end
  4135.  
  4136. Known bugs
  4137.      None.
  4138.  
  4139. REGION_GET
  4140. ----------
  4141.  
  4142. Command
  4143.      REGION_GET
  4144.  
  4145. Parameters template
  4146.      None.
  4147.  
  4148. Return template
  4149.      MINX/N, MINY/N, MAXX/N, MAXY/N, WIDTH/N, HEIGHT/N
  4150.  
  4151. Description
  4152.      Gets the current region dimensions from the image. If no region is
  4153.      selected, -1 is returned in all the fields.
  4154.  
  4155.      The values returned are the values of all the pixels inside the
  4156.      selected region. For example, if the top left pixel only of the
  4157.      image was selected the following values would be returned:
  4158.  
  4159.           MINX = 0
  4160.           MINY = 0
  4161.           MAXX = 0
  4162.           MAXY = 0
  4163.           WIDTH = 1
  4164.           HEIGHT = 1
  4165.  
  4166. Parameters
  4167.      None.
  4168.  
  4169. Returns
  4170.     MINX/N
  4171.           The left-most pixel included in the selected region, -1 if no
  4172.           region is selected.
  4173.  
  4174.     MINY/N
  4175.           The top-most pixel included in the selected region, -1 if no
  4176.           region is selected.
  4177.  
  4178.     MAXX/N
  4179.           The right-most pixel included in the selected region, -1 if
  4180.           no region is selected.
  4181.  
  4182.     MAXY/N
  4183.           The bottom-most pixel included in the selected region, -1 if
  4184.           no region is selected.
  4185.  
  4186.     WIDTH/N
  4187.           The width of the selected region, -1 if no region is selected.
  4188.  
  4189.     HEIGHT/N
  4190.           The height of the selected region, -1 if no region is
  4191.           selected.
  4192.  
  4193. Errors
  4194.      rc = 0 if the operation was successful.
  4195.  
  4196.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4197.      string describing the problem.
  4198.  
  4199. Example
  4200.      The following gets the currently selected region and returns the
  4201.      value in the REGIONINFO. stem:
  4202.  
  4203.           REGION_GET STEM REGIONINFO.
  4204.  
  4205.      The following checks that a region is selected, popping up an
  4206.      message requester:
  4207.  
  4208.           REGION_GET STEM REGIONINFO.
  4209.           
  4210.           if REGIONINFO.MINX ~= -1 then do
  4211.              REQUEST_MESSAGE TEXT '"Width,Height = '||REGIONINFO.WIDTH||,
  4212.                 ','||REGIONINFO.HEIGHT||'"'
  4213.              end
  4214.           else do
  4215.              REQUEST_MESSAGE TEXT '"No region selected"'
  4216.              end
  4217.  
  4218. Known bugs
  4219.      None.
  4220.  
  4221. REGION_SET
  4222. ----------
  4223.  
  4224. Command
  4225.      REGION_SET
  4226.  
  4227. Parameters template
  4228.      None.
  4229.  
  4230. Return template
  4231.      XSTART/N, YSTART/N, TO/S, XEND/N, YEND/N
  4232.  
  4233. Description
  4234.      Sets the selected region of the image. The region can either be
  4235.      specifed by the co-ordinates of its corners or by its width,
  4236.      height and position.
  4237.  
  4238. Parameters
  4239.     XSTART/N
  4240.           The left-most co-ordinate included in the region.
  4241.  
  4242.     YSTART/N
  4243.           The top-most co-ordinate included in the region.
  4244.  
  4245.     TO/S
  4246.           By default the region is specified by the co-ordinates of its
  4247.           top-left corners and its width and height. By using the TO
  4248.           parameter, the region can be specified with the lower-bottom
  4249.           co-ordinate of the region.
  4250.  
  4251.     XEND/N
  4252.           The width of the region. If the TO parameter is used, this
  4253.           value is used to specify the right-most pixel included by the
  4254.           region.
  4255.  
  4256.     YEND/n
  4257.           The height of the region. If the TO parameter is used, this
  4258.           value is used to specify the bottom-most pixel included by
  4259.           the region.
  4260.  
  4261. Returns
  4262.      Nothing.
  4263.  
  4264. Errors
  4265.      rc = 0 if the operation was successful.
  4266.  
  4267.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4268.      string describing the problem.
  4269.  
  4270. Example
  4271.      The following sets the selected region to have it's top-left
  4272.      corner at (10,20) with a width of 30 and height of 40:
  4273.  
  4274.           REGION_SET 10 20 30 40
  4275.  
  4276.      The following sets the selected region to have it's top-left
  4277.      corner at (50,60) and its bottom-right corner to include (70,80):
  4278.  
  4279.           REGION_SET 50 60 TO 70 80
  4280.  
  4281. Known bugs
  4282.      None.
  4283.  
  4284. REQUEST_DIR
  4285. -----------
  4286.  
  4287. Command
  4288.      REQUEST_DIR
  4289.  
  4290. Parameters template
  4291.      PATHPART, TITLE
  4292.  
  4293. Return template
  4294.      PATHPART
  4295.  
  4296. Description
  4297.      Opens a directory requester, allowing the user to choose a
  4298.      directory name.
  4299.  
  4300.      The other ImageStudio windows are automatically blocked when the
  4301.      requester is opened and unblocked when the requester is closed.
  4302.  
  4303.      In common with all ImageStudio requesters, if the user presses
  4304.      `Cancel', an error message is returned. For the script to trap
  4305.      this error, global error checking must be turned off. See Error
  4306.      checking, for more information.
  4307.  
  4308. Parameters
  4309.     PATHPART
  4310.           The default path name to put in the requester.
  4311.  
  4312.     TITLE
  4313.           The text for the title bar of the requester.
  4314.  
  4315. Returns
  4316.     PATHPART
  4317.           The selected path from the requester.
  4318.  
  4319. Errors
  4320.      rc = 0 if the operation was successful.
  4321.  
  4322.      rc = 10 if the operation failed for any reason or the user
  4323.      cancelled requester, rc2 will contain a string describing the
  4324.      problem.
  4325.  
  4326. Example
  4327.      The following puts up a directory requester, with the results
  4328.      being put in the DIRINFO. stem:
  4329.  
  4330.           REQUEST_DIR STEM DIRINFO.
  4331.  
  4332.      The following puts up a directory requester with a default
  4333.      directory of "T:", the result being printed in a message requester:
  4334.  
  4335.           REQUEST_DIR PATHPART "T:" STEM DIRINFO.
  4336.           
  4337.           REQUEST_MESSAGE TEXT '"You chose '||DIRINFO.PATHPART||'"'
  4338.  
  4339. Known bugs
  4340.      None.
  4341.  
  4342. REQUEST_FILE
  4343. ------------
  4344.  
  4345. Command
  4346.      REQUEST_FILE
  4347.  
  4348. Parameters template
  4349.      PATHPART, FILEPART, PATTERN, TITLE
  4350.  
  4351. Return template
  4352.      FILE
  4353.  
  4354. Description
  4355.      Opens a file requester, allowing the user to choose a filename.
  4356.  
  4357.      The other ImageStudio windows are automatically blocked when the
  4358.      requester is opened and unblocked when the requester is closed.
  4359.  
  4360.      In common with all ImageStudio requesters, if the user presses
  4361.      `Cancel', an error message is returned. For the script to trap
  4362.      this error, global error checking must be turned off. See Error
  4363.      checking, for more information.
  4364.  
  4365. Parameters
  4366.     PATHPART
  4367.           The default path name to put in the requester.
  4368.  
  4369.     FILEPART
  4370.           The default filename to put in the requester.
  4371.  
  4372.     PATTERN
  4373.           An AmigaDos pattern matching pattern, will only show files in
  4374.           the requester which match the given pattern. By default, all
  4375.           files are shown.
  4376.  
  4377.     TITLE
  4378.           The text for the title bar of the requester.
  4379.  
  4380. Returns
  4381.     FILE
  4382.           The selected filename from the requester, the filename
  4383.           consists of both the FILEPART and PATHPART parts.
  4384.  
  4385. Errors
  4386.      rc = 0 if the operation was successful.
  4387.  
  4388.      rc = 10 if the operation failed for any reason or the user
  4389.      cancelled requester, rc2 will contain a string describing the
  4390.      problem.
  4391.  
  4392. Example
  4393.      The following puts up a file requester, with the results being put
  4394.      in the FILEINFO. stem:
  4395.  
  4396.           REQUEST_FILE STEM FILEINFO.
  4397.  
  4398.      The following puts up a file requester with the result being
  4399.      printed in a message requester. The default file is
  4400.      "Pics/HappyFace240x250.bmp":
  4401.  
  4402.           REQUEST_FILE PATHPART "Pics" FILEPART "HappyFace240x250.bmp",
  4403.              STEM FILEINFO.
  4404.           
  4405.           REQUEST_MESSAGE TEXT '"You chose '||FILEINFO.FILE||'"'
  4406.  
  4407.      The following will only show files with a ".ilbm" file extension:
  4408.  
  4409.           REQUEST_FILE PATTERN "#?.ilbm"
  4410.  
  4411. Known bugs
  4412.      None.
  4413.  
  4414. REQUEST_LIST
  4415. ------------
  4416.  
  4417. Command
  4418.      REQUEST_LIST
  4419.  
  4420. Parameters template
  4421.      STRINGS/M/A, TITLE
  4422.  
  4423. Return template
  4424.      NUMBER/N, STRING
  4425.  
  4426. Description
  4427.      Opens a requester containing a list of options for the user to
  4428.      choose.
  4429.  
  4430.      The other ImageStudio windows are automatically blocked when the
  4431.      requester is opened and unblocked when the requester is closed.
  4432.  
  4433.      In common with all ImageStudio requesters, if the user presses
  4434.      `Cancel', an error message is returned. For the script to trap
  4435.      this error, global error checking must be turned off. See Error
  4436.      checking, for more information.
  4437.  
  4438. Parameters
  4439.     STRINGS/M/A
  4440.           The a list of string options for the user to choose.
  4441.  
  4442.     TITLE
  4443.           The text for the title bar of the requester.
  4444.  
  4445. Returns
  4446.     NUMBER/N
  4447.           The number in the list of the selected string. The strings
  4448.           are numbered from zero, so selecting the first choice in the
  4449.           list would set NUMBER to 0.
  4450.  
  4451.     STRING
  4452.           The selected string.
  4453.  
  4454. Errors
  4455.      rc = 0 if the operation was successful.
  4456.  
  4457.      rc = 10 if the operation failed for any reason, or the user
  4458.      cancelled requester, or no choice was made. rc2 will contain a
  4459.      string describing the problem.
  4460.  
  4461. Example
  4462.      The following puts up a list requester, with the results being put
  4463.      in the LISTINFO. stem:
  4464.  
  4465.           REQUEST_LIST STRINGS "IFF-ILBM" "PCX" "BMP" STEM LISTINFO.
  4466.  
  4467.      The following puts up a list requester, the result being printed
  4468.      in a message requester:
  4469.  
  4470.           REQUEST_LIST STRINGS "First" "Second" "Third" STEM LISTINFO.
  4471.           
  4472.           REQUEST_MESSAGE TEXT '"You chose '||LISTINFO.STRING||','||,
  4473.              ' option '||LISTINFO.NUMBER'"'
  4474.  
  4475. Known bugs
  4476.      None.
  4477.  
  4478. REQUEST_MESSAGE
  4479. ---------------
  4480.  
  4481. Command
  4482.      REQUEST_MESSAGE
  4483.  
  4484. Parameters template
  4485.      TEXT/A, BUTTONTEXT, AUTOCANCEL/S, TITLE
  4486.  
  4487. Return template
  4488.      NUMBER/N
  4489.  
  4490. Description
  4491.      Opens a general purpose message requester. Simple messages can be
  4492.      presented to the user for them to "OK" them. OK / Cancel
  4493.      requesters can be built with this requester, as well a complex
  4494.      multiple choice requesters.
  4495.  
  4496.      When designing requesters, it is worth remembering the following
  4497.      rules:
  4498.  
  4499.        1. The "Negative" response should be placed on the far
  4500.           right-hand button. For example, the `Cancel' button should be
  4501.           placed here.
  4502.  
  4503.        2. The "Positive" response should be placed on the far left-hand
  4504.           button. For example, the `OK' button should be placed here.
  4505.  
  4506.        3. Try to word your requesters to keep the positive and negative
  4507.           text as "OK" and "Cancel". Using options like "Go to it" and
  4508.           "Stop right here" doesn't make for a very intuitive interface.
  4509.  
  4510.        4. Keep the request text short. The user shouldn't have to read
  4511.           a screen full of text to find out what to do next.
  4512.  
  4513.        5. You should *NEVER* swap the "OK" and "Cancel" buttons around.
  4514.  
  4515.        6. The last point is *VERY* important.
  4516.  
  4517.      The other ImageStudio windows are automatically blocked when the
  4518.      requester is opened and unblocked when the requester is closed.
  4519.  
  4520.      If the AUTOCANCEL option is used and the user presses `Cancel', an
  4521.      error message is returned. For the script to trap this error,
  4522.      global error checking must be turned off. See Error checking, for
  4523.      more information.
  4524.  
  4525. Parameters
  4526.     TEXT/A
  4527.           The text to put into the requester. The text may contain
  4528.           multiple lines by including the `\n' characters in the string
  4529.           (see examples below).
  4530.  
  4531.     BUTTONTEXT
  4532.           The text for the buttons of the requester. The different
  4533.           buttons are seperated with a `|' character (i.e. BUTTONTEXT
  4534.           "OK|Cancel"). By default, only an "OK" button is placed in
  4535.           the requester.
  4536.  
  4537.     AUTOCANCEL/S
  4538.           By default REQUEST_MESSAGE simply returns the number of the
  4539.           button that the user selected. If the requester is of the OK
  4540.           / Cancel variety, specifying the AUTOCANCEL switch allows the
  4541.           requester to stop the script should the user press `Cancel'.
  4542.  
  4543.     TITLE
  4544.           The text for the title bar of the requester.
  4545.  
  4546. Returns
  4547.     NUMBER
  4548.           The number of the selected button. If the requester has one
  4549.           button, NUMBER is set to 0. For more that one button, the
  4550.           right-most button sets NUMBER to 0, with the buttons being
  4551.           numbered from 1 upwards working left to right. For example,
  4552.           with a BUTTONTEXT of "OK|Save first|Cancel", "OK" would
  4553.           return 1, "Save first" would return 2 and "Cancel" would
  4554.           return 0.
  4555.  
  4556. Errors
  4557.      rc = 0 if the operation was successful.
  4558.  
  4559.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4560.      string describing the problem. rc will also be set to 10 if the
  4561.      AUTOCANCEL option is used and the user selects `Cancel'.
  4562.  
  4563. Example
  4564.      The following puts up a message requester:
  4565.  
  4566.           REQUEST_MESSAGE TEXT '"Operation finished"'
  4567.  
  4568.      The following puts up a OK / Cancel requester, stopping the script
  4569.      if the user selects `Cancel':
  4570.  
  4571.           REQUEST_MESSAGE TEXT '"Continue ?"' BUTTONTEXT "OK|Cancel",
  4572.              AUTOCANCEL
  4573.  
  4574.      The following shows a multiple choice requester, followed by a
  4575.      requester showing which option was chosen:
  4576.  
  4577.           REQUEST_MESSAGE TEXT '"Choose an option..."',
  4578.              BUTTONTEXT "First|Second|Third"
  4579.           
  4580.           REQUEST_MESSAGE TEXT '"You chose option '||RESULT||'"'
  4581.  
  4582.      The following shows a message requester with multiple lines of
  4583.      text using the `\n' characters:
  4584.  
  4585.           REQUEST_MESSAGE TEXT '"Top line\nMiddle line\nBottom line"'
  4586.  
  4587. Known bugs
  4588.      None.
  4589.  
  4590. REQUEST_MULTIFILE
  4591. -----------------
  4592.  
  4593. Command
  4594.      REQUEST_MULTIFILE
  4595.  
  4596. Parameters template
  4597.      PATHPART, FILEPART, PATTERN, TITLE
  4598.  
  4599. Return template
  4600.      FILES/M
  4601.  
  4602. Description
  4603.      Opens a file requester, allowing the user to choose multiple
  4604.      filenames.
  4605.  
  4606.      The other ImageStudio windows are automatically blocked when the
  4607.      requester is opened and unblocked when the requester is closed.
  4608.  
  4609.      In common with all ImageStudio requesters, if the user presses
  4610.      `Cancel', an error message is returned. For the script to trap
  4611.      this error, global error checking must be turned off. See Error
  4612.      checking, for more information.
  4613.  
  4614. Parameters
  4615.     PATHPART
  4616.           The default path name to put in the requester.
  4617.  
  4618.     FILEPART
  4619.           The default filename to put in the requester.
  4620.  
  4621.     PATTERN
  4622.           An AmigaDos pattern matching pattern, will only show files in
  4623.           the requester which match the given pattern. By default, all
  4624.           files are shown.
  4625.  
  4626.     TITLE
  4627.           The text for the title bar of the requester.
  4628.  
  4629. Returns
  4630.     FILES/M
  4631.           The selected filenames from the requester, the filenames
  4632.           consists of both the FILEPART and PATHPART parts.
  4633.  
  4634. Errors
  4635.      rc = 0 if the operation was successful.
  4636.  
  4637.      rc = 10 if the operation failed for any reason or the user
  4638.      cancelled requester, rc2 will contain a string describing the
  4639.      problem. rc will also be set to 10 if no files are chosen.
  4640.  
  4641. Example
  4642.      The following puts up a multifile requester, with the results
  4643.      being put in the MULTIFILEINFO. stem:
  4644.  
  4645.           REQUEST_MULTIFILE STEM MULTIFILEINFO.
  4646.  
  4647.      The following puts up a multifile requester, with a default path
  4648.      of "Pics" and loops through all the selected files by putting them
  4649.      in message requesters:
  4650.  
  4651.           REQUEST_MULTIFILE PATHPART "Pics" STEM MULTIFILENFO.
  4652.           
  4653.           do l = 0 to (MULTIFILENFO.FILES.COUNT - 1)
  4654.              REQUEST_MESSAGE TEXT '"'MULTIFILENFO.FILES.l'"',
  4655.                 BUTTONTEXT '"More...|Cancel"' AUTOCANCEL
  4656.              end
  4657.  
  4658. Known bugs
  4659.      If no file is chosen, the command returns a "user cancelled"
  4660.      error. This is normal.
  4661.  
  4662. REQUEST_MULTIVALUE
  4663. ------------------
  4664.  
  4665. Command
  4666.      REQUEST_MULTIVALUE
  4667.  
  4668. Parameters template
  4669.      STRINGS/M, TITLE
  4670.  
  4671. Return template
  4672.      STRINGS/M
  4673.  
  4674. Description
  4675.      Opens a multivalue requester, allowing the user to change any of
  4676.      the listed values.
  4677.  
  4678.      The other ImageStudio windows are automatically blocked when the
  4679.      requester is opened and unblocked when the requester is closed.
  4680.  
  4681.      In common with all ImageStudio requesters, if the user presses
  4682.      `Cancel', an error message is returned. For the script to trap
  4683.      this error, global error checking must be turned off. See Error
  4684.      checking, for more information.
  4685.  
  4686. Parameters
  4687.     STRINGS/M
  4688.           A list of strings with the values to display in the
  4689.           requester. The strings are grouped in pairs, the first string
  4690.           of the pair being the text for the requester, the second
  4691.           being the default value for that string.
  4692.  
  4693.           For example, the following would place width and height
  4694.           values in the requester, with default values of 640 and 480
  4695.           respectively:
  4696.  
  4697.                STRINGS "Width" "640" "Height" "480"
  4698.  
  4699.           If there isn't an even number of strings, an error is
  4700.           returned.
  4701.  
  4702.     TITLE
  4703.           The text for the title bar of the requester.
  4704.  
  4705. Returns
  4706.     STRINGS/M
  4707.           A list of strings with the values to display in the
  4708.           requester. The strings are grouped in pairs, the first string
  4709.           of the pair being the text for the requester, the second
  4710.           being the returned value for that string.
  4711.  
  4712. Errors
  4713.      rc = 0 if the operation was successful.
  4714.  
  4715.      rc = 10 if the operation failed for any reason or the user
  4716.      cancelled requester, rc2 will contain a string describing the
  4717.      problem. rc will also be set to 10 if no files are chosen.
  4718.  
  4719. Example
  4720.      The following puts up a multivalue requester, allowing the user to
  4721.      change the width, height and depth of an image. The result is put
  4722.      in the MULTIVALUEINFO. stem:
  4723.  
  4724.           REQUEST_MULTIVALUE "Width" "640" "Height" "480",
  4725.              STEM MULTIVALUEINFO.
  4726.  
  4727.      The following puts up a multivalue requester, allowing the user to
  4728.      change the name and depth of an image. The result is put displayed
  4729.      in a message requester and the values recycled until the user
  4730.      cancels the requesters:
  4731.  
  4732.           INSTRINGS = 'Name ImageName.bmp Depth 4'
  4733.           
  4734.           do forever
  4735.              REQUEST_MULTIVALUE STRINGS INSTRINGS STEM MULTIVALUEINFO.
  4736.           
  4737.              REQUEST_MESSAGE TEXT BUTTONTEXT "OK|Cancel" AUTOCANCEL,
  4738.                 TEXT '"Name: '||MULTIVALUEINFO.STRINGS.1||'\n'||,
  4739.                 'Depth : '||MULTIVALUEINFO.STRINGS.3||'"'
  4740.           
  4741.              /* Construct the new INSTRINGS */
  4742.           
  4743.              INSTRINGS = ''
  4744.           
  4745.              do l = 0 to (MULTIVALUEINFO.STRINGS.COUNT - 1)
  4746.                 INSTRINGS = INSTRINGS||' '||MULTIVALUEINFO.STRINGS.l
  4747.                 end
  4748.           
  4749.              end
  4750.  
  4751. Known bugs
  4752.      None.
  4753.  
  4754. REQUEST_SCREENMODE
  4755. ------------------
  4756.  
  4757. Command
  4758.      REQUEST_SCREENMODE
  4759.  
  4760. Parameters template
  4761.      MODEID/N, WIDTH/N, HEIGHT/N, OVERSCAN/N, DEPTH/N,
  4762.      GADS_ENABLED/S, MAXDEPTH/N, MINWIDTH/N, MINHEIGHT/N
  4763.  
  4764. Return template
  4765.      MODEID/N, WIDTH/N, HEIGHT/N, OVERSCAN/N, DEPTH/N, TEXT
  4766.  
  4767. Description
  4768.      Opens a screenmode requester, allowing the user to select an Amiga
  4769.      screenmode. By specifying the GADS_ENABLED, the user may also
  4770.      select the width, height, depth and overscan values for the
  4771.      screenmode.
  4772.  
  4773.      The other ImageStudio windows are automatically blocked when the
  4774.      requester is opened and unblocked when the requester is closed.
  4775.  
  4776.      In common with all ImageStudio requesters, if the user presses
  4777.      `Cancel', an error message is returned. For the script to trap
  4778.      this error, global error checking must be turned off. See Error
  4779.      checking, for more information.
  4780.  
  4781. Parameters
  4782.     MODEID/N
  4783.           The default screenmode ID for the requester which will be
  4784.           selected in the requester. By default, LORES is selected.
  4785.  
  4786.     WIDTH/N
  4787.           The default screen width value to put in the requester. By
  4788.           default, the default width of the selected screenmode is used.
  4789.  
  4790.     HEIGHT/N
  4791.           The default screen height value to put in the requester. By
  4792.           default, the default height of the selected screenmode is
  4793.           used.
  4794.  
  4795.     OVERSCAN/N
  4796.           The default overscan value to put in the requester. The
  4797.           following values are valid: 1 for text size, 2 for graphics
  4798.           size, 3 for extreme and 4 for maximum overscan. By default,
  4799.           text size is used.
  4800.  
  4801.     DEPTH/N
  4802.           The default depth value to put in the requester. By default,
  4803.           a depth of 2 is used.
  4804.  
  4805.     GADSENABLED/S
  4806.           By default the screenmode requester only allows the selecting
  4807.           of the screenmode. By using this switch, the user may also
  4808.           set the width, height, overscan and depth of the screenmode.
  4809.  
  4810.     MAXDEPTH/N
  4811.           The maximum depth allowed by the depth gadget. This value is
  4812.           only relevant to the internal screenmode requester.
  4813.  
  4814.     MINWIDTH/N
  4815.           The minimum allowable width of the screenmode.
  4816.  
  4817.     MINHEIGHT/N
  4818.           The minimum allowable height of the screenmode.
  4819.  
  4820. Returns
  4821.     MODEID/N
  4822.           The chosen screenmode ID.
  4823.  
  4824.     WIDTH/N
  4825.           The screen width chosen in the requester. This value is only
  4826.           set if the GADSENABLED switch is used.
  4827.  
  4828.     HEIGHT/N
  4829.           The screen height chosen in the requester. This value is only
  4830.           set if the GADSENABLED switch is used.
  4831.  
  4832.     OVERSCAN/N
  4833.           The overscan value chosen in the requester. The following
  4834.           values are returned: 1 for text size, 2 for graphics size, 3
  4835.           for extreme and 4 for maximum overscan. This value is only
  4836.           set if the GADSENABLED switch is used.
  4837.  
  4838.     DEPTH/N
  4839.           The depth value chosen in the requester. This value is only
  4840.           set if the GADSENABLED switch is used.
  4841.  
  4842.     TEXT
  4843.           A text description of the screenmode chosen.
  4844.  
  4845. Errors
  4846.      rc = 0 if the operation was successful.
  4847.  
  4848.      rc = 10 if the operation failed for any reason or the user
  4849.      cancelled requester, rc2 will contain a string describing the
  4850.      problem.
  4851.  
  4852. Example
  4853.      The following puts up a screenmode requester, the result is put in
  4854.      the SCREENMODEINFO. stem:
  4855.  
  4856.           REQUEST_SCREENMODE STEM SCREENMODEINFO.
  4857.  
  4858.      The following puts up a screenmode requester, complete with the
  4859.      width, height, depth and overscan gadgets. The chosen screenmode
  4860.      text is put in a message requester:
  4861.  
  4862.           REQUEST_SCREENMODE GADSENABLED STEM SCREENMODEINFO.
  4863.           
  4864.           REQUEST_MESSAGE TEXT '"'SCREENMODEINFO.TEXT'"'
  4865.  
  4866. Known bugs
  4867.        1. There are two screenmode requesters that can be used by
  4868.           ImageStudio. If ImageStudio is running on a Workbench2.1+
  4869.           Amiga the system ASL screenmode requester is used, if the
  4870.           Workbench2.04 is running then ImageStudio will use its
  4871.           internal screenmode requester (Workbench2.04 doesn't have an
  4872.           ASL screenmode requester). Because of the two different
  4873.           requesters and the complex way in which the Amiga deals with
  4874.           screenmodes, the operation of the two can be subtly different.
  4875.  
  4876.           The most noticeable difference is in the handling of the
  4877.           Amiga's built in screenmodes. A built in screenmode is
  4878.           something like "LoRes" or "HighRes Interlaced" as opposed to
  4879.           a disk based screenmode like "MULTISCAN:Productivity" or
  4880.           "SUPER72:High Res".
  4881.  
  4882.           If you choose a built in screenmode in the ASL screenmode
  4883.           requester, the requester will return the screenmode ID
  4884.           something like "PAL:LoRes". This means that the requester
  4885.           specifies that the screenmode is "LoRes" and the monitor to
  4886.           be used is "PAL" (or "NTSC" in America). If you choose a
  4887.           built in screenmode in the internal screenmode requester, the
  4888.           requester will return the screenmode ID something like
  4889.           "LoRes", i.e. *it doesn't specify the monitor to be used*.
  4890.  
  4891.           This is not usually a problem, but we feel that our
  4892.           screenmode requester may be more compatible with older
  4893.           software which doesn't understand the system of specifying
  4894.           the monitor in the screenmode.
  4895.  
  4896.           The matter is further complicated if you are using a monitor
  4897.           with mode promotion. Here, the internal screenmode
  4898.           requester's screenmodes are promoted to the new double
  4899.           scanning modes (e.g. "HighRes" gets promoted to
  4900.           "DBLPAL:HighRes"). The ASL screenmodes *aren't* promoted, as
  4901.           they already contain the desired monitor information in the
  4902.           screenmode. This feature is either "desirable" or
  4903.           "undesirable" depending on your point of view. If you've ever
  4904.           wondered why some screenmodes don't promote, this is why -
  4905.           they have been told to be specifically "PAL" or "NTSC" in
  4906.           their screenmode.
  4907.  
  4908.           If major problems are found in the differences between the
  4909.           internal and ASL screenmode requesters, we will endevour to
  4910.           alter the internal screenmode requester, but we think this is
  4911.           unlikely to cause any real problems.
  4912.  
  4913.        2. To be safe in selecting a mode, you should always click on it
  4914.           in the requester. When you pass a default screenmode, the
  4915.           mode highlighted in the requester may not be exactly the same
  4916.           as the default screenmode given - it may be an equivalent.
  4917.           Clicking on the screenmode ensures that it returns that
  4918.           mode's real ID.
  4919.  
  4920. REQUEST_STRING
  4921. --------------
  4922.  
  4923. Command
  4924.      REQUEST_STRING
  4925.  
  4926. Parameters template
  4927.      TEXT1, TEXT2, TEXT3, STRING, TITLE
  4928.  
  4929. Return template
  4930.      STRING
  4931.  
  4932. Description
  4933.      Opens a string requester, allowing the user to type in one line of
  4934.      text.
  4935.  
  4936.      If a filename or directory name is required, it is suggested that
  4937.      either a special file or directory requester is used instead.
  4938.  
  4939.      The other ImageStudio windows are automatically blocked when the
  4940.      requester is opened and unblocked when the requester is closed.
  4941.  
  4942.      In common with all ImageStudio requesters, if the user presses
  4943.      `Cancel', an error message is returned. For the script to trap
  4944.      this error, global error checking must be turned off. See Error
  4945.      checking, for more information.
  4946.  
  4947. Parameters
  4948.     TEXT1
  4949.           The top line of description text in the requester. The text
  4950.           will be left justified.
  4951.  
  4952.     TEXT2
  4953.           The middle line of description text in the requester. The
  4954.           text will be left justified.
  4955.  
  4956.     TEXT3
  4957.           The bottom line of description text in the requester. The
  4958.           text will be left justified.
  4959.  
  4960.     STRING
  4961.           The default string to be used in the requester.
  4962.  
  4963.     TITLE
  4964.           The text for the title bar of the requester.
  4965.  
  4966. Returns
  4967.     STRING
  4968.           The string in the requester.
  4969.  
  4970. Errors
  4971.      rc = 0 if the operation was successful.
  4972.  
  4973.      rc = 10 if the operation failed for any reason or the user
  4974.      cancelled requester, rc2 will contain a string describing the
  4975.      problem.
  4976.  
  4977. Example
  4978.      The following puts up a string requester, allowing the user to
  4979.      type in some text. The returned string is put in RESULT:
  4980.  
  4981.           REQUEST_STRING TEXT2 '"Enter some text"'
  4982.  
  4983.      The following puts up a string requester with a default string of
  4984.      "A raytraced image". The description text is displayed over 3
  4985.      lines:
  4986.  
  4987.           REQUEST_STRING TEXT1 '"Enter the"' TEXT2 '"desired name"',
  4988.              TEXT3 '"for the image"' STRING '"A raytraced image"'
  4989.  
  4990. Known bugs
  4991.      None.
  4992.  
  4993. RGB_TO_HSV
  4994. ----------
  4995.  
  4996. Command
  4997.      RGB_TO_HSV
  4998.  
  4999. Parameters template
  5000.      R/N/A, G/N/A, B/N/A
  5001.  
  5002. Return template
  5003.      H/N, S/N, V/N
  5004.  
  5005. Description
  5006.      Converts a RGB colour value into a HSV colour value.
  5007.  
  5008.      See Colour representations, for more details on RGB and HSV colour
  5009.      representations.
  5010.  
  5011. Parameters
  5012.     R/N/A
  5013.           The red value of the colour to convert. Valid values are 0 to
  5014.           255.
  5015.  
  5016.     G/N/A
  5017.           The green value of the colour to convert. Valid values are 0
  5018.           to 255.
  5019.  
  5020.     B/N/A
  5021.           The red of the colour to convert. Valid values are 0 to 255.
  5022.  
  5023. Returns
  5024.     H/N
  5025.           The hue componant value of the colour.
  5026.  
  5027.     S/N
  5028.           The saturation componant value of the colour.
  5029.  
  5030.     V/N
  5031.           The value componant of the colour.
  5032.  
  5033. Errors
  5034.      rc = 0 if the operation was successful.
  5035.  
  5036.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5037.      string describing the problem.
  5038.  
  5039. Example
  5040.      The following converts yellow from RGB to HSV representation,
  5041.      putting the result in RESULT:
  5042.  
  5043.           RGB_TO_HSV 255 255 0
  5044.  
  5045.      The following converts mid-grey from RGB to HSV representation,
  5046.      putting the result in the stem COLOUR.:
  5047.  
  5048.           RGB_TO_HSV 127 127 127 STEM COLOUR.
  5049.  
  5050. Known bugs
  5051.      None.
  5052.  
  5053. SAVE
  5054. ----
  5055.  
  5056. Command
  5057.      SAVE
  5058.  
  5059. Parameters template
  5060.      FILE/A, FORMAT, ARGS, FORCE/S
  5061.  
  5062. Return template
  5063.      None.
  5064.  
  5065. Description
  5066.      Saves the current image out to disk.
  5067.  
  5068.      See Save, for more details on saving images.
  5069.  
  5070. Parameters
  5071.     FILE/A
  5072.           The filename of the file to save.
  5073.  
  5074.     FORMAT
  5075.           The string containing the format of the file to save. By
  5076.           default, images are saved out as IFF-ILBM. See File formats,
  5077.           for more information on the available file formats.
  5078.  
  5079.     ARGS
  5080.           Any extra arguments that should be passed to the saver.
  5081.  
  5082.     FORCE/S
  5083.           By default the user will be warned if they are about to
  5084.           overwrite a file on the disk. Specifying this switch will
  5085.           stop such warnings.
  5086.  
  5087. Returns
  5088.      Nothing.
  5089.  
  5090. Errors
  5091.      rc = 0 if the operation was successful.
  5092.  
  5093.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5094.      string describing the problem.
  5095.  
  5096. Example
  5097.      The following saves the current image out as an IFF-ILBM:
  5098.  
  5099.           SAVE FILE "ram:Image.ilbm"
  5100.  
  5101.      The following saves the current image out as an IFF-ILBM, HAM6:
  5102.  
  5103.           SAVE FILE "ram:Image.ham6" ARGS '"SUBFORMAT HAM6"'
  5104.  
  5105.      The following saves out the current image as a JPEG, with a
  5106.      quality setting of 90:
  5107.  
  5108.           SAVE FILE "ram:Image.jpg" FORMAT "JPEG" ARGS '"QUALITY 90"'
  5109.  
  5110. Known bugs
  5111.      None.
  5112.  
  5113. SCALE
  5114. -----
  5115.  
  5116. Command
  5117.      SCALE
  5118.  
  5119. Parameters template
  5120.      X/N, Y/N, PERCENT/S, METHOD
  5121.  
  5122. Return template
  5123.      None.
  5124.  
  5125. Description
  5126.      Scales the current image either up or down using different methods
  5127.      optimised for speed or quality.
  5128.  
  5129.      The user need not specify both X and Y scales, so scaling an image
  5130.      to only alter its width or height is possible.
  5131.  
  5132.      See Scale, for more details on scaling images.
  5133.  
  5134. Parameters
  5135.     X/N
  5136.           Amount to scale the image in X (width) direction. By default
  5137.           this value is an absolute value in pixels, but by specifying
  5138.           the PERCENT option this value can be read as a percentage of
  5139.           the image's current width.
  5140.  
  5141.     Y/N
  5142.           Amount to scale the image in Y (height) direction. By default
  5143.           this value is an absolute value in pixels, but by specifying
  5144.           the PERCENT option this value can be read as a percentage of
  5145.           the image's current height.
  5146.  
  5147.     PERCENT
  5148.           Reads the X and Y values as percentages of the image's
  5149.           current width and height.
  5150.  
  5151.     METHOD
  5152.           A string describing the method of scaling to use. By default,
  5153.           FAST is used but AVERAGE can provide higher quality scales on
  5154.           24bit images at the cost of computing time.
  5155.  
  5156. Returns
  5157.      Nothing.
  5158.  
  5159. Errors
  5160.      rc = 0 if the operation was successful.
  5161.  
  5162.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5163.      string describing the problem.
  5164.  
  5165. Example
  5166.      The following scales the image to 800 by 600 pixels:
  5167.  
  5168.           SCALE 800 600
  5169.  
  5170.      The following doubles the size of the image:
  5171.  
  5172.           SCALE 200 200 PERCENT
  5173.  
  5174.      The following halves the height of the image, using colour average
  5175.      scaling:
  5176.  
  5177.           SCALE Y 50 PERCENT METHOD "AVERAGE"
  5178.  
  5179. Known bugs
  5180.      None.
  5181.  
  5182. SCREEN_BACK
  5183. -----------
  5184.  
  5185. Command
  5186.      SCREEN_BACK
  5187.  
  5188. Parameters template
  5189.      None.
  5190.  
  5191. Return template
  5192.      None.
  5193.  
  5194. Description
  5195.      Moves the ImageStudio screen behind all other open screens.
  5196.  
  5197. Parameters
  5198.      None.
  5199.  
  5200. Returns
  5201.      Nothing.
  5202.  
  5203. Errors
  5204.      rc = 0 if the operation was successful.
  5205.  
  5206.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5207.      string describing the problem.
  5208.  
  5209. Example
  5210.      The following moves ImageStudio's screen behind all other open
  5211.      screens:
  5212.  
  5213.           SCREEN_BACK
  5214.  
  5215. Known bugs
  5216.      None.
  5217.  
  5218. SCREEN_FRONT
  5219. ------------
  5220.  
  5221. Command
  5222.      SCREEN_FRONT
  5223.  
  5224. Parameters template
  5225.      None.
  5226.  
  5227. Return template
  5228.      None.
  5229.  
  5230. Description
  5231.      Moves the ImageStudio screen in front of all other open screens.
  5232.  
  5233. Parameters
  5234.      None.
  5235.  
  5236. Returns
  5237.      Nothing.
  5238.  
  5239. Errors
  5240.      rc = 0 if the operation was successful.
  5241.  
  5242.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5243.      string describing the problem.
  5244.  
  5245. Example
  5246.      The following moves ImageStudio's screen in front of all other
  5247.      open screens:
  5248.  
  5249.           SCREEN_FRONT
  5250.  
  5251. Known bugs
  5252.      None.
  5253.  
  5254. SELECT_ALL
  5255. ----------
  5256.  
  5257. Command
  5258.      SELECT_ALL
  5259.  
  5260. Parameters template
  5261.      None.
  5262.  
  5263. Return template
  5264.      None.
  5265.  
  5266. Description
  5267.      Sets the current region to the whole of the image being displayed
  5268.      in the preview window.
  5269.  
  5270.      Note that this doesn't always select the whole image; if the user
  5271.      has zoomed in on a region, only this region will be selected. If
  5272.      you want to be sure of selecting the whole image, issue a
  5273.      FULL_IMAGE command first.
  5274.  
  5275. Parameters
  5276.      None.
  5277.  
  5278. Returns
  5279.      Nothing.
  5280.  
  5281. Errors
  5282.      rc = 0 if the operation was successful.
  5283.  
  5284.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5285.      string describing the problem.
  5286.  
  5287. Example
  5288.      The following selects the whole of the currently viewed image:
  5289.  
  5290.           SELECT_ALL
  5291.  
  5292. Known bugs
  5293.      None.
  5294.  
  5295. UNDO
  5296. ----
  5297.  
  5298. Command
  5299.      UNDO
  5300.  
  5301. Parameters template
  5302.      None.
  5303.  
  5304. Return template
  5305.      None.
  5306.  
  5307. Description
  5308.      Un-does the last operation (see ARexx_REDO).
  5309.  
  5310. Parameters
  5311.      None.
  5312.  
  5313. Returns
  5314.      Nothing.
  5315.  
  5316. Errors
  5317.      rc = 0 if the operation was successful.
  5318.  
  5319.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5320.      string describing the problem.
  5321.  
  5322. Example
  5323.      The following un-does the last operation:
  5324.  
  5325.           UNDO
  5326.  
  5327. Known bugs
  5328.      None.
  5329.  
  5330. VIEW
  5331. ----
  5332.  
  5333. Command
  5334.      VIEW
  5335.  
  5336. Parameters template
  5337.      EXTERNAL/S
  5338.  
  5339. Return template
  5340.      None.
  5341.  
  5342. Description
  5343.      Views the current image using either the internal or external
  5344.      viewer.
  5345.  
  5346. Parameters
  5347.     EXTERNAL/S
  5348.           By default the image is shown using the internal viewer,
  5349.           however by including this parameter the external viewer as
  5350.           defined in the preferences (see Prefs) will be used.
  5351.  
  5352. Returns
  5353.      Nothing.
  5354.  
  5355. Errors
  5356.      rc = 0 if the operation was successful.
  5357.  
  5358.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5359.      string describing the problem.
  5360.  
  5361. Example
  5362.      The following views the current image using the internal viewer:
  5363.  
  5364.           VIEW
  5365.  
  5366.      The following views the current image using the external viewer:
  5367.  
  5368.           VIEW EXTERNAL
  5369.  
  5370. Known bugs
  5371.      None.
  5372.  
  5373. ZOOM_IN
  5374. -------
  5375.  
  5376. Command
  5377.      ZOOM_IN
  5378.  
  5379. Parameters template
  5380.      None.
  5381.  
  5382. Return template
  5383.      None.
  5384.  
  5385. Description
  5386.      Zooms in to the currently selected region in the preview window.
  5387.  
  5388.      A region has to be selected in order for this command to work.
  5389.  
  5390. Parameters
  5391.      None.
  5392.  
  5393. Returns
  5394.      Nothing.
  5395.  
  5396. Errors
  5397.      rc = 0 if the operation was successful.
  5398.  
  5399.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5400.      string describing the problem.
  5401.  
  5402. Example
  5403.      The following zooms in to the currently selected region:
  5404.  
  5405.           ZOOM_IN
  5406.  
  5407. Known bugs
  5408.      None.
  5409.  
  5410. ZOOM_OUT
  5411. --------
  5412.  
  5413. Command
  5414.      ZOOM_OUT
  5415.  
  5416. Parameters template
  5417.      None.
  5418.  
  5419. Return template
  5420.      None.
  5421.  
  5422. Description
  5423.      Zooms out by a factor of 3 times in the preview window.
  5424.  
  5425. Parameters
  5426.      None.
  5427.  
  5428. Returns
  5429.      Nothing.
  5430.  
  5431. Errors
  5432.      rc = 0 if the operation was successful.
  5433.  
  5434.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5435.      string describing the problem.
  5436.  
  5437. Example
  5438.      The following zooms out by a factor of 3 times in the preview
  5439.      window:
  5440.  
  5441.           ZOOM_OUT
  5442.  
  5443. Known bugs
  5444.      None.
  5445.  
  5446. Reference
  5447. *********
  5448.  
  5449.    This chapter gives detailed explanations about various aspects of
  5450. the program.
  5451.  
  5452. File formats
  5453. ============
  5454.  
  5455.    Select the file format you wish to investigate.
  5456.  
  5457. IFF-ILBM
  5458. --------
  5459.  
  5460. Name
  5461.      IFF-ILBM
  5462.  
  5463. Load types
  5464.      Colour mapped, 24 bit, HAM6, HAM8, Extra halfbright.
  5465.  
  5466.      Compressed and uncompressed.
  5467.  
  5468. Save types
  5469.      Colour mapped, 24 bit, HAM6, HAM8, Extra halfbright.
  5470.  
  5471.      Compressed and uncompressed.
  5472.  
  5473. Description
  5474.      IFF-ILBM is the Amiga's native bitmap graphic file format.
  5475.  
  5476.      IFF-ILBM files are usually compressed using simple run-length
  5477.      compression, but they can be uncompressed for simplicity and speed.
  5478.  
  5479.      IFF-ILBM is ImageStudio's default save format.
  5480.  
  5481.      ImageStudio will load and save AGA images on a non-AGA machine.
  5482.  
  5483.      The original image's screenmode will be preserved, unless changed
  5484.      by the user (see View_screenmode).
  5485.  
  5486. ARexx OPEN command ARGS
  5487.      None.
  5488.  
  5489. ARexx SAVE command ARGS
  5490.      SUBFORMAT, DITHER, NOCOMPRESSION/S
  5491.  
  5492.     SUBFORMAT
  5493.           By default the image is saved out as the buffer, i.e. either
  5494.           a 2 to 256 colour colour-mapped image or as 24bit. By
  5495.           specifying the SUBFORMAT parameter, the user can select HAM6,
  5496.           HAM8 or EHB as extra save formats. The image will be
  5497.           converted into the chosen subformat before saving. The image
  5498.           in ImageStudio remains unchanged.
  5499.  
  5500.     DITHER
  5501.           If the SUBFORMAT option is used, DITHER can be set to FS to
  5502.           give Floyd-Steinberg dithering of the HAM6, HAM8 or EHB image.
  5503.  
  5504.     NOCOMPRESSION/S
  5505.           By default the IFF-ILBM image is compressed using simple
  5506.           run-length compression. Use this switch to save uncompressed
  5507.           data.
  5508.  
  5509. Example
  5510.      The following saves out the current image in the same format as
  5511.      the buffer:
  5512.  
  5513.           SAVE FILE "Image.ilbm"
  5514.  
  5515.      The following saves out the image as HAM6:
  5516.  
  5517.           SAVE FILE "Image.ilbm" ARGS '"SUBFORMAT HAM6"'
  5518.  
  5519.      The following saves out the image as Floyd-Steinberg dithered
  5520.      Extra halfbright:
  5521.  
  5522.           SAVE FILE "Image.ilbm" ARGS '"SUBFORMAT EHB DITHER FS"'
  5523.  
  5524. BMP
  5525. ---
  5526.  
  5527. Name
  5528.      BMP
  5529.  
  5530. Load types ("Windows" and "OS/2" format).
  5531.      Colour mapped, 24 bit.
  5532.  
  5533. Save types
  5534.      Colour mapped, 24 bit ("Windows" format).
  5535.  
  5536. Description
  5537.      BMP files are commonly found on PCs running Microsoft Windows.
  5538.  
  5539.      BMP images are usually uncompressed and come in 2 flavours -
  5540.      `Windows' and `OS/2'.
  5541.  
  5542. ARexx OPEN command ARGS
  5543.      None.
  5544.  
  5545. ARexx SAVE command ARGS
  5546.      None.
  5547.  
  5548. Example
  5549.      None.
  5550.  
  5551. EPS
  5552. ---
  5553.  
  5554. Name
  5555.      EPS
  5556.  
  5557. Load types
  5558.      None.
  5559.  
  5560. Save types
  5561.      Greyscale, 24 bit.
  5562.  
  5563. Description
  5564.      EPS files are ASCII text files written in the PostScript language.
  5565.      They can be printed out directly to a PostScript printer or
  5566.      imported into word processing or DTP packages.
  5567.  
  5568.      EPS files are an ineffecient method of storing files, as they are
  5569.      uncompressed and are stored as ASCII text as opposed to binary
  5570.      data.  Unless colour is specifically required it is recommended
  5571.      that EPS files be saved in the greyscale format, as they are one
  5572.      third of the size of a colour EPS file.
  5573.  
  5574. ARexx OPEN command ARGS
  5575.      None.
  5576.  
  5577. ARexx SAVE command ARGS
  5578.      DPI/N, COLOUR
  5579.  
  5580.     DPI/N
  5581.           The resolution of the image in dots per inch. By default, 300
  5582.           dpi is used.
  5583.  
  5584.     COLOUR
  5585.           By default the output image is 256 greyscale. Specifying this
  5586.           option outputs the image as 24bit colour.
  5587.  
  5588. Example
  5589.      The following saves out a COLOUR EPS file:
  5590.  
  5591.           SAVE FILE "Image.eps" FORMAT "EPS" ARGS "COLOUR"
  5592.  
  5593.      The following saves out a 600 by 300 file at 150 dpi, given a
  5594.      printable size of 4inches by 2inch:
  5595.  
  5596.           SAVE FILE "Image.eps" FORMAT "EPS" ARGS '"DPI 150"'
  5597.  
  5598. GIF
  5599. ---
  5600.  
  5601. Name
  5602.      GIF
  5603.  
  5604. Load types
  5605.      Colour mapped ("GIF87a" and "GIF89a" formats).
  5606.  
  5607. Save types
  5608.      Colour mapped ("GIF87a" and "GIF89a" formats).
  5609.  
  5610. Description
  5611.      GIF is a common format for images upto 256 colours.
  5612.  
  5613.      GIF is a trademark of Compuserve Incorporated.
  5614.  
  5615.      GIF images are normally smaller than their equivalent IFF-ILBM
  5616.      counterparts due to GIF's LZW compression algorithm. GIF files are
  5617.      always compressed.
  5618.  
  5619.      GIF comes in 2 flavours - `GIF87a' and `GIF89a'. GIF87a is the
  5620.      most popular format; ImageStudio will load in both GIF87a and
  5621.      GIF89a.
  5622.  
  5623. ARexx OPEN command ARGS
  5624.      None.
  5625.  
  5626. ARexx SAVE command ARGS
  5627.      SUBFORMAT,INTERLACED/S,TRANSPARENCY/S,TRANSPCOLOUR/N
  5628.  
  5629.     SUBFORMAT
  5630.           By default GIF files are saved as the popular GIF87a format.
  5631.           By selecting a subformat of GIF89A, the user may include
  5632.           extra information in the file (e.g. transparent colour
  5633.           information). Specifying a subformat of GIF89a alone provides
  5634.           no extra functionality.
  5635.  
  5636.     INTERLACED/S
  5637.           By default the information in a GIF file is saved in a
  5638.           sequential fashion (e.g. line 1,line 2,line 3...). By
  5639.           specifying this switch the image in saved in a series of
  5640.           interlaced passes which can give faster redraws on some
  5641.           viewers (e.g. World Wide Web browsers). Both GIF87A and
  5642.           GIF89A support interlacing.
  5643.  
  5644.           Note: This interlace has nothing to do with the Amiga's
  5645.           interlaced screens.
  5646.  
  5647.     TRANSPARENCY/S
  5648.           By specifying this switch, one colour out of the image's
  5649.           pallete can be made `transparent', causing the background
  5650.           colour to show through. This again can be useful with World
  5651.           Wide Web browsers. By default, the transparent colour is
  5652.           colour 0, but this can be changed (see below). This switch is
  5653.           only used in the GIF89A subformat.
  5654.  
  5655.     TRANSPCOLOUR/N
  5656.           This is the palette entry number that is made transparent if
  5657.           the TRANSPARENT switch is used. This value is only used in
  5658.           the GIF89A subformat.
  5659.  
  5660. Example
  5661.      The following saves out a standard GIF87a format file:
  5662.  
  5663.           SAVE FILE "Image.gif" FORMAT "GIF"
  5664.  
  5665.      The following saves out a GIF87a file with interlace:
  5666.  
  5667.           SAVE FILE "Image.gif" FORMAT "GIF" ARGS "INTERLACED"
  5668.  
  5669.      The following saves out a GIF89a file with a transparent colour of
  5670.      10:
  5671.  
  5672.           SAVE FILE "Image.gif" FORMAT "GIF",
  5673.              ARGS "SUBFORMAT GIF89A TRANSPARENCY TRANSPCOLOUR 10"
  5674.  
  5675. JPEG
  5676. ----
  5677.  
  5678. Name
  5679.      JPEG
  5680.  
  5681. Load types
  5682.      Greyscale, 24 bit ("JFIF" format).
  5683.  
  5684. Save types
  5685.      Greyscale, 24 bit ("JFIF" format).
  5686.  
  5687. Description
  5688.      JPEG allows the storage of 24-bit images as very small files due
  5689.      to its lossy compression algorithm. Whereas the compression
  5690.      algorithms used by other file formats loose none of the image
  5691.      information, JPEG trades off a little loss in image quality for a
  5692.      high degree of compression.
  5693.  
  5694.      As JPEG is a relatively new format, an exact format of the JPEG
  5695.      file was only agreed on recently. This format is called `JFIF' and
  5696.      these are the most commonly used JPEG format files - and the
  5697.      format that ImageStudio loads and saves. It is highly unlikely
  5698.      that any old JPEG files are still being circulated, but should you
  5699.      find one it is uncertain whether ImageStudio would accept it.
  5700.  
  5701.      A high degree of compatibility is obtained with our JPEG loader /
  5702.      saver routines, as they are based in part on the work of the
  5703.      Independant JPEG group's routines.
  5704.  
  5705. ARexx OPEN command ARGS
  5706.      None.
  5707.  
  5708. ARexx SAVE command ARGS
  5709.      QUALITY/N, GREYSCALE/S
  5710.  
  5711.     QUALITY/N
  5712.           The quality of the jpeg output file. A quality value of 75 is
  5713.           given by default, resulting in an acceptable degredation of
  5714.           image quality. For higher degree of compression choose a
  5715.           lower value(1). For a higher degree of quality, choose a
  5716.           higher value; values of 85 to 90 result in an almost
  5717.           unnoticable loss of quality.
  5718.  
  5719.     GREYSCALE/S
  5720.           By default the JPEG output is 24bit colour. By using this
  5721.           option, the image can also be saved in a greyscale format,
  5722.           where the colour information is lost but the output file size
  5723.           is correspondingly smaller.
  5724.  
  5725. Example
  5726.      The following saves out the current image as JPEG:
  5727.  
  5728.           SAVE FILE "Image.jpg" FORMAT "JPEG"
  5729.  
  5730.      The following saves out the current image as JPEG, with a high
  5731.      degree of compression:
  5732.  
  5733.           SAVE FILE "Image.jpg" FORMAT "JPEG" ARGS '"QUALITY 50"'
  5734.  
  5735.      The following saves out the current image as greyscale JPEG:
  5736.  
  5737.           SAVE FILE "Image.jpg" FORMAT "JPEG" ARGS '"GREYSCALE"'
  5738.  
  5739.    ---------- Footnotes ----------
  5740.  
  5741.    (1)  Values less than 25 may cause problems with some JPEG readers
  5742.  
  5743. PCX
  5744. ---
  5745.  
  5746. Name
  5747.      PCX
  5748.  
  5749. Load types
  5750.      Colour mapped (2 to 16, 256 colours), 24 bit.
  5751.  
  5752. Save types
  5753.      Colour mapped (256 colours), 24 bit.
  5754.  
  5755. Description
  5756.      PCX files are commonly found on PCs running Microsoft Windows.
  5757.  
  5758.      PCX files are always compressed using a very inefficient
  5759.      run-length encoding algorithm. This algorithm can, in some cases,
  5760.      lead to an increase in file size over an uncompressed image. PCX
  5761.      is included in ImageStudio for compatibility with other platforms,
  5762.      but we do not recommend the general storing of images in this
  5763.      format.
  5764.  
  5765.      ImageStudio only saves 256 colour PCX files as these are the most
  5766.      compatible accross programs. The specification is a little vague
  5767.      as to how to handle 2 to 16 colour PCX files.
  5768.  
  5769. ARexx OPEN command ARGS
  5770.      None.
  5771.  
  5772. ARexx SAVE command ARGS
  5773.      None.
  5774.  
  5775. Example
  5776.      None.
  5777.  
  5778. Targa
  5779. -----
  5780.  
  5781. Name
  5782.      TARGA
  5783.  
  5784. Load types
  5785.      Colour mapped (2 and 256 colours), 15, 16, 24 and 32bits.
  5786.  
  5787.      Compressed and uncompressed.
  5788.  
  5789. Save types
  5790.      Colour mapped (256 colours), 24 bit.
  5791.  
  5792.      Uncompressed.
  5793.  
  5794. Description
  5795.      Targa is usually used for storing 24-bit images, although it can
  5796.      also handle colour-mapped images as well. The data is usually
  5797.      stored as simple uncompressed data, however it can also be
  5798.      run-length encoded to allow compression.
  5799.  
  5800. ARexx OPEN command ARGS
  5801.      None.
  5802.  
  5803. ARexx SAVE command ARGS
  5804.      None.
  5805.  
  5806. Example
  5807.      None.
  5808.  
  5809. Effects
  5810. =======
  5811.  
  5812.    Select the effect you wish to investigate.
  5813.  
  5814. Dynamic range
  5815. -------------
  5816.  
  5817. Works with
  5818.         - Full colour-mapped images.
  5819.  
  5820.         - Full and regions of 24bit images.
  5821.  
  5822. Description
  5823.      Expands the dynamic range of the image to the maximum possible,
  5824.      without altering the colour balance. This is useful for
  5825.      automatically increasing the contrast of poor contrast images,
  5826.      e.g. the output from a scanner.
  5827.  
  5828. ARexx EFFECT command ARGS
  5829.      None.
  5830.  
  5831. Flip X
  5832. ------
  5833.  
  5834. Works with
  5835.         - Full and regions of colour-mapped images.
  5836.  
  5837.         - Full and regions of 24bit images.
  5838.  
  5839. Description
  5840.      Flips the whole image or selected region horizontally.
  5841.  
  5842. ARexx EFFECT command ARGS
  5843.      None.
  5844.  
  5845. Flip Y
  5846. ------
  5847.  
  5848. Works with
  5849.         - Full and regions of colour-mapped images.
  5850.  
  5851.         - Full and regions of 24bit images.
  5852.  
  5853. Description
  5854.      Flips the whole image or selected region vertically.
  5855.  
  5856. ARexx EFFECT command ARGS
  5857.      None.
  5858.  
  5859. Greyscale
  5860. ---------
  5861.  
  5862. Works with
  5863.         - Full colour-mapped images.
  5864.  
  5865.         - Full and regions of 24bit images.
  5866.  
  5867. Description
  5868.      Reduces a colour image to a greyscale image. The actual greyscale
  5869.      values (or more correctly, luminosity) value is calculated as 30%
  5870.      of the red component + 59% of the green component + 11% of the
  5871.      blue component.
  5872.  
  5873. ARexx EFFECT command ARGS
  5874.      None.
  5875.  
  5876. Highlight
  5877. ---------
  5878.  
  5879. Works with
  5880.         - Full colour-mapped images.
  5881.  
  5882.         - Full and regions of 24bit images.
  5883.  
  5884. Description
  5885.      Turns all colours with greater than the given luminance value to
  5886.      white.
  5887.  
  5888. ARexx EFFECT command ARGS
  5889.      LUMINANCE/N/A
  5890.  
  5891.     LUMINANCE/N/A
  5892.           The luminance value above which pixels should be turned white.
  5893.  
  5894. Negative
  5895. --------
  5896.  
  5897. Works with
  5898.         - Full colour-mapped images.
  5899.  
  5900.         - Full and regions of 24bit images.
  5901.  
  5902. Description
  5903.      Negates the colour values of the image.
  5904.  
  5905. ARexx EFFECT command ARGS
  5906.      None.
  5907.  
  5908. Random
  5909. ------
  5910.  
  5911. Works with
  5912.         - Full and regions of 24bit images.
  5913.  
  5914. Description
  5915.      Adds random noise to the image. The greater the random value, the
  5916.      greater the noise.
  5917.  
  5918. ARexx EFFECT command ARGS
  5919.      RANDOMNESS/N/A
  5920.  
  5921.     RANDOMNESS/N/A
  5922.           The amount of randomness to apply to the image. Values range
  5923.           between 1 and 255.
  5924.  
  5925. Remove isolated pixels
  5926. ----------------------
  5927.  
  5928. Works with
  5929.         - Full and regions of colour-mapped images.
  5930.  
  5931.         - Full and regions of 24bit images.
  5932.  
  5933. Description
  5934.      Removes any single pixels that are a different colour to their
  5935.      neighbours. Useful in removing some of the noise in black and
  5936.      white scans.
  5937.  
  5938. ARexx EFFECT command ARGS
  5939.      None.
  5940.  
  5941. Roll X
  5942. ------
  5943.  
  5944. Works with
  5945.         - Full and regions of colour-mapped images.
  5946.  
  5947.         - Full and regions of 24bit images.
  5948.  
  5949. Description
  5950.      Rolls the whole image or selected region horizontally, wrapping
  5951.      the image around.
  5952.  
  5953. ARexx EFFECT command ARGS
  5954.      DISTANCE/N/A
  5955.  
  5956.     DISTANCE/N/A
  5957.           The distance, in pixels, to move the image. A positive value
  5958.           moves the image to the right, a negative value moves the
  5959.           image to the left.
  5960.  
  5961. Roll Y
  5962. ------
  5963.  
  5964. Works with
  5965.         - Full and regions of colour-mapped images.
  5966.  
  5967.         - Full and regions of 24bit images.
  5968.  
  5969. Description
  5970.      Rolls the whole image or selected region vertically, wrapping the
  5971.      image around.
  5972.  
  5973. ARexx EFFECT command ARGS
  5974.      DISTANCE/N/A
  5975.  
  5976.     DISTANCE/N/A
  5977.           The distance, in pixels, to move the image. A positive value
  5978.           moves the image down, a negative value moves the image up.
  5979.  
  5980. Pixelise
  5981. --------
  5982.  
  5983. Works with
  5984.         - Full and regions of colour-mapped images.
  5985.  
  5986.         - Full and regions of 24bit images.
  5987.  
  5988. Description
  5989.      Replaces all pixels in the whole image or selected region with
  5990.      larger pixels.
  5991.  
  5992. ARexx EFFECT command ARGS
  5993.      PIXELSIZE/N/A
  5994.  
  5995.     PIXELSIZE/N/A
  5996.           The size, in pixels, of the larger pixel blocks.
  5997.  
  5998. Shadow
  5999. ------
  6000.  
  6001. Works with
  6002.         - Full colour-mapped images.
  6003.  
  6004.         - Full and regions of 24bit images.
  6005.  
  6006. Description
  6007.      Turns all colours with less than the given luminance value to
  6008.      black.
  6009.  
  6010. ARexx EFFECT command ARGS
  6011.      LUMINANCE/N/A
  6012.  
  6013.     LUMINANCE/N/A
  6014.           The luminance value below which pixels should be turned black.
  6015.  
  6016. Image types
  6017. ===========
  6018.  
  6019.    ImageStudio works internally with either "colour-mapped" or "24-bit"
  6020. images. A description of the workings of both methods follows.
  6021.  
  6022. Colour-mapped images
  6023.      Colour-mapped (palette based) images are used by the standard
  6024.      (non-HAM) screenmodes on the Amiga. A set of colours (palette) is
  6025.      chosen for the image and every pixel in the image can have one of
  6026.      these colours.
  6027.  
  6028.      Colour-mapped images have the advantage of being a fairly compact
  6029.      way of storing image information and with a large palette (greater
  6030.      than 64 colours) high quality images can be produced. They have
  6031.      the disadvantage that the colours in the image are limited to the
  6032.      colours in the palette - with a small palette it becomes a complex
  6033.      task choosing the correct colours to best portray the image.
  6034.  
  6035. 24-bit images
  6036.      24-bit images allow every pixel in the image to be an individual
  6037.      colour - this is essential for high quality images.
  6038.  
  6039.      24-bit images have the disadvantage that they are typically at
  6040.      least 3-times larger than colour-mapped images and require
  6041.      sophisticated display hardware to show them in their true glory.
  6042.  
  6043. When should I use each type of image?
  6044.      In general, try to leave the image in the format in which it came.
  6045.      If, for example, you load in a colour-mapped image try and perform
  6046.      all your operations directly to the colour-mapped image; only
  6047.      change to a 24-bit image if absolutely necessary (e.g. to apply a
  6048.      convolution filter).
  6049.  
  6050. Colour representations
  6051. ======================
  6052.  
  6053.        ImageStudio works internally with the R,G,B format of colour
  6054. representation. This is the most common method of storing colour
  6055. information on computers, as it represents the amounts of intensities
  6056. applied to the 3 colour guns of a computer monitor.
  6057.  
  6058.        H,S,V stands for Hue, Saturation and Value. The hue is the basic
  6059. colour (e.g. red, yellow, green, purple etc...), saturation is the
  6060. amount of that colour (e.g. weak red, strong red etc...) and the value
  6061. is the brightness of the colour.
  6062.  
  6063. Tooltypes
  6064. =========
  6065.  
  6066.    ImageStudio supports the configuring of the program via tooltypes
  6067. from either the Workbench or CLI.
  6068.  
  6069.    It is recommended that the user who starts the program from
  6070. Workbench uses the "Prefs" requester of ImageStudio to configure it
  6071. (see Prefs), whereas the CLI user should be aware of the tooltype
  6072. options.
  6073.  
  6074.    Boolean tooltypes can have values `ON' or `YES' for a positive
  6075. value, `OFF' or `NO' for a negative values. Numeric tooltypes are
  6076. positive and negative integers; floating point values are not allowed.
  6077.  
  6078. BALANCE
  6079. -------
  6080.  
  6081. Name
  6082.      BALANCE
  6083.  
  6084. Type
  6085.      Boolean
  6086.  
  6087. Description
  6088.      Determines whether the balance floating palette should be open at
  6089.      startup.
  6090.  
  6091. BALANCELEFT
  6092. -----------
  6093.  
  6094. Name
  6095.      BALANCELEFT
  6096.  
  6097. Type
  6098.      Numeric
  6099.  
  6100. Description
  6101.      The top position to open the balance floating palette.
  6102.  
  6103. BALANCETOP
  6104. ----------
  6105.  
  6106. Name
  6107.      BALANCETOP
  6108.  
  6109. Type
  6110.      Numeric
  6111.  
  6112. Description
  6113.      The left position to open the balance floating palette.
  6114.  
  6115. CONVOLVE
  6116. --------
  6117.  
  6118. Name
  6119.      CONVOLVE
  6120.  
  6121. Type
  6122.      Boolean
  6123.  
  6124. Description
  6125.      Determines whether the convolve floating palette should be open at
  6126.      startup.
  6127.  
  6128. CONVOLVELEFT
  6129. ------------
  6130.  
  6131. Name
  6132.      CONVOLVELEFT
  6133.  
  6134. Type
  6135.      Numeric
  6136.  
  6137. Description
  6138.      The top position to open the convolve floating palette.
  6139.  
  6140. CONVOLVETOP
  6141. -----------
  6142.  
  6143. Name
  6144.      CONVOLVETOP
  6145.  
  6146. Type
  6147.      Numeric
  6148.  
  6149. Description
  6150.      The left position to open the convolve floating palette.
  6151.  
  6152. EFFECT
  6153. ------
  6154.  
  6155. Name
  6156.      EFFECT
  6157.  
  6158. Type
  6159.      Boolean
  6160.  
  6161. Description
  6162.      Determines whether the effect floating palette should be open at
  6163.      startup.
  6164.  
  6165. EFFECTLEFT
  6166. ----------
  6167.  
  6168. Name
  6169.      EFFECTLEFT
  6170.  
  6171. Type
  6172.      Numeric
  6173.  
  6174. Description
  6175.      The top position to open the effect floating palette.
  6176.  
  6177. EFFECTTOP
  6178. ---------
  6179.  
  6180. Name
  6181.      EFFECTTOP
  6182.  
  6183. Type
  6184.      Numeric
  6185.  
  6186. Description
  6187.      The left position to open the effect floating palette.
  6188.  
  6189. SCRIPTS
  6190. -------
  6191.  
  6192. Name
  6193.      SCRIPTS
  6194.  
  6195. Type
  6196.      Boolean
  6197.  
  6198. Description
  6199.      Determines whether the scripts floating palette should be open at
  6200.      startup.
  6201.  
  6202. SCRIPTSLEFT
  6203. -----------
  6204.  
  6205. Name
  6206.      SCRIPTSLEFT
  6207.  
  6208. Type
  6209.      Numeric
  6210.  
  6211. Description
  6212.      The top position to open the scripts floating palette.
  6213.  
  6214. SCRIPTSTOP
  6215. ----------
  6216.  
  6217. Name
  6218.      SCRIPTSTOP
  6219.  
  6220. Type
  6221.      Numeric
  6222.  
  6223. Description
  6224.      The left position to open the scripts floating palette.
  6225.  
  6226. PREVIEWLEFT
  6227. -----------
  6228.  
  6229. Name
  6230.      PREVIEWLEFT
  6231.  
  6232. Type
  6233.      Numeric
  6234.  
  6235. Description
  6236.      The top position to open the preview window.
  6237.  
  6238. PREVIEWTOP
  6239. ----------
  6240.  
  6241. Name
  6242.      PREVIEWTOP
  6243.  
  6244. Type
  6245.      Numeric
  6246.  
  6247. Description
  6248.      The left position to open the preview window.
  6249.  
  6250. PREVIEWWIDTH
  6251. ------------
  6252.  
  6253. Name
  6254.      PREVIEWWIDTH
  6255.  
  6256. Type
  6257.      Numeric
  6258.  
  6259. Description
  6260.      The width to open the preview window.
  6261.  
  6262. PREVIEWHEIGHT
  6263. -------------
  6264.  
  6265. Name
  6266.      PREVIEWHEIGHT
  6267.  
  6268. Type
  6269.      Numeric
  6270.  
  6271. Description
  6272.      The height to open the preview window.
  6273.  
  6274. FONTNAME
  6275. --------
  6276.  
  6277. Name
  6278.      FONTNAME
  6279.  
  6280. Type
  6281.      String
  6282.  
  6283. Description
  6284.      The name of the font to use to layout the ImageStudio windows and
  6285.      menus.
  6286.  
  6287.      When specifying the font name, the font name must be have a
  6288.      `.font' appended to its name. For example, to set the default to
  6289.      be helvetica, the tooltype should be specified as:
  6290.  
  6291.           FONTNAME=helvetica.font
  6292.  
  6293.      The fontname is not case sensitive.
  6294.  
  6295. FONTSIZE
  6296. --------
  6297.  
  6298. Name
  6299.      FONTSIZE
  6300.  
  6301. Type
  6302.      Numeric
  6303.  
  6304. Description
  6305.      The size of the font to use to layout the ImageStudio windows and
  6306.      menus.
  6307.  
  6308.      If a large font is specified which would cause some of the windows
  6309.      to become too large to fit on the ImageStudio screen, the font
  6310.      will default to topaz 8.
  6311.  
  6312. SCREENMODEID
  6313. ------------
  6314.  
  6315. Name
  6316.      SCREENMODEID
  6317.  
  6318. Type
  6319.      Numeric
  6320.  
  6321. Description
  6322.      The screenmode to open the ImageStudio screen. This value is the
  6323.      value returned by the REQUEST_SCREENMODE ARexx command in the
  6324.      MODEID value (see ARexx_REQUEST_SCREENMODE).
  6325.  
  6326. SCREENOVERSCAN
  6327. --------------
  6328.  
  6329. Name
  6330.      SCREENOVERSCAN
  6331.  
  6332. Type
  6333.      Numeric
  6334.  
  6335. Description
  6336.      The overscan to use with the ImageStudio screen. Valid values are
  6337.      1 for text overscan, 2 for graphics size, 3 for extreme and 4 for
  6338.      maximum.
  6339.  
  6340.      Note, this tooltype has changed from v1.x.x, where it was a string
  6341.      type.
  6342.  
  6343. SCREENDEPTH
  6344. -----------
  6345.  
  6346. Name
  6347.      SCREENDEPTH
  6348.  
  6349. Type
  6350.      Numeric
  6351.  
  6352. Description
  6353.      The depth of the ImageStudio screen. Valid values are 1 to 8.
  6354.  
  6355. SCREENWIDTH
  6356. -----------
  6357.  
  6358. Name
  6359.      SCREENWIDTH
  6360.  
  6361. Type
  6362.      Numeric
  6363.  
  6364. Description
  6365.      The width of the ImageStudio screen. Valid values are greater than
  6366.      640.
  6367.  
  6368. SCREENHEIGHT
  6369. ------------
  6370.  
  6371. Name
  6372.      SCREENHEIGHT
  6373.  
  6374. Type
  6375.      Numeric
  6376.  
  6377. Description
  6378.      The height of the ImageStudio screen. Valid values are greater
  6379.      than 200.
  6380.  
  6381. BLANKSCRIPT
  6382. -----------
  6383.  
  6384. Name
  6385.      BLANKSCRIPT
  6386.  
  6387. Type
  6388.      String
  6389.  
  6390. Description
  6391.      The filename of the Blank ARexx script to use a template when a
  6392.      new script is created in the `Scripts' floating palette.
  6393.  
  6394. CONVOLVEDIR
  6395. -----------
  6396.  
  6397. Name
  6398.      CONVOLVEDIR
  6399.  
  6400. Type
  6401.      String
  6402.  
  6403. Description
  6404.      The directory to scan on startup for convolution filters to
  6405.      include in the `Convolves' floating palette.
  6406.  
  6407. EXTERNALVIEWER
  6408. --------------
  6409.  
  6410. Name
  6411.      EXTERNALVIEWER
  6412.  
  6413. Type
  6414.      String
  6415.  
  6416. Description
  6417.      The external program to run to view the image. The string is in
  6418.      the format that would be typed from the command line, with a `%s'
  6419.      where the image filename should be placed.
  6420.  
  6421.      It is recommended that the string be prefixed with a "run" to
  6422.      allow the external viewer to run in the background, otherwise
  6423.      ImageStudio has to wait for the program to finish. For example:
  6424.  
  6425.           sys:Utilities/VT <NIL: >NIL: %s
  6426.  
  6427.      would leave ImageStudio waiting until ViewTek had finished, whereas
  6428.  
  6429.           run sys:Utilities/VT <NIL: >NIL: %s
  6430.  
  6431.      would run ViewTek in the background. The "<NIL:" and ">NIL:" are
  6432.      used to stop error messages being printed to the console.
  6433.  
  6434. HELPFILE
  6435. --------
  6436.  
  6437. Name
  6438.      HELPFILE
  6439.  
  6440. Type
  6441.      String
  6442.  
  6443. Description
  6444.      The full filename of the AmigaGuide help file to provide online
  6445.      help.
  6446.  
  6447.      Note, the *full* filename must be provided, a filename taken from
  6448.      the current directory will not work. For example:
  6449.  
  6450.           Docs/ImageStudio.guide
  6451.  
  6452.      will not work, whereas
  6453.  
  6454.           Work:Graphics/ImageStudio/Docs/ImageStudio.guide
  6455.  
  6456.      will work fine.
  6457.  
  6458.      If you do wish to specify the current directory, you may use the
  6459.      `PROGDIR:' volume assignment. PROGDIR: is set to be the current
  6460.      directory of the current program, each program having its own
  6461.      PROGDIR: value that can only be used within the program.
  6462.      Therefore, the above AmigaGuide helpfile can be refered to as:
  6463.  
  6464.           PROGDIR:Docs/ImageStudio.guide
  6465.  
  6466.      See Tooltype_HELP, for more information on AmigaGuide help.
  6467.  
  6468. IMAGEDIR
  6469. --------
  6470.  
  6471. Name
  6472.      IMAGEDIR
  6473.  
  6474. Type
  6475.      String
  6476.  
  6477. Description
  6478.      The default directory to use for images when ImageStudio is loaded.
  6479.  
  6480. KEYFILE
  6481. -------
  6482.  
  6483. Name
  6484.      KEYFILE
  6485.  
  6486. Type
  6487.      String
  6488.  
  6489. Description
  6490.      The filename of the keyfile to use to unlock ImageStudio to use
  6491.      full sized images. Keyfiles are obtaining by registering (see How
  6492.      to register).
  6493.  
  6494. MODULEDIR
  6495. ---------
  6496.  
  6497. Name
  6498.      MODULEDIR
  6499.  
  6500. Type
  6501.      String
  6502.  
  6503. Description
  6504.      The default directory to use for external modules.
  6505.  
  6506.      Inside the module directory are other directories containing
  6507.      modules specific to file loading/saving, viewers, effects etc...
  6508.      These directories are scanned when ImageStudio starts up.
  6509.  
  6510. PALETTEDIR
  6511. ----------
  6512.  
  6513. Name
  6514.      PALETTEDIR
  6515.  
  6516. Type
  6517.      String
  6518.  
  6519. Description
  6520.      The default directory to use for palettes when ImageStudio is
  6521.      loaded.
  6522.  
  6523.      See Palette, for more details on loading palettes into ImageStudio.
  6524.  
  6525. PORTNAME
  6526. --------
  6527.  
  6528. Name
  6529.      PORTNAME
  6530.  
  6531. Type
  6532.      String
  6533.  
  6534. Description
  6535.      The name of the ARexx portname used by the program.
  6536.  
  6537.      If a portname by that name already exists, the name is incremented
  6538.      until a free portname is found. For example, if `IMAGESTUDIO' was
  6539.      already in use, the following sequence of names would be tried:
  6540.      `IMAGESTUDIO.1', `IMAGESTUDIO.2', `IMAGESTUDIO.3' ...
  6541.  
  6542.      When choosing an ARexx portname, try to keep it fairly short.
  6543.  
  6544. REXXOUTPUT
  6545. ----------
  6546.  
  6547. Name
  6548.      REXXOUTPUT
  6549.  
  6550. Type
  6551.      String
  6552.  
  6553. Description
  6554.      The name of the filename to use for ARexx scripts' output. See
  6555.      Basic ARexx, for more information on this file.
  6556.  
  6557. SCREENNAME
  6558. ----------
  6559.  
  6560. Name
  6561.      SCREENNAME
  6562.  
  6563. Type
  6564.      String
  6565.  
  6566. Description
  6567.      The name of ImageStudio's public screen. This name must be unique,
  6568.      otherwise the screen won't open.
  6569.  
  6570. SCRIPTSDIR
  6571. ----------
  6572.  
  6573. Name
  6574.      SCRIPTSDIR
  6575.  
  6576. Type
  6577.      String
  6578.  
  6579. Description
  6580.      The default directory that will be scanned for ARexx script files
  6581.      to put in the `Scripts' floating palette list. Any file with the
  6582.      chosen ARexx script extension (see Tooltype_SCRIPTSEXT) will be
  6583.      placed in the list.
  6584.  
  6585. SCRIPTSEXT
  6586. ----------
  6587.  
  6588. Name
  6589.      SCRIPTSEXT
  6590.  
  6591. Type
  6592.      String
  6593.  
  6594. Description
  6595.      The default filename extension for the ImageStudio ARexx scripts.
  6596.      Only scripts with this extension will be added to the list in the
  6597.      `Scripts' floating palette.
  6598.  
  6599. TEMPDIR
  6600. -------
  6601.  
  6602. Name
  6603.      TEMPDIR
  6604.  
  6605. Type
  6606.      String
  6607.  
  6608. Description
  6609.      The directory in which ImageStudio can put its virtual memory
  6610.      temporary swap files. This should be some location on your hard
  6611.      disk, as the data will be accessed a lot during some operations.
  6612.      If you have lots of RAM, the temporary directory can be placed in
  6613.      the ram disk for maximum speed.
  6614.  
  6615. TEXTEDITOR
  6616. ----------
  6617.  
  6618. Name
  6619.      TEXTEDITOR
  6620.  
  6621. Type
  6622.      String
  6623.  
  6624. Description
  6625.      The text editor used to edit ARexx scripts from the `Scripts'
  6626.      floating palette. The string is in the format that would be typed
  6627.      from the command line, with a `%s' where the image filename should
  6628.      be placed.
  6629.  
  6630.      It is recommended that the string be prefixed with a "run" to
  6631.      allow the text editor to run in the background, otherwise
  6632.      ImageStudio has to wait for the program to finish. For example:
  6633.  
  6634.           sys:Tools/Memacs <NIL: >NIL: %s
  6635.  
  6636.      would leave ImageStudio waiting until Microemacs had finished,
  6637.      whereas
  6638.  
  6639.           run sys:Tools/Memacs <NIL: >NIL: %s
  6640.  
  6641.      would run Microemacs in the background. The "<NIL:" and ">NIL:"
  6642.      are used to stop error messages being printed to the console.
  6643.  
  6644. CLIPUNIT
  6645. --------
  6646.  
  6647. Name
  6648.      CLIPUNIT
  6649.  
  6650. Type
  6651.      Numeric
  6652.  
  6653. Description
  6654.      The system clipboard used to copy (see Copy) and paste (see Paste)
  6655.      by the program. There is very little need to change this from the
  6656.      default value of 0.
  6657.  
  6658. PAGESIZE
  6659. --------
  6660.  
  6661. Name
  6662.      PAGESIZE
  6663.  
  6664. Type
  6665.      Numeric
  6666.  
  6667. Description
  6668.      The size, in K, of the virtual memory pages. The larger this
  6669.      number, the more real RAM is used but the less frequent the
  6670.      accesses to the swap files (see Tooltype_TEMPDIR).
  6671.  
  6672.      At most, two of these pages will be allocated in RAM at any one
  6673.      time.
  6674.  
  6675. UNDOBUFFERS
  6676. -----------
  6677.  
  6678. Name
  6679.      UNDOBUFFERS
  6680.  
  6681. Type
  6682.      Numeric
  6683.  
  6684. Description
  6685.      The number of levels of undo / redo available. The larger this
  6686.      number, the more disk space is needed for the virtual memory swap
  6687.      files (this doesn't change the amount of RAM required).
  6688.  
  6689. APPICON
  6690. -------
  6691.  
  6692. Name
  6693.      APPICON
  6694.  
  6695. Type
  6696.      Boolean
  6697.  
  6698. Description
  6699.      Turns the AppIcon on the Workbench on or off. By having an
  6700.      AppIcon, users may double-click on the icon to bring the
  6701.      ImageStudio screen to the front or drop image files on it to load
  6702.      them.
  6703.  
  6704. HELP
  6705. ----
  6706.  
  6707. Name
  6708.      HELP
  6709.  
  6710. Type
  6711.      Boolean
  6712.  
  6713. Description
  6714.      Turns AmigaGuide help on or off. Turning on AmigaGuide help uses
  6715.      more RAM as some pages are kept in memory.
  6716.  
  6717. MODULECACHE
  6718. -----------
  6719.  
  6720. Name
  6721.      MODULECACHE
  6722.  
  6723. Type
  6724.      Boolean
  6725.  
  6726. Description
  6727.      Allows modules to be kept resident in RAM to speed up access times.
  6728.  
  6729.      Turning this option off forces all modules to be flushed from
  6730.      memory after they are used; this results in the program requiring
  6731.      very little memory but involves reading the modules off disk
  6732.      everytime they are required.
  6733.  
  6734.      Module caching on will leave the modules resident in RAM, making
  6735.      for faster access. If the Amiga's operating system starts to get
  6736.      really low on RAM, the modules are still flushed.
  6737.  
  6738.      All modules are flushed from memory when the program quits.
  6739.  
  6740. PREVIEWDITHER
  6741. -------------
  6742.  
  6743. Name
  6744.      PREVIEWDITHER
  6745.  
  6746. Type
  6747.      Boolean
  6748.  
  6749. Description
  6750.      Turns ordered dithering on or off in the preview window. Turning
  6751.      preview dithering off uses slightly less memory and is slightly
  6752.      faster than the ordered dither.
  6753.  
  6754. PREVIEWREDRAW
  6755. -------------
  6756.  
  6757. Name
  6758.      PREVIEWREDRAW
  6759.  
  6760. Type
  6761.      Boolean
  6762.  
  6763. Description
  6764.      Turns the redrawing of the image on or off in the preview window.
  6765.      Normally this is kept on, but ARexx scripts may wish to turn this
  6766.      off (see ARexx_PREF_SET) to speed up some processing.
  6767.  
  6768. SPLASHWINDOW
  6769. ------------
  6770.  
  6771. Name
  6772.      SPLASHWINDOW
  6773.  
  6774. Type
  6775.      Boolean
  6776.  
  6777. Description
  6778.      Turns on or off the opening of the `About' window when the program
  6779.      starts up.
  6780.  
  6781. SCREENFRONT
  6782. -----------
  6783.  
  6784. Name
  6785.      SCREENFRONT
  6786.  
  6787. Type
  6788.      Boolean
  6789.  
  6790. Description
  6791.      ImageStudio starts up by keeping its screen behind all others. By
  6792.      turning this tooltype on, the screen is brought to the front after
  6793.      the startup initialisations have taken place.
  6794.  
  6795. Known bugs
  6796. ==========
  6797.  
  6798.    Known bugs:
  6799.  
  6800.    * Calling AmigaDos commands from an ARexx script running from the
  6801.      `Scripts' floating palette sometimes causes the machine to freeze
  6802.      if the command fails and tries to print some text. To fix this,
  6803.      pipe the input and output of all commands to `NIL:' (see Common
  6804.      ARexx problems).
  6805.  
  6806.    * At the moment it is possible to run more than one ARexx script
  6807.      from outside ImageStudio and this will lead to the ARexx commands
  6808.      from the multiple scripts being mixed together. We don't know if
  6809.      it's possible to only run one script at a time externally. If you
  6810.      run all your scripts from inside ImageStudio, this will never
  6811.      happen.
  6812.  
  6813.    * Under Workbench2.x the checkbox and mutual exclude (radio button)
  6814.      gadgets don't scale with font size. This may lead to slightly
  6815.      strange looking windows with very small or very large fonts.
  6816.      Workbench3.x scales these gadgets correctly.
  6817.  
  6818.    * ImageStudio has problems when running with the MagicFileRequester
  6819.      (MFR) utility. It seems that ImageStudio uses some features of the
  6820.      ASL file requesters that are unsupported by MFR and this causes
  6821.      MFR to crash. *This is not our problem, we are not doing anything
  6822.      wrong*. We've tried to contact the author about this, but to no
  6823.      avail. We suggest that when using ImageStudio, MFR is not used.
  6824.  
  6825.    If you think you have found a bug not covered here, please contact
  6826. the authors to report it (see The authors).
  6827.  
  6828. Common questions
  6829. ****************
  6830.  
  6831.    If you have any questions about ImageStudio, make sure that it
  6832. hasn't already been answered below:
  6833.  
  6834. Common question 1
  6835. =================
  6836.  
  6837.      "Why doesn't ImageStudio support TIFF?"
  6838.  
  6839.    TIFF is a powerful and flexible image format, but that is also its
  6840. downfall. TIFF supports so many compression algorithms, for example,
  6841. that it would require a very large amount of code to deal with even a
  6842. modest range of TIFF files.
  6843.  
  6844.    TIFF will probably get added later when the loader / savers become
  6845. external modules.
  6846.  
  6847. Common question 2
  6848. =================
  6849.  
  6850.      "Will you be adding SHAM, PCHG ..."
  6851.  
  6852.    At the moment we have no plans to add SHAM or CTBL formats due to
  6853. their hardware dependence. PCHG will probably be added later when the
  6854. loaders / savers become external modules.
  6855.  
  6856. Common question 3
  6857. =================
  6858.  
  6859.      "Can I turn virtual memory off?"
  6860.  
  6861.    ImageStudio will always work with virtual memory. If you are lucky
  6862. enough to have lots of RAM and you wish to use that instead of your
  6863. hard disk, simply put the temp. files in the ram disk (see
  6864. Tooltype_TEMPDIR). The overhead of using virtual memory from RAM is
  6865. negligible.
  6866.  
  6867. Common question 4
  6868. =================
  6869.  
  6870.      "Why is there not a colour preview window?"
  6871.  
  6872.    Even with a relatively small amount of greyscales, a good
  6873. approximation of the image can be obtained (balance, contrast, etc...).
  6874. With a small number of colours, a poor representation of the image is
  6875. the result. A greyscale preview is also faster.
  6876.  
  6877. Common question 5
  6878. =================
  6879.  
  6880.      "What other programs have the authors written?"
  6881.  
  6882.    Andy and Graham have written "TextureStudio", a shareware Imagine3
  6883. format texture renderer. See TextureStudio, for more information.
  6884.  
  6885.    Andy has written "StickIt" - an Amiga equivalent of the `PostIt'
  6886. note; useful for reminding you of things to do.
  6887.  
  6888.    Graham has written "MultiSample" and "MooseDrive". Multisample is a
  6889. utility for converting to and from common Amiga / PC / Atari ST sound
  6890. sample formats. MooseDrive is a frantic "viewed from the top" car
  6891. racing game with multiple large scrolling tracks and the ability to
  6892. upgrade your car as you win races.
  6893.  
  6894.    All the above programs are available from PD libraries as well as
  6895. the Internet's `Aminet' servers.
  6896.  
  6897. Common question 6
  6898. =================
  6899.  
  6900.      "How much disk space do the swap files use?"
  6901.  
  6902.    If the image is colour-mapped, 1 byte per pixel is used. Therefore,
  6903. the total number of bytes used is calculated as:
  6904.  
  6905.      bytes used = image_width x image_height
  6906.  
  6907.    If the image is 16 million colours, 3 bytes per pixel are used.
  6908. Therefore, the total number of bytes used is calculated as:
  6909.  
  6910.      bytes used = image_width x image_height x 3
  6911.  
  6912. Common question 7
  6913. =================
  6914.  
  6915.      "What is the .dvi and .ps documentation?"
  6916.  
  6917.    ".dvi" files are created with TeX program and can be viewed or
  6918. printed with appropriate utilities. This allows any user with the TeX
  6919. system installed to print the documentation out on any type of printer.
  6920.  
  6921.    ".ps" files are raw PostScript and can be printed on any PostScript
  6922. printer simply be sending them directly to the printer.
  6923.  
  6924. Common question 8
  6925. =================
  6926.  
  6927.      "Will you be adding support for animations?"
  6928.  
  6929.    Adding animation support is possible, but very very low on our list
  6930. of priorities. If you require image processing of animations with
  6931. ImageStudio, we recommend that you obtain a copy of Marcus Moenig's
  6932. `MainActor' program. With a bit of ARexx glue, MainActor could split
  6933. the animation, pass the frames to ImageStudio for processing and then
  6934. join them back into an animation afterwards.
  6935.  
  6936.    MainActor is a shareware program available from all good PD houses.
  6937.  
  6938. Common question 9
  6939. =================
  6940.  
  6941.      "Can you write a general virtual memory program?"
  6942.  
  6943.    We have been asked many times about writing a general purpose
  6944. virtual memory program that can be used with *all* Amigas (i.e. doesn't
  6945. require an MMU). To the best of our knowledge, this is not possible.
  6946. Our virtual memory routines don't require a MMU because they are
  6947. internal to ImageStudio and ImageStudio knows which parts of memory it
  6948. is currently using and which are safe to swap out to disk.
  6949.  
  6950.    A general purpose virtual memory program has to trap processor
  6951. instructions and decide whether that particular part of memory needs to
  6952. be loaded in. It also has to make smart decisions as to which part of
  6953. least used memory can be swapped out. In order to trap these processor
  6954. memory accesses, a MMU is vital.
  6955.  
  6956. Common question 10
  6957. ==================
  6958.  
  6959.      "Why don't you use a MUI for your windows design"
  6960.  
  6961.    `MUI', or `Magic User Interface', is a tool written by Stefan Stuntz
  6962. for designing font sensitive GUIs for Amiga programs.
  6963.  
  6964.    We do not use MUI for the same reason that we don't use any other
  6965. third party GUI software that requires runtime libraries. There are 2
  6966. main problems in using third party utilities:
  6967.  
  6968.   1. The user of ImageStudio is then expected to install extra software
  6969.      on their system just to get ImageStudio to run. In the case of
  6970.      MUI's installation, this can be be several hundred kilobytes of
  6971.      extra files.
  6972.  
  6973.   2. If at a later date a new version of the Amiga's operating system
  6974.      causes these third party products to fail, ImageStudio will also
  6975.      fail. We have been very careful in writing ImageStudio to adhere
  6976.      to Commodore's programming guidelines and therefore we see no
  6977.      reason why ImageStudio should fail to work with further operating
  6978.      system versions. Relying on third party products does not give us
  6979.      that confidence.
  6980.  
  6981.      In the very worst case that the author of third party product was
  6982.      unable or unwilling to update his / her software for the new
  6983.      operating system, ImageStudio would need to be re-written - not
  6984.      something we have any wish to do.
  6985.  
  6986. Common question 11
  6987. ==================
  6988.  
  6989.      "Will you be releasing the module format"
  6990.  
  6991.    When the format of the modules is fixed we will release development
  6992. documentation describing how users may write thier own modules.
  6993. Currently the module format is liable to change, so it would be unwise
  6994. to release such information now.
  6995.  
  6996. The authors
  6997. ***********
  6998.  
  6999.    ImageStudio was written by Andy Dean and Graham Dean.
  7000.  
  7001.    Queries and orders (see How to register) should be sent to Graham at:
  7002.  
  7003.      Graham Dean,
  7004.      14 Fielding Avenue,
  7005.      Poynton,
  7006.      Stockport,
  7007.      Cheshire.
  7008.      SK12 1YX
  7009.      ENGLAND
  7010.  
  7011.    Andy can be reached for queries (no orders) via Internet Email at:
  7012.  
  7013.      adean@eleceng.ucl.ac.uk
  7014.  
  7015.    The rate at which ImageStudio progresses depends on a few things:
  7016.  
  7017.   1. You. If you like and use the program, please register it. If you
  7018.      like the program but think it is missing something that isn't
  7019.      already in our future additions list (see Future additions) *let
  7020.      us know!*.
  7021.  
  7022.   2. Other work. Graham is studying `A' levels and Andy is doing a PhD
  7023.      and this work will take priority (sad, but true).
  7024.  
  7025.    If you find a bug in ImageStudio that is not convered in the `Known
  7026. bugs' list (see Known bugs), please inform the authors at the above
  7027. addresses; don't assume that someone else will, we don't notice all the
  7028. problems ourselves.
  7029.  
  7030.    Please include as much information about the problem as possible,
  7031. including:
  7032.  
  7033.    * Version of ImageStudio and whether it is the 68000 or 68020
  7034.      version.
  7035.  
  7036.    * Amiga model.
  7037.  
  7038.    * Version of Workbench/Kickstart.
  7039.  
  7040.    * Amount of RAM (fast and chip), hard disk size and type, processor.
  7041.  
  7042.    * Any extra hardware boards you have connected to your Amiga.
  7043.  
  7044.    * Any utilities you are running at the same time as ImageStudio.
  7045.  
  7046.    * Whether the problem is repeatable or just occasional.
  7047.  
  7048.    * If you have Enforcer or Mungwall, do these report anything?
  7049.  
  7050.    We treat all bug reports with the utmost importance but it is
  7051. difficult for us to investigate problems with very little detail on how
  7052. they happen, so please, send us as much information as possible.
  7053.  
  7054.    If you are having problems loading a particular file into
  7055. ImageStudio, test whether it will load into any another package and if
  7056. possible whether other files created by the same program also give
  7057. problems. We cannot really test every faulty file, but if files created
  7058. by one particular program only give problems on ImageStudio then we'll
  7059. look into that.
  7060.  
  7061.    ImageStudio has been tested on:
  7062.  
  7063.    - A500, Workbench 2.04, 1Mbyte CHIP RAM, 2Mbyte FAST RAM, A590
  7064.      85Mbyte SCSI hard drive, Microbotics VXL*30 accelerator (no 32-bit
  7065.      RAM).
  7066.  
  7067.    - A1200, Workbench 3.0, 2Mbyte CHIP RAM, 8MByte FAST RAM, Power
  7068.      ViperI 68030 accelerator card, 68882 FPU, 270Mbyte IDE hard drive.
  7069.  
  7070.    - A4000/EC030, Workbench 3.0, 2Mbyte CHIP RAM, 8MByte FAST RAM,
  7071.      68882 FPU, 130Mbyte + 420Mbyte IDE hard drives.
  7072.  
  7073.    ImageStudio shows no problems with either the Enforcer or Mungwall
  7074. debugging tools.
  7075.  
  7076. How to register
  7077. ***************
  7078.  
  7079.    To receive the full version of ImageStudio, send 10 pounds sterling
  7080. (20 US dollars overseas) to:
  7081.  
  7082.      Graham Dean,
  7083.      14 Fielding Avenue,
  7084.      Poynton,
  7085.      Stockport,
  7086.      Cheshire.
  7087.      SK12 1YX
  7088.      ENGLAND
  7089.  
  7090.    We will accept the following methods of payment:
  7091.    * 10UK pounds cash.
  7092.  
  7093.    * A 10UK pounds cheque, drawn on a UK bank.
  7094.  
  7095.    * A 10UK pounds postal order, purchased in the UK.
  7096.  
  7097.    * 20US dollars cash.
  7098.  
  7099.    * International money order.
  7100.  
  7101.    We *don't* accept any foreign cheques drawn on non-UK banks and we
  7102. *don't* accept any foreign postal orders. We also cannot accept
  7103. Eurocheques for any value (USdollars or UKpounds).
  7104.  
  7105.    Note: Make sure that when sending cash, it is well wrapped in the
  7106. envelope.
  7107.  
  7108.    In return you will receive the latest version of ImageStudio, along
  7109. with a personal keyfile to unlock the package. Each keyfile is unique
  7110. to the registered user, please do not distribute the keyfile to others
  7111. as it can be traced back to you. Allow a resonable time to allow cheque
  7112. clearance, the processing of the order, etc...
  7113.  
  7114.    Upgrades will be offered to registered users free of charge. As we
  7115. are now operating a keyfile concept, upgrades can be obtained by
  7116. getting the latest version from the Internet, Aminet, BBS's, PD houses
  7117. etc... If your local provider doesn't have the latest version, pester
  7118. them until they get it!
  7119.  
  7120.    Upgrades will not now be given by contacting the authors directly,
  7121. unless there is a very good reason for it (we're sorry, but we don't
  7122. have the resources to deal with lots of registered users all wanting
  7123. upgrades at the same time!).
  7124.  
  7125.    The version number of ImageStudio (see About) is to be interpreted
  7126. as:
  7127.  
  7128.      version.revision.subrevision
  7129.  
  7130.    The `version' shows the main version of the program, `revision' will
  7131. be increased as small additions and improvements are made to the
  7132. program. The `subrevision' value is incremented with bug fixes. All the
  7133. values are simple decimal, not floating point, so version 1.9.0 would
  7134. be followed by version 1.10.0.
  7135.  
  7136.    New versions will be distributed with every change in revision
  7137. number, bug fixes are likely to be distributed as "patches" (more
  7138. details to follow).
  7139.  
  7140. Credits
  7141. *******
  7142.  
  7143.    The authors would like to thank:
  7144.  
  7145.    * Commodore-Amiga.
  7146.  
  7147.    * David Cusick, Don Cox and Julie Brandon for beta testing
  7148.      ImageStudio.
  7149.  
  7150.    * Our parents, for their support (especially our mum for also
  7151.      helping with the posting and packing!!!).
  7152.  
  7153.    * Matt Dillon, for the `Dice' C compiler.
  7154.  
  7155.    * SAS Institute, for the `SAS/C' C compiler.
  7156.  
  7157.    * Ian OConner, for `The Designer' - used to do all the GUI windows
  7158.      design.
  7159.  
  7160.    * Michael Balzer, for `ARexxBox' - used to implement the ARexx port.
  7161.  
  7162.    * Jonathan Forbes, for `LX' - used to decompress the .lha files in
  7163.      the distribution.
  7164.  
  7165.    * All the public domain / freeware / shareware authors, for loads of
  7166.      great software.
  7167.  
  7168.    * To those on the comp.sys.amiga.programmer newsgroup who've
  7169.      responded to our programming problems.
  7170.  
  7171.    * The Independant JPEG Group, for their essential JPEG code and
  7172.      information.
  7173.  
  7174.    * All those involved with the excellent TeX and `TeXinfo' packages.
  7175.  
  7176. Future additions
  7177. ****************
  7178.  
  7179.    The following features will probably be added to future versions of
  7180. the packages (roughly in order):
  7181.  
  7182.    * Making the viewers external modules.
  7183.  
  7184.    * 256 colour preview.
  7185.  
  7186.    * Making the effects external modules.
  7187.  
  7188.    * Spare buffer.
  7189.  
  7190.    * Alpha channel buffer.
  7191.  
  7192.    * Aspect ratio correction in the preview window.
  7193.  
  7194.    * ARexx macro record.
  7195.  
  7196.    * Halftoning operators.
  7197.  
  7198.    * Image rotation.
  7199.  
  7200.    * Write a separate program used to build ARexx batch processing
  7201.      scripts by simply clicking on the actions you wish to perform.
  7202.  
  7203.    * Toolbar.
  7204.  
  7205. TextureStudio
  7206. *************
  7207.  
  7208.    Brief description:
  7209.  
  7210.    TextureStudio supports the loading of texture modules in Imagine3
  7211. format. The parameters of the texture can quickly and easily be
  7212. adjusted by means of slider gadgets or by typing in the numbers. The
  7213. texture can then be mapped onto a plane, cylinder or sphere and
  7214. rendered to a preview screen and/or as a 24-bit image to disk.
  7215.  
  7216.    Many aspects of the texture and render can be altered including axis
  7217. position/alignment/size, lighting settings, object colours, object size
  7218. etc.
  7219.  
  7220.    TextureStudio allows the user to quickly render the texture and
  7221. explore the effects of changing various parameters without the need to
  7222. ray-trace a new image each time something altered.
  7223.  
  7224.    TextureStudio can render images to disk in IFF-ILBM24, JPEG or Targa
  7225. format. This allows high quality images to be rendered and loaded into
  7226. other programs. 24-bit images of any size can be rendered, regardless
  7227. of memory available.
  7228.  
  7229.    Some example textures are included in the distribution but Imagine3
  7230. is required to be able to use it's textures.
  7231.  
  7232.    List of feature:
  7233.  
  7234.    * Supports Imagine3 texture format.
  7235.  
  7236.    * Control of features via ARexx port.
  7237.  
  7238.    * Render unlimited number of textures simultaneously.
  7239.  
  7240.    * Render to HAM screen and 24-bit images on all Amigas.
  7241.  
  7242.    * Render 24-bit images of any size onto disk in IFF-ILBM24, JPEG or
  7243.      Targa format, regardless of memory available.
  7244.  
  7245.    * Saving of HAM preview screen to disk.
  7246.  
  7247.    * Support for colour, filter and bump type textures.
  7248.  
  7249.    * Easy adjustment of parameters by means of slider gadgets.
  7250.  
  7251.    * Map textures onto a plane, cylinder or sphere.
  7252.  
  7253.    * Control of light colour, distance, position, backlighting and
  7254.      intensity.
  7255.  
  7256.    * Adjustment of axis alignment, size and position.
  7257.  
  7258.    * Control of object size, visible width and image aspect ratio.
  7259.  
  7260.    * Multiple pass render to allow quick preview of image whilst it
  7261.      renders.
  7262.  
  7263.    * 5 levels of anti-aliasing available.
  7264.  
  7265.    * Preview colours with colourbox window.
  7266.  
  7267.    * Alter render screens width, height and screenmode.
  7268.  
  7269.    * Control of all main functions from floating windows.
  7270.  
  7271.    * Optimised code for 68881 and 68882 FPU's for maximum speed.
  7272.  
  7273.    * Render plane, cylinder or sphere without any texture to quickly
  7274.      set up lighting etc.
  7275.  
  7276.    * Loading and saving of textures settings, parameters and axis
  7277.      positions.
  7278.  
  7279.    * Render preferences to alters speed and accuracy of render.
  7280.  
  7281.    * Configure window positions, screenmode, default settings and then
  7282.      save preferences to disk.
  7283.  
  7284.    * Runs on all Amigas with Workbench2.04 or above and an FPU
  7285.      (floating point unit).
  7286.  
  7287.    * Standard Workbench2 interface.
  7288.  
  7289.    * Uses public screen.
  7290.  
  7291.    Shareware version:
  7292.  
  7293.    The shareware version is limited in that only the first 8 parameters
  7294. of the texture can be adjusted. No other features have been removed.
  7295.  
  7296.    The full version allows all 16 parameters to be altered.
  7297.  
  7298.    See How to register, for details on how to register. Registration is
  7299. 10UK pounds or 20US dollars.
  7300.  
  7301.