Home » Archimedes archive » Apps » Acorn Applications Update (1994)(Acorn Computers).adf » !ChangeFSI/FSIinfo

!ChangeFSI/FSIinfo

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Apps » Acorn Applications Update (1994)(Acorn Computers).adf
Filename: !ChangeFSI/FSIinfo
Read OK:
File size: CD21 bytes
Load address: FFFFFF44
Exec address: FDAFAACC
File contents
     ChangeFSI: Colour Image Processing Using the 256 colour modes

Archimedes computers have full colour display capabilities built into them as
standard. However, compared with the hardware found in larger workstations, the
facilities provided have been carefully reduced (in order to make them cheap
enough to fit all the time). So the precision of the digital to analogue
converters is only 4 bits (instead of 8) and the colour palette only has 16
entries (instead of 256).

The VIDC 256 colour mode
=========================

Has 4 direct bits (top 2 green, top red and blue) plus 4 palette look up bits
which affect the remaining DAC bits. This therefore gives a choice of 256
colours from 4096, but the choice is not a free one in that the 4 direct bits
are always connected: this leaves only 256 selections available from the 4096
colour range. To repeat: there are 256 simultaneous colours in a selection out
of 4096 colours, where there are only 256 "legal" selections. The new VIDC20
allows an arbitrary selection of colours, but the default situation is
identical.

There are "optimal" selections. An optimal selection is one which covers the
entire R, G, B colour cube (i.e. 0-fullscale for each of the colours) and can
thus be dithered to from any picture (if one considers picture's colour range
as an arbitrary volume in the colour cube, then you can dither/display a
picture accurately if and only if the volume covered by the available colours
encloses the picture's). The optimal selection used for the RISC OS 256 colour
mode palette contains 2 most significant bits of Red, 2 most significant bits
of Green and 2 most significant bits of Blue, with the last 2 bits controlling
the 2 least significant bits in parallel ("adds white" to a colour). Thus peak
R, G, B is obtained (without side effects if varied simultaneously, with a side
effect if peak R (say) alone is required). A correctly designed error diffusion
dither algorithm can display pictures with very high fidelity. [note that
dithering all pictures with a single palette permits their display
simultaneously on the screen, also note that dithering to a fixed palette is
much quicker than selecting a palette first!]

One can also program the system for a large number of n bits per colour modes,
with the n bits starting at the most significant end of the colour range. For
example 4 bits of green, 3 bits of red and 1 bit of blue. The constraints are:
     2 <= nGreen <= 4
     1 <= nRed   <= 4
     1 <= nBlue  <= 4
     (and nRed+nBlue+nGreen=8)
Modes like these are often useful for real time solid modelling (where the
expense of dithering with error diffusion (circa 100 cycles per pixel) cannot
be afforded). These selections are non-optimal: the colour cube is not
completely spanned.

Displaying A Picture
====================

Since a colour in the 256 colour mode can be such a complicated thing, with
varying capability of spanning the colour cube and an unknown accuracy, there
is a RISC OS standard way of specifying a colour you wish to draw with using 8
bits for R, G and B components. A call to the operating system converts this to
the nearest colour and new objects can be drawn.

Where the object to be drawn is a previously generated picture, the modules
"SpriteExtend" (in the ROM) and "ColourTrans" (in the !System directory) in
RISC OS provide some capabilites for displaying pictures in different screen
modes. ColourTrans can look at the palette which a sprite uses and return a
list of the equivalent 'closest' colours in the current screen mode.
SpriteExtend can paint sprites using the list of equivalent colours and can
change the size of the image into the bargain. This is all very well for simple
pictures or pictures created directly for a particular mode, but what happens
for more detailed information or pictures from other sources with resolution
not matched by the Archimedes hardware?

Also the above facilities are rather basic: ColourTrans makes no effort to use
dithering (the practise of putting patterns of different coloured pixels
together to represent other colours) and SpriteExtend simply discards
additional information if reducing the picture in size (and together they make
no attempt to enhance the picture when making it larger). The reason for these
shortcomings is quite simple: speed. The algorithm used in ChangeFSI uses 105
ARM instructions per pixel - and that's apart from any instructions used to
read the image in, change its size and write the result out. For comparison,
the normal sprite plot takes only one instruction per pixel (4 instructions for
four 8 bit pixels). Processing a MODE 15 picture thus uses up too many seconds
of ARM cpu time to imagine it as part of the interactive desktop.

So what does ChangeFSI do to make the situation better? And why does it take so
long? One can immediately draw up some desirable properties for any solution to
the image changing problem:

(1) Maximising the volume of the colour cube. Colour represented in the Red,
Green and Blue computer graphics system can be thought of as a point in a 3D
cube whose axes are the red, green and blue values. Whatever clever
approximations, dithering or error diffusion techniques are used, the colour
volume spanned by the r, g and b axes in the target should be large enough to
contain the source volume. If not, then the picture will appear faded in some
way compared to the original ("the red doesn't seem quite the same"). For a
single picture a colour volume only as large as the input could be chosen;
alternatively for an arbitrary set of input pictures, the colour volume on the
output system has to be made as large as possible. Where animation is required
the colour volume has to be consistent for all the pictures. When generating
the largest volume, it is important to use the system hardware to the limit:
for example, if one has two bits of control over the Archimedes 4 bit D to A
converters, the largest range is covered by values 0, 5, 10 and 15 (rather than
0, 4, 8 and 12).

(2) Giving hue consistency at different saturations. For example, with a
palette with different numbers of bits of r, g and b it may be impossible to
have a consistent set of colours representing derived colours at different
levels of intensity. Shades of white and secondary colours (cyan, magenta and
yellow) are particularly difficult.

(3) Working with the multi-tasking desktop. Acorn are asking for all new
software to be built on the multitasking system. This implies that the palette
should not be changed (or that the agreement of all programs currently running
is obtained first).

The desktop (default) palette in the 256 colour modes (e.g. modes 13, 15, 21,
24 and 28) is quite well designed. It does have the properties of (1) and (2)
(it even has 16 shades of grey) and automatically satisfies (3). It is used by
many Acorn programs (Draw, Paint) and by external programs (Euclid, ProArtisan,
Atelier, ..) to great effect and is a safe choice for ChangeFSI. There are two
ways ChangeFSI can choose a colour:

(a) a method which derives values for r, g, b and tint algorithmically (no
suffix) (suitable only for the default RISC OS 256 colour palette)

(b) search the palette for the closest colour (r suffix). The precise method by
which this is done is the subject of another document.

ASIDE: the closest colour is chosen such that the distance between the true
colour and the choice is minimised in the colour cube space. Since the human
eye is more sensitive to green, then red and lastly blue, the distance function
is weighted 10, 3 and 1 in green's favour.

With the 16 colour modes (e.g. modes 9, 12, 16, 20 and 27) the default palette
does not satisfy (1) and (2) unless the output is purely shades of grey -
ChangeFSI can use either 8 greys (for the desktop) or 16 greys (out of the
desktop or with the desktop palette altered to provide 16 greys). For colour
representation, ChangeFSI can either:

(a) use 1 bit of red, 1 bit of green and 1 bit of blue (i.e. the standard 8
digital colours Black, Red, Green, Blue, Yellow, Magenta, Cyan and White). This
spans the colour cube and is hue consistent, but doesn't use the full range of
bits provided in the format. ColourTrans can map this to the desktop with the
standard palette with fair success, except for the lack of magenta (full
red+full blue) in the palette. A better result can be achieved by setting 6 of
the colours in the palette to red, green, yellow, blue, magenta and cyan. Since
ColourTrans will map the colours anyway, it doesn't matter which 6, but the
most consistent values are 8=blue, 9=yellow, 10=green, 11=red, 13=cyan,
14=magenta (leaving 0-7, 12 and 15 unchanged). This option is selected by a "d"
(digital RGB) suffix to the program's mode argument.

or (b) search the palette for the closest colour (r suffix) [ChangeFSI needs to
be in the 16 colour mode in order to read the palette]

With the 4 colour modes (e.g. modes 8, 11, 19 and 26) ChangeFSI is really
pushed. Shades of grey output is done with the 0, 5, 10, 15 level palette. But
how can colour be done? For example, each pixel can display only one of (say)
black, red, green or blue. This fails to span the colour cube (it does only
half of it), however, so black, cyan, magenta and yellow are used instead. The
rest has to be left to luck: there is no way it can approximate to pure shades
of red, green or blue. 4 bit colour pictures can be seen on the desktop in 16
colour modes with the above palette or in 256 colour modes. This option is by a
"c" suffix. If you can provide a better palette, then ChangeFSI can use it with
the "r" suffix search method.

With 2 colour modes (e.g. modes 0, 18, 23 and 25) pixels are either ON or OFF,
ChangeFSI will only do shades of grey output.... However, the method used can
be varied (see later).

So that's the canvas ChangeFSI has to work on. How does it display the input
range of colours on these outputs? The answer is, as stated above, dithering:
the process of approximating intensity variations with patterned areas. There
are two basic types of dithering technique: that used to print colour magazines
and newspaper photographs "clustered dot dither" - the size of the dot of ink
gives the intensity; and that used on dot matrix displays, for example the grey
level patterns used by 1 bit per pixel mode on the desktop "dispersed dot
dither" where the average number of dots in the area gives the intensity.

Why does the world need two different techniques? Well, different devices
reproduce pixels differently. The "ideal square" pixels produced by an LCD are
perfect for dispersed dot dither; a CRT produces a gaussian spot (a circle or
ellipse which decays in intensity towards the edges) instead of a square -
dispersed dot dither works well; a dot matrix impact printer or a "write black"
laser printer produce large dots (diameter at least SQR(2) over unit pixel
square) and thus make pictures too dark if dispersed dot dither is used; a
"write white" laser printer prints negative "white dots" on a black field and
thus "caves in" the sides of pixels making pictures too white with dispersed
dot dither. Clustered dot dither reduces the effects of mis-sized pixels by
ensuring they are adjacent (and thus the error is confined to the periphery of
the shape) but this does have a cost in poorer resolution.

Since ChangeFSI's colour or greyscale output is to CRTs (or LCDs in some
distant future) it automatically uses a dispersed dot dither. Monochrome output
could be for the screen or for a printer: the user can select between dispersed
and clustered methods by adding a various suffices ("c", "d" or "t") to the
mode number for clustered output. For "c" the algorithm (due to Robert L Gard,
1976) approximates tones in the range 0..16 (17 levels) by using 0..16 "on"
pixels in a 4 by 4 cell. For "d" the algorithm (developed by me, but similar to
Gard's) approximates tones in the range 0..4 (5 levels) by using 0..4 "on"
pixels in a 2 by 2 cell. For "t" the algorithm (ditto as "d") approximates
tones in the range 0..9 (10 levels) by using 0..9 "on" pixels in a 3 by 3 cell.
The "on" pixels are carefully chosen to provide: (a) symmetry of white/black
and black/white patterns (b) diagonally oriented dot grid. The diagonal angle
reduces the eye's ability to see the rectangular patterns produced. The various
sizes of the halftone cell allow some trade off between representing the tonal
values correctly and loss of resolution. Start with "c" and progress to "t" and
then "d" if the resolution is not acceptable.

ChangeFSI can generate reasonable pictures on "write black" printers with a
dispersed dot dither by using the "-black" parameter; however images produced
like this do not photocopy at all well (the photocopier makes the dots blacker
again!). The parameter to -black (default value 32, range 0..128) tells
ChangeFSI how much larger than the ideal square pixel the dots produced by the
printer are - 128 corresponds to an inked dot covering four times the area of
the ideal black square pixel (and this will generally mean ChangeFSI produces
an entirely white output!). Values above 64 give rather poor results on some
pictures but may be worth experimenting with. The default is 32, a dot covering
50% more area than the square pixel (the minimum circle enclosing the pixel
square). Some printers produce dots of (pseudo-randomly) varying sizes and
black correction may not help with these (the picture looks "noisy") in which
case use one of the clustered output methods. -black correction makes pictures
on the screen look very pale, since, if anything, black pixels on screen are
smaller than the ideal square.

[aside: to print these pictures, you need a method which copies the pixels
ChangeFSI has made exactly to those of the output device. Using !Paint, scale X
and Y by 90:300 for a 300dpi printer.]

In all cases, an approximation to a colour will produce an error (which might
possibly be zero if ChangeFSI is very lucky). ChangeFSI tracks these errors and
ensures that over wide areas there is no overall error using a technique called
"error diffusion", first devised by R W Floyd and L Steinberg in 1975. In this
technique the approximation is made and the error distributed to nearby pixels
in the following ratios:

                current pixel   7/16 of error
3/16 of error   5/16 of error   1/16 of error

ChangeFSI gets some of its name from Floyd and Steinberg. Additionally,
ChangeFSI scans through the picture in a serpentine fashion, doing a row of
pixels left to right followed by the next row right to left. This reduces the
probability of regular patterns which the eye is sensitive to. The final I of
the name is for Integer: ChangeFSI does all its work in 32 bit fixed point
integer arithmetic (with the point at bit 28) instead of floating point.
Dithering can be turned off using using "Disable Dithering" on the Processing
dialogue ("-nodither" on the command line) which at least allows you to see how
well it does!

The conversion from one colour range to another is made at the same time as a
change in size of the image. Size is changed by ratios of areas between the
input and output: the total weight of r, g, and b in the source area is
calculated using the fixed point arithmetic and this result is then
approximated to the output using the error diffusion to preserve information
(for example, consider halving in size an image with adjacent pixels of
intensities 1 and 2; the output pixel needs to be value 1.5, so the 0.5 error
is sent to adjacent pixels to keep the overall colour the same). The size
change is expressed as a ratio of output to input (e.g. 40:20) which ChangeFSI
reduces to the smallest possible terms (2:1 in this case) so that you are free
to give values like 256:512 if that's what you mean! Size change is either both
x and y (if one ratio is given) or separate x and y (if two ratios are given).
Note that the size of a RISC OS pixel is known, so changing from (say) mode 21
to (say) mode 13 does not need any additional specified scaling. The full size
output for mode 21 is the reference, so scale to 640 by 512. A common scaling
is to fill the output sprite with the input and an "=" parameter to x and/or y
ratios will do this without ever having to know the size of the input. Simply
omitting the fractional part causes ChangeFSI to put in the source size, thus
giving output which is the specified number of pixels in size.

Conversion from colour to monochrome shades of grey is done with the CIE
luminance weights for r, g and b (0.299, 0.587, 0.114) which is the standard
conversion for broadcast television. These values can be altered using the
-red, -green and -blue commands and allow different weightings for conversion
to monochrome to be tried, this also allows selection of an image composed of
only some of the colours (e.g. -red1 -green0 -blue0) in making a black and
white image.

ChangeFSI can take any RISC OS sprites (2, 4, 16 or 256 colours). If there is a
palette it will be used, otherwise the standard 2, 4, 16 and 256 colour desktop
palettes are used. ChangeFSI can also read the 16bpp and 24bpp sprites which
have no palettes.

ChangeFSI is both a command line driven program and a desktop application. The
file !Help describes how to use the application from the desktop, if you need
to use the program as a command line driven program you will need to have it in
the library (or on run$path) and press f12 to get out of the desktop. The file
"FSIuse" describes the parameters concisely. The program selects mode 0 when
run from the command line when doing any work in order to speed up processing
(this can be disabled with -nomode). It may also be a good idea to RMFaster
BASIC. An hourglass %age processed figure is displayed (this may run through
twice for some of the more expensive options). The program reads the source
image from disc and builds the output in memory, having claimed some from the
system.

In addition to strictly converting the source image, ChangeFSI can also process
it. A trivial option is "-info": ChangeFSI will tell you what it is doing (a
good way of finding out what the source image actually is, and how the scaling
turns out!). Similarly trivial are -vflip and -hflip - the picture can be
produce upside down and left/right reversed. Not so trivial is -rotate, which
will rotate the image by 90 degrees (that is, an anti- clockwise quarter turn).
-rotate- rotates by -90 degrees (clockwise quarter turn).

Sometimes useful is "-nosize": ChangeFSI can read pixel size information from
the source image (if present) or guess it (e.g. if there are less than 320 by
256 pixels in a source image, ChangeFSI assumes the pixels are the same size as
MODE 13's [45 per inch]) or derive it from other information and scale the
output image (composed of RISC OS square or 1:2 sized pixels) appropriately.
-nosize stops this from happening. [this seems particularly relevant on formats
like TIFF or IFF where the pixel size is specified *but may be wrong*] Using
-info will display the pixel ratios which ChangeFSI is using - a combination of
the size guess, the output pixel size and any deliberate scaling. "-noscale"
turns off the output scaling as well.

The simplest image processing option is "-range" which will expand the dynamic
range of the input picture so that it fills the available area (not a good
option for animated sequences unless all source images possess the same range).
Since r, g, b are processed by the same amount, -range preserves the colour of
pixels in coloured pictures.

A useful option for output intended for the screen only is Gamma correction.
CRT displays do not have a simple linear relationship between brightness of the
spot and input voltage: instead of brightness = const * voltage, the response
is brightness = const * voltage ^ (1/gamma). In the TV industry, gamma has been
standardised as 2.2, but there is wide variation in the computer industry: the
monitor's response will vary depending on what make it is and how it is
adjusted. Low values of gamma (0 to 1) make colours darker and high values
(above 1) make colours lighter with the effects being particularly noticeable
on dim colours. "-gamma" uses the default of 2.2, and it can be set by
"-gamma1.5" say. Gamma correction is most relevant when its known that the
input has a linear intensity (input from a scanner or from another computer
with more bits per colour component than the Archimedes).

A more complex primitive is "-equal" which performs "histogram equalisation" on
the image. This makes the histogram of level versus number of points at that
level as flat as possible giving full use of the number of colours available.
-equal is a very harsh primitive, even on monochrome inputs it can produce an
inferior picture; while on colour pictures it can distort the colour of each
point (since r, g, b are computed separately). But -equal can often recover a
picture that is otherwise completely useless or expose information locked in a
small part of the input scale.

Image colours may be inverted with the -invert option. Which may be fun in
colour but is rarely useful! However, monochrome images frequently need
inverting, especially one bit per pixel sources.

A more powerful option is "-sharpen" which enhances the edges of objects in the
picture: this is very useful since the dithering process inevitably smears
information over the display. Pre-sharpening the image can result in a more
acceptable output. Default values of sharpening can be overridden for special
effects: -sharpen8 does edge detection. Lower amounts of sharpening are
obtained with larger -sharpen numbers. In general the more input and output
pixels and the greater the output range in a pixel in the images, the less
sharpening is required. Sharpening a picture which is already dithered can give
a very bad result....

The sharpening is achieved with the following matrix:

   -1    -1    -1
   -1 sharpen  -1
   -1    -1    -1

ChangeFSI computes the sum of nine pixels with the above weights for each input
pixel and renormalises the result (divides by sharpen-8).

An option for testing is "-nodither" which disables the Floyd Steinberg error
diffusion step completely. Versions after 6th June 1990 are more accurate at
doing this.

The various processes described above are applied in the following order for
pictures with more output pixels than input:
   (a) range or histogram equalisation,
   (b) sharpen,
   (c) scale,
   (d) error diffusion.
This order is chosen so that:
   (1) since the input pixels (rather than the output pixels) are sharpened,
       there is no false edge introduced when pixels are replicated.

The various processes described above are applied in the following order for
pictures with fewer output pixels than input:
   (a) scale,
   (b) range or histogram equalisation,
   (c) sharpen,
   (d) error diffusion.
This order is chosen so that:
   (1) ranging can enhance down-sized images. Say a black/white dithered image
       is reduced in size, so that the output from the scaling process is (some
       approximation to) the original grey levels; then ranging can expand this
       if possible.
   (2) sharpening can be used to offset the blurring effects of scaling.
   (3) since the output pixels (rather than the input pixels) are sharpened,
       the effect of -sharpenN is consistent over differently scaled images.

There may be times when this automatic selection of order gets it wrong,
particularly when changing the aspect ratio, it is possible to trigger some
undesirable sharpening artifacts. Use the program twice with sharpening (say)
disabled and enabled in the order required.

Examples of use:

Make "standard palette" versions of existing 256 colour images (for example
the Watford digitiser plus colour board doesn't use the standard palette).
  (e.g. "changefsi in out 13p" for a coloured Watford picture)

Or convert a colour picture to something you can see on your high res mono
monitor.
  (e.g. "changefsi in out 18 -sharpen -info")

Or convert a large monochrome picture (from a scanner, say) to something
which can be seen.
  (e.g. "changefsi in out 20t 1:4 -gamma")

Or convert a colour picture to grey scale for the desktop.
  (e.g. "changefsi in out 20")

Or change a 512 by 480 image to standard format and aspect ratio
  (e.g. "changefsi in out 15 640:512 512:480")
  (or "changefsi in out = -range")

Or change to digital r, g, b
  (e.g. "changefsi in out 20d -sharpen16")

Or convert a picture for printing on a 300dpi laser.
  (e.g. "changefsi in out 18c 300:90 -sharpen")

And many more uses such as making miniatures of pictures, animated sequences of
pictures changing size (or sharpness!), converting Artisan pictures to the
desktop (try looking at the Artisan Garden with the desktop in 256 colours and
ChangeFSI's version - the stripes on the lawn vanish with the standard
version). Obviously you will need to have captured input as a sprite first!
Using more pixels per inch can improve the quality of the result, particularly
converting to multisync modes.

Note that, for all work with ChangeFSI, it is a good idea to start from the
unprocessed input each time and do everything in one pass (rather than using
the program several times with simple arguments). It is not a good idea to
sharpen a dithered image (unless it has been shrunk).

*** It is a very good idea to keep the highest resolution master that you can
afford the disc space for....

The ChangeFSI program can also convert from non RISC OS sprite formats while
doing all of the above processing. ChangeFSI will work out what the format is
automatically. For native RISC OS formats, it uses the filetype and there can
be no confusion. For alien formats, it first tries looking for particular
identifying information inside the file and then (if this fails to have
identified a format) tries using the file name itself. See the details below:

The RISC OS sprite format
 Contains 1, 2, 4 or 8 bits per pixel with a modification palette of up to
 16 entries; any number of pixels wide and high uncompressed. Details are in
 Acorn's Programmer's Reference Manual.
 + Recognised by file type FF9 (a paint brush and house icon)
 - Details of how many bits per pixel and the pixel size are obtained from
   the operating system (rather than being in the file) from the "MODE"
   number. Mode extensions can result in a source image containing a MODE
   number which your computer does not understand.
 - Mask information ignored
 - Lefthand wastage ignored

The new RISC OS sprite format
 Contains 1, 2, 4, 8, 16 or 32 bits per pixel.
 + Recognised by file type FF9
 + no problem with mode extensions: information is coded into the format
 - Mask information ignored

Kodak PhotoCD
 24 bit per pixel images at various resolutions
 + Recognised by file type BE8
 - Set ChangeFSI$PCDIndex to read resolutions other than base (=3)

The ArVis format [of ArVis Multimedia]
 Contains 5 bits of red, green and blue information encoded into two RISC OS
 sprites "HIP.<filename>" and "LOP.<filename>" comprising a 640 pixel wide
 and 256 line tall image with pixels sized 1:2. Details from ArVis Multimedia
 - Recognised by providing the HIP.<filename> (which must be of file type FF9)
 - Uncompressed (indeed represents 16 bits instead of 15).

The Pineapple colour digitiser format (of Pineapple Software)
 Contains 6 bits of green, 5 bits of red and blue information filed as a
 single data file starting "FSIfile" comprising a 512 pixel wide and 256
 line tall image with pixels sized 1:2.
 - Recognised by "FSIfile" in the file (which can be any type)
 - Uncompressed

The Watford Video Digitiser "picture" format
 Contains a run length encoded 64 grey level 512 pixel wide, 256 line image,
 with pixels sized 1:2. Details from Watford Electronics Ltd.
 + Recognised by file type DFA (a small grey picture of Stevie Nicks)
 - Warning: don't forget to save the pictures in *un-dithered* state!
 When used with a colour converter, ChangeFSI can read three colour
 separations stored in a directory of separate "red", "green" and "blue"
 files. Beware of auto-gain/contrast when using such information!

The ProArtisan compressed picture file format
 Contains a (mildly) compressed MODE 15 (640 by 256 by 256 colours) picture.
 Details from Clares.
 + Recognised by file type DE2 (a beige monitor in a grey surround)

The TimeStep satellite image format
 This gives an uncompressed 800 by 800 with 256 grey levels.
 + Recognised by file type 7A0 (icon never seen)
 - No resolution specified, equal to mode 27 assumed
 - Documentation never seen. An extra header file <name>! is not understood
   at all.....

CCIR601 4:2:2 images
 Contain 720 pixels by 288 rows (PAL) [243 rows NTSC] YUV coded with
 pixels sized 1:2.
 + Recognised by file type 601
 - one field only

Another TimeStep satellite image format
 Giving an uncompressed 128 pixels wide by 256 lines with 256 grey levels,
 pixels sized 2:1. Used by TimeStep's !ImProcess application.
 + Recognised by file type 300 ("i" in a document frame)
 - Documentation never seen.
 - A bit coarse
 The grey levels represent intensity in various different wave bands. By
 naming files "red", "green" and "blue" and handing ChangeFSI the directory,
 you can produce a false colour image. Hours of experimentation can produce
 an almost reasonable picture...

The AIM and Wild Vision V10 format
 This provides an uncompressed 256 by 256 image with 256 grey levels. Details
 from Delft University of Technology and ECD Computers Delft B.V.
 + Recognised by file type 004 (a picture of 'Trui' with "TU" in blue)
 + ChangeFSI can write to this format (specify "aim" in the mode position)
   and specify = in the sizing to get a 256 by 256 output (otherwise it will
   be the same size as the source image)
 - No resolution specified, equal to mode 27 assumed
 - The associated file <name>+ (file type 010) which contains additional
   information is ignored by ChangeFSI.
 The grey levels may represent intensity in various different wave bands. By
 naming files "red", "green" and "blue" and handing ChangeFSI the directory,
 you can produce a false colour image. Hours of experimentation can produce
 an almost reasonable picture...

The Wild Vision V12 format
 This provides an uncompressed 512 by 512 image with 256 grey levels.
 + Recognised by file type 006
 - No resolution specified, equal to mode 27 assumed

The Wild Vision V9 and SnapShot formats
 This provides an uncompressed 512 by 256 image with 4 bits of red, green
 and blue, pixels sized 1:2.
 + Recognised by "MercSoft" or "SnapShot" header
 + No file type needed

The !Translator Clear format
 This provides 1, 2, 4, 8 and 24 bits per pixel.
 + Recognised by file type 690
 - uncompressed, especially for <8 bits per pixel which is recorded at one
   byte per pixel.
 - No resolution specified, equal to mode 27 assumed

The Atari ST "Degas" format
 1, 2 or 4 bits per pixel, clear or run length encoded. RISC OS file type by
 John Kortink of !Translator.
 + Recognised by file type 691
 - No documentation and only 5 images read
 - No resolution specified, equal to mode 27 assumed

>> All the file formats so far have been designed on RISC OS (or Arthur) and
recognition of the format is defined by file type, the files arrive on RISC
OS floppy discs, and the originators live in the same time zone. For the
following formats many of these things are not true... Which makes it more
difficult to guarantee that ChangeFSI will be able to read the file.

The Millipede Prisma format (used by CadSoft also)
 The Millipede Prisma 3 is a 768 pixels wide by 574 line interlaced display
 board for the Archimedes and BBC Microcomputer. It allows use of 256
 colours from 2^24. Files may be stored uncompressed (432KBytes!) or run
 length encoded. More details from CadSoft or Millipede Electronic Graphics.
 + Recognised by "MILLIPEDE" at offset 16 in the file
 - No resolution specified, equal to mode 27 assumed
 - slowish to read the compressed formats
 - scaling the picture using = can be poor since 574 lines don't relate very
   well to 512 or 256. Use -info to display the scale ratios.

The Aldus/MicroSoft TIFF format (also filetype FF0 is assigned to TIFF)
 Frequently used by scanners, TIFF is a common interchange format for
 graphics images on the Mac and PC (particularly DTP and Windows). It
 provides an arbitrary number of bits per pixel, size etc using a numeric tag
 scheme allowing new information to be introduced without upsetting existing
 programs. The format may be compressed (in 5 different ways at present).
 Details from Aldus UK, MicroSoft, Hewlett Packard...
 + Recognised by file type FF0
 + Recognised by "II" plus the 16 bit number 42 at the start of the file for
   little endian machines (ix86, ARM, VAX...)
 + Recognised by "MM" plus the 16 bit number 42 at the start of the file for
   big endian machines (M680x0...)
 + Can read PackBits images and LZW compressed forms (at least the 3 its
   seen so far...)
 - Cannot read predictor compressed LZW images.
 - So far ChangeFSI has only done 1, 4, 8 and 24 bit images.
   It can't read "planar" images or CCITT compressed forms.
 - Some TIFF images have incorrect pixel sizes: use -nosize if this is
   true. If no pixel size is specified, ChangeFSI assumes mode 27 size.
 + TIFF is a trademark of Aldus Corporation

The CompuServe GIF format
 Used for wide area network transfer of images. It provides an LZW
 compressed up to 256 colours from 2^24 arbitrary sized image. Details from
 CompuServe (USA) [or usenet]
 + Recognised by "GIF87a" at the start of the file
 + LZW compression is efficient even for dithered images
 + ChangeFSI can decompress LZW quickly
 - No resolution specified, equal to mode 27 assumed
 - many low quality images around from PCs

The Electronic Arts IFF ILBM format
 Provides an arbitrary sized image with up to 4096 colours sometimes run
 length encoded. ChangeFSI understands the generic format and also the
 special Amiga format for "HAM" and "Half-bright" images.
 + Recognised by "FORM" as the first four characters and "ILBM" as
   characters 8 to 11
 - Only pixel aspect ratio specified, not its size (and then sometimes
   incorrectly): use -nosize *and* a size change (a:b) if its wrong
 - images often small
 - doesn't understand Amiga "hires"
 - can't convert HAM pictures directly to monochrome

The MicroSoft Windows 3 .BMP format
 Used by MicroSoft in Windows 3 and PaintBrush for Windows 3. Provides an
 arbitrary sized image and 1, 4 or 8 bits per pixel. Uncompressed.
 + Recognised by "BM" as the first two characters
 - No resolution specified, equal to mode 27 assumed
 - documentation never seen - 7 files examined and intelligent guesses made!

The Digital Research GEM .IMG format
 Used by GEM (and GEM Paint) on both PC and Atari ST. Provides an arbitrary
 sized image and number of bits per pixel (though its only usually used with
 up to 5 bits per pixel) and pixel size. Compressed by run length encoding
 and line repeats.
 - Recognised by 00 01 00 08 as the first four bytes ("version 1, header
   length 8") or by "IMG" as the name of the directory the file is in.
 - Planar file format slow to read
 - Palette not specified: ChangeFSI assumes linear shades of grey. You might
   need to use -invert if the image is a negative
 - The size of a pixel is specified in microns. The standard RISC OS 90
   pixels per inch translates to (1/90*2.54*10,000) microns - 282. (use
   -info to get information about the scaling, -nosize to stop it)
 - Documentation from the "ST World" magazine's clinic.

An unknown PC .PIC format
 Used for some VGA demos, the format provides an uncompressed 320 by 200 by
 256 colour (from 2^24) VGA screen dump.
 + Recognised by "AV_VO" as the first five bytes in the file
 - Documentation never seen
 - Pixel size assumed the same as MODE 13 (45 pixels per inch).

The MacPaint format
 Provides a 576 by 720 bitmap, run length coded by the Mac's "PackBits"
 algorithm (repeated bytes).
 - Recognised by "PNTG" at position 65 in the file. This may only relate to
   files which have been through a program called "MacFix". Data assumed to
   start at position 128 in the file. Header ignored.
 - No resolution specified, equal to mode 25 assumed

The Mac PICT2 format (PICT extended version 2)
 Provides an arbitary size packed picture, run length coded by the Mac's
 "PackBits" algorithm (repeated bytes).
 + Recognised by looking for the PICT header at position 514 in the file.
   The header is 00 11 02 FF 0C 00 FF FE.
 - Documentation available but mostly useless (it assumes you are about to
   call QuickDraw routines - "Note: for maximum safety and convenience, let
   QuickDraw generate and interpret your pictures." Apple fail to describe
   the PackBits algorithm in Inside Mac...)
 - PICT is the loose equivalent of RISC OS Draw file format, but without
   the explicit sizing of objects - for PICT, if there is an object that
   you don't understand, there's no way of skipping it (whereas for Draw,
   the size of the object is specified in an object indep. way). Apple
   present a large table of the sizes of the objects (0000 - FFFF) which is
   not in ChangeFSI. Consequently, if ChangeFSI finds an object it doesn't
   know about before the picture, it stops...
 - Only PackBitsRect (0098) (8bpp) and DirectBitsRect (009A) (24/32 bpp) are
   allowed.
 + ChangeFSI tries to skip a Clip (0001) region if it encounters it, since it
   is hard to get the Mac OS to make PICT files without a clip opcode in them.
 + size of pixel specified.
 - Only 3 pictures read - since the format is very complicated (e.g. the size
   of things change if >250 rows in the picture!) this is no guarentee that
   anything else will be right.

The ZSoft .PCX format
 Used by PC Paintbrush. Usually a 4 bit per pixel image (CGA, EGA, VGA) but
 can be 1-8 bits per pixel.
 - Recognised by 10,[0,2,3,4,5],1 at start of file. Or by name PCX.<foo>. Or
   by type &697.
 + Intelligent check for resolution of the DACs on the PC card. Use -info to
   find out what ChangeFSI thinks it is.
 + Pixel size information read. You may need to stop the scaling with
   -nosize, since its often wrong.

The RIX Softworks ColoRIX format
 Used by VGA Paint, image extension .SCE .. .SCX. 4 or 8 bits per pixel.
 - Recognised by "RIX3" at start of file
 - Documentation never seen
 - Only 5 files read: ChangeFSI checks to see if the header is the same
   as these files and complains otherwise.
 - No resolution specified, equal to mode 27 assumed

The Sun "pixrect" format
 Used under SunOS and also under X11. Commonly 1 or 8 bits per pixel, but up
 to 24 bits per pixel can be found (see the Sun NeWS release tape!).
 + Recognised by &59A55A95 at the start of the file.
 - No resolution specified, equal to mode 27 assumed
 - Sun didn't specify the pixel ordering of 24 bit per pixel images: many
   assume RGB when it was actually BGR. Change byte &17 in the Sun
   rasterfile between 1 and 3 if you have a problem.

The "pbm" 'portable bitmap' file format
 Used by the "PBM-PLUS" toolkit (mainly Unix) by Jef Poskanzer. 1-24 bits
 per pixel (more can be specified in the format but ChangeFSI cannot read
 them). ChangeFSI can only read the "RAWBITS" formats (it can write all of
 the pbm formats).
 + Recognised by P4/P5/P6 at start of file.
 + Writable by ChangeFSI
 - No resolution specified, equal to mode 27 assumed

The UNIX "rle" format
 Used by a program called "svfb" to save the contents of large frame
 buffers, checked with four images at 24 bits per pixel.
 + Recognised by &CC52 at the start of the file.
 - No resolution specified, equal to mode 27 assumed

The TrueVision Targa format
 Used by TrueVision for Vista boards. Up to 32 bits per pixel.
 - Recognised by suffix _TGA or _VDA on the name. Or by type &69d.
 - Only uncompressed formats readable.
 - Only 8 and 16 bit per pixel formats tested.

The "Flexible Image Transport System" (FITS) format
 Used for astronomical data. Up to 16 bits per pixel component.
 + Recognised by "SIMPLE" at the start of the file.
 - Only 8 and 16 bit per pixel component formats tested.
 - Only two files ever seen!
 - No resolution specified, equal to mode 27 assumed

The Irlam instruments colour scanner format
 24 bit per pixel from colour scanner.
 + Recognised by Irlam 24 at the start of the file.
 + Writable by ChangeFSI
 - No resolution specified, equal to mode 27 assumed
 - may need gamma correction

The Irlam instruments YUV 411 colour video format
 7 bits Y, up to 7 bits U and V.
 + Recognised by Irlam YUV 411 at the start of the file
 - no resolution specified, equal to mode 27 assumed

The JPEG 'JFIF' File Interchange Format
 Up to 24 bits R,G,B, compressed by the JPEG compression system.
 + Recognised by JFIF at position 6 in the file (you may have to
   cut headers off files, particularly if they are from Macs).
 + Often highly compressed
 + If ChangeFSI$Cache is large enough (bigger than the file), then high
   speed routines are used to decompress. Otherwise:
 - ChangeFSI calls a djpeg routine. This can be on the Run$Path, implemented
   as an Alias (in which case it *must* use WimpTask to start) or found
   inside ChangeFSI$Dir if all else fails. cjpeg (the compressor) is also
   available inside ChangeFSI$Dir - you will need to convert the image to
   P6 format before it can be compressed. Djpeg and cjpeg are by the
   PD JPEG group.
 - ... and therefore slow. Needs a lot of space in <Wimp$Scrap>.
 - no resolution specified, equal to mode 27 assumed

>> The following file formats are only recognised by their names.

An unknown PC .DSP format
 Experimentally determined that it holds a 640 by 350 EGA picture at 4 bits
 per pixel. ChangeFSI "knows" the default EGA palette (from IBM literature).
 - Recognised by being in a directory "DSP"
 - Documentation never seen
 - No resolution specified, equal to mode 27 assumed
 - Only two examples read(!)

The QRT .raw format
 Output from Steve Koren's public domain ray tracer: arbitrary size in 2^24
 colours, uncompressed. Documentation part of QRT.
 - Recognised by the name ending ".Raw". Or by type &698.
 - No resolution specified, equal to mode 27 assumed

The MTV pic. format
 Output from Mark Terrence VandeWettering public domain ray tracer arbitrary
 size in 2^24 colours, uncompressed. Documentation part of MTV. Also used by
 "RayShade".
 - Recognised by being in a directory "Pic.". Or by type &699.
 - No resolution specified, equal to mode 27 assumed

The RT image. format
 Output from "RT", a private ray tracer by Brian D Watt(?) arbitrary size in
 2^24 colours, run length encoded.
 - Recognised by being in a directory "Image."
 - No resolution specified, equal to mode 27 assumed

For many of these formats, especially the uncompressed ones, setting the
variable "ChangeFSI$Cache" to the number of bytes of temporary memory you
wish the program to use will speed up reading the information. The default
is 49152 bytes. For example "*set ChangeFSI$Cache 80k". For those worried
about speed, the program will go faster if:

 - you use -noscale and keep 1:1 ratios (don't specify them)
   (although -nosize and 1:1 or 1:2 ratios are quick, too)
 - you don't need sharpening, histogram equalisation, range expansion
 - you use monochrome (e.g. 25, 26, 27 and 27t) modes

additionally you can disable dithering (-nodither) especially when reading
monochrome source.

You can avoid the program changing mode by putting -nomode on the command line.

Very large output files can be built strips at a time and sent directly to disk
using the parameter "-max" e.g:

  ChangeFSI <in> <out> 28 -max512K

will convert the file with a maximum of 512KBytes held in memory. Options 25t,
-rotate and -vflip don't work when this is being done.

Work will be done on other formats when and if both image and documentation
arrive on my desk. Adding a new format is a matter of (a) putting in automatic
recognition of the format at the start of the program (b) reading the size of
the image and the colour palette mapping [in the next section of the program]
(c) writing a "read pixel row" element inside PROCiprow (d) providing an entry
in PROCrewind. If you write a new format interface, please send it to me so
that it will be included in later versions. ChangeFSI has already got code for
dealing with images with 1, 2, 4 and 8 bits per pixel packed into bytes and for
images with up to 8 bit planes. There is support code for LZW decompression and
LZW decoding.

As a special feature, ChangeFSI will also write out 256 grey level files (alter
rwt, gwt and bwt to get 256 level colour separations) in AIM format. This is
file type 4 with bytes representing the grey level. Use the = operation to
restrict the picture to 256x256y, otherwise it will be the same size as the
input. Specify "aim" as the mode string to do this.

For portability to other machines, ChangeFSI can write out files in "pbm"
format. There are 3 types of format "black/white" (pbm), "grey" (pgm) and
"colour" (ppm) with pure ASCII and binary encodings of each:

ASCII                                   Binary
p1        "black/white" (like mode 18)  p4 (big endian bytes!)
p2        "grey" (like mode 20t)        p5
p3        "true colour"                 p6

Files can be read with Jef Poskanzer's portable toolkit on other machines. The
p2 format is easily convertible by programmers; it consists of:

P2
# comment line
xsize ysize
maximum_value
pixel_value <whitespace> pixel_value

where all the numbers are in decimal (ASCII). 0 means black, maximum_value (=
15) means white. The p3 format is similar with r, g, b triples for each pixel
value. The number of bits per component (default 8) can be set from the command
line with, for example, "p3,4" for 4 bits per component.

As a special packed output format, "P15" has been implemented. Output is binary
pixel values, 5 bits per component, little endian RGB order packed into 16
bits. Header information as the other p formats.

Files can be written as new RISC OS sprites using S16 and S32 as the formats.
The x and y pixels per inch are given as a comma seperated list - a 16 bit mode
12 equivalent is S16,90,45 while a 32 bit mode 28 equivalent is S32,90,90.

ChangeFSI can write Irlam format images (somewhat slower than p6 images...).

                              Output summary
                              ==============

# cols   Colour Cube  Bits used  Consistent Hue  Desktop Palette  Mode&Suffix

2^24            Y         24           Y             -            S32, p3 or p6 or Irlam
2^21            Y         21           Y             -            p6,7
2^18            Y         18           Y             -            p6,6
2^15            Y         15           Y             -            S16, p15 or p6,5
2^12            Y         12           Y             -            p6,4
512             Y          9           Y             -            p6,3
256 grey        n          8           Y             -            aim
256 grey        n          8           Y             -            28d
256             Y          8           Y             Y            28
256             Y          8           Y             Y            28r
16 grey         n          4           Y             n            27t
16 grey         n          4           Y             n            p2 or p5
8 grey          n          3           Y             Y            27
16              ?          4           ?             Y            27r
16              Y          3           Y           can be         27d
4 grey          n          2           Y             Y            26
4               n          2           n             n            26c
4               n          2           n             n            26r
2 (black/white) n          1           Y             Y            25
2 (black/white) n          1           Y             Y            25c/d/t
2 (black/white) n          1           Y             Y            p1 or p4


ChangeFSI can be used from both the desktop front end and from the command
line. It can also be used as a BASIC library function:
LIBRARY"<ChangeFSI$Dir>.ChangeFSI" gives a new function, FNChangeFSI to the
BASIC programmer. This function takes:
  A$: a command line argument
  spritearea%: an address or -1 for the spritearea built by ChangeFSI
  workspace%: an address or -1 for ChangeFSI's other workspace
  worklimit%: an address (unused if workspace%<0)
  fast%: TRUE for MODE 0 selection
It produces an error (to whatever error handler is present) if it fails. If
spritearea% is <0 it will save the sprite to the file given in the command
string, otherwise it won't. The function FNChangeFSIVersion returns the version
string of the library (in the info box of the desktop application).

                           Command Summary
                           ===============

-info     give details

-hist     don't process image, but display histogram of it instead

-hflip    horizontally flip the image
-vflip    vertically flip the image
-rotate   rotate the image by +90 degrees (i.e. anti-clockwise)
-rotate-  rotate the image by -90 degrees (i.e. clockwise)
-max      set the maximum size of the image before disc is used

-noscale  disable automatic pixel size correction
-nosize   disable automatic pixel size correction for input pixels only
-nodither disable dithering
-nomode   don't change to mode 0 while processing the picture
-invert   invert colour range of image

-range    expand input's dynamic range to full scale
-equal    histogram equalisation
-sharpen  digitally sharpen the picture

-gamma    set gamma correction
-black    correct for black ink spot size
-red      change red weight for deriving monochrome luminance
-green    change green weight for deriving monochrome luminance
-blue     change blue weight for deriving monochrome luminance

-brighten horrendous hack to slightly brighten images: may convert hues
          close to white to white. (It causes the output range 0..15 to
          be considered as 0..(15/16) instead of 0..(15/15)).

                           Mode Suffixes
                           =============

c
  1 bit modes: use clustered dithering with 4x4 cell
  2 bit modes: use the four colours "black", "cyan", "magenta" and "yellow"
d
  1 bit modes: use clustered dithering with 2x2 cell
  4 bit modes: use 1 bit red, 1 bit green, 1 bit blue
  8 bit modes: use 256 level grey scale
t
  1 bit modes: use clustered dithering with 3x3 cell
  4 bit modes: 16 level grey scale
r
  2 bit modes: Roger Wilson's (me) colour matching algorithm
  4 bit modes: Roger Wilson's (me) colour matching algorithm
  8 bit modes: Roger Wilson's (me) colour matching algorithm
-no suffix-
  1 bit modes: b/w dispersed dot dithering
  2 bit modes: 4 level grey scale
  4 bit modes: 8 level grey scale
  8 bit modes: John Bowler's colour matching algorithm
               (defaults to 'r' mode if not VIDC1 compatible)

Colour matching is done in r, g, b space: the minimum distance between colours
is the square root of:
   delta_r^2*rmatchwt+delta_g^2*gmatchwt+delta_b^2*bmatchwt
ChangeFSI has hard wired weights of 3, 10, 1 respectively for its colour
matching algorithms. John Bowler's algorithm (default for RISC OS 8 bit modes)
although somewhat slower, is fast enough to have replaced all the previous
methods [ASIDE it gives pictures at least as good as "p" mode in pre Aug 91
ChangeFSI's]. Roger Wilson's (i.e. my) colour matching algorithm is
recommended, and is used automatically if the 8 bit per pixel mode does not
have the default RISC OS colour set.

[NOTE: thanks are due to Steve Green and the BBC and Irlam Instruments for the
intermediate systems that led to John Bowler's and my algorithms: until Aug 91
ChangeFSI used their work for its "Precise Matching" algorithm. It no longer
uses any of their code, but owes a debt for overall approach. A small thank you
to Spencer Thomas for putting me on the track which led to my colour matching
system's algorithm.]

Further information on dithering can be found in "Digital Halftoning" by Robert
Ulichney published by the MIT Press, ISBN 0-262-21009-6. A book which I wish
I'd had when I started writing the program, rather than after it was nearly
finished! Histogram equalisation is in "Algorithms for Graphics and Image
Processing" by Theo Pavlidis published by Computer Science Press, ISBN
0-914894-65-X.
00000000  20 20 20 20 20 43 68 61  6e 67 65 46 53 49 3a 20  |     ChangeFSI: |
00000010  43 6f 6c 6f 75 72 20 49  6d 61 67 65 20 50 72 6f  |Colour Image Pro|
00000020  63 65 73 73 69 6e 67 20  55 73 69 6e 67 20 74 68  |cessing Using th|
00000030  65 20 32 35 36 20 63 6f  6c 6f 75 72 20 6d 6f 64  |e 256 colour mod|
00000040  65 73 0a 0a 41 72 63 68  69 6d 65 64 65 73 20 63  |es..Archimedes c|
00000050  6f 6d 70 75 74 65 72 73  20 68 61 76 65 20 66 75  |omputers have fu|
00000060  6c 6c 20 63 6f 6c 6f 75  72 20 64 69 73 70 6c 61  |ll colour displa|
00000070  79 20 63 61 70 61 62 69  6c 69 74 69 65 73 20 62  |y capabilities b|
00000080  75 69 6c 74 20 69 6e 74  6f 20 74 68 65 6d 20 61  |uilt into them a|
00000090  73 0a 73 74 61 6e 64 61  72 64 2e 20 48 6f 77 65  |s.standard. Howe|
000000a0  76 65 72 2c 20 63 6f 6d  70 61 72 65 64 20 77 69  |ver, compared wi|
000000b0  74 68 20 74 68 65 20 68  61 72 64 77 61 72 65 20  |th the hardware |
000000c0  66 6f 75 6e 64 20 69 6e  20 6c 61 72 67 65 72 20  |found in larger |
000000d0  77 6f 72 6b 73 74 61 74  69 6f 6e 73 2c 20 74 68  |workstations, th|
000000e0  65 0a 66 61 63 69 6c 69  74 69 65 73 20 70 72 6f  |e.facilities pro|
000000f0  76 69 64 65 64 20 68 61  76 65 20 62 65 65 6e 20  |vided have been |
00000100  63 61 72 65 66 75 6c 6c  79 20 72 65 64 75 63 65  |carefully reduce|
00000110  64 20 28 69 6e 20 6f 72  64 65 72 20 74 6f 20 6d  |d (in order to m|
00000120  61 6b 65 20 74 68 65 6d  20 63 68 65 61 70 0a 65  |ake them cheap.e|
00000130  6e 6f 75 67 68 20 74 6f  20 66 69 74 20 61 6c 6c  |nough to fit all|
00000140  20 74 68 65 20 74 69 6d  65 29 2e 20 53 6f 20 74  | the time). So t|
00000150  68 65 20 70 72 65 63 69  73 69 6f 6e 20 6f 66 20  |he precision of |
00000160  74 68 65 20 64 69 67 69  74 61 6c 20 74 6f 20 61  |the digital to a|
00000170  6e 61 6c 6f 67 75 65 0a  63 6f 6e 76 65 72 74 65  |nalogue.converte|
00000180  72 73 20 69 73 20 6f 6e  6c 79 20 34 20 62 69 74  |rs is only 4 bit|
00000190  73 20 28 69 6e 73 74 65  61 64 20 6f 66 20 38 29  |s (instead of 8)|
000001a0  20 61 6e 64 20 74 68 65  20 63 6f 6c 6f 75 72 20  | and the colour |
000001b0  70 61 6c 65 74 74 65 20  6f 6e 6c 79 20 68 61 73  |palette only has|
000001c0  20 31 36 0a 65 6e 74 72  69 65 73 20 28 69 6e 73  | 16.entries (ins|
000001d0  74 65 61 64 20 6f 66 20  32 35 36 29 2e 0a 0a 54  |tead of 256)...T|
000001e0  68 65 20 56 49 44 43 20  32 35 36 20 63 6f 6c 6f  |he VIDC 256 colo|
000001f0  75 72 20 6d 6f 64 65 0a  3d 3d 3d 3d 3d 3d 3d 3d  |ur mode.========|
00000200  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00000210  3d 0a 0a 48 61 73 20 34  20 64 69 72 65 63 74 20  |=..Has 4 direct |
00000220  62 69 74 73 20 28 74 6f  70 20 32 20 67 72 65 65  |bits (top 2 gree|
00000230  6e 2c 20 74 6f 70 20 72  65 64 20 61 6e 64 20 62  |n, top red and b|
00000240  6c 75 65 29 20 70 6c 75  73 20 34 20 70 61 6c 65  |lue) plus 4 pale|
00000250  74 74 65 20 6c 6f 6f 6b  20 75 70 20 62 69 74 73  |tte look up bits|
00000260  0a 77 68 69 63 68 20 61  66 66 65 63 74 20 74 68  |.which affect th|
00000270  65 20 72 65 6d 61 69 6e  69 6e 67 20 44 41 43 20  |e remaining DAC |
00000280  62 69 74 73 2e 20 54 68  69 73 20 74 68 65 72 65  |bits. This there|
00000290  66 6f 72 65 20 67 69 76  65 73 20 61 20 63 68 6f  |fore gives a cho|
000002a0  69 63 65 20 6f 66 20 32  35 36 0a 63 6f 6c 6f 75  |ice of 256.colou|
000002b0  72 73 20 66 72 6f 6d 20  34 30 39 36 2c 20 62 75  |rs from 4096, bu|
000002c0  74 20 74 68 65 20 63 68  6f 69 63 65 20 69 73 20  |t the choice is |
000002d0  6e 6f 74 20 61 20 66 72  65 65 20 6f 6e 65 20 69  |not a free one i|
000002e0  6e 20 74 68 61 74 20 74  68 65 20 34 20 64 69 72  |n that the 4 dir|
000002f0  65 63 74 20 62 69 74 73  0a 61 72 65 20 61 6c 77  |ect bits.are alw|
00000300  61 79 73 20 63 6f 6e 6e  65 63 74 65 64 3a 20 74  |ays connected: t|
00000310  68 69 73 20 6c 65 61 76  65 73 20 6f 6e 6c 79 20  |his leaves only |
00000320  32 35 36 20 73 65 6c 65  63 74 69 6f 6e 73 20 61  |256 selections a|
00000330  76 61 69 6c 61 62 6c 65  20 66 72 6f 6d 20 74 68  |vailable from th|
00000340  65 20 34 30 39 36 0a 63  6f 6c 6f 75 72 20 72 61  |e 4096.colour ra|
00000350  6e 67 65 2e 20 54 6f 20  72 65 70 65 61 74 3a 20  |nge. To repeat: |
00000360  74 68 65 72 65 20 61 72  65 20 32 35 36 20 73 69  |there are 256 si|
00000370  6d 75 6c 74 61 6e 65 6f  75 73 20 63 6f 6c 6f 75  |multaneous colou|
00000380  72 73 20 69 6e 20 61 20  73 65 6c 65 63 74 69 6f  |rs in a selectio|
00000390  6e 20 6f 75 74 0a 6f 66  20 34 30 39 36 20 63 6f  |n out.of 4096 co|
000003a0  6c 6f 75 72 73 2c 20 77  68 65 72 65 20 74 68 65  |lours, where the|
000003b0  72 65 20 61 72 65 20 6f  6e 6c 79 20 32 35 36 20  |re are only 256 |
000003c0  22 6c 65 67 61 6c 22 20  73 65 6c 65 63 74 69 6f  |"legal" selectio|
000003d0  6e 73 2e 20 54 68 65 20  6e 65 77 20 56 49 44 43  |ns. The new VIDC|
000003e0  32 30 0a 61 6c 6c 6f 77  73 20 61 6e 20 61 72 62  |20.allows an arb|
000003f0  69 74 72 61 72 79 20 73  65 6c 65 63 74 69 6f 6e  |itrary selection|
00000400  20 6f 66 20 63 6f 6c 6f  75 72 73 2c 20 62 75 74  | of colours, but|
00000410  20 74 68 65 20 64 65 66  61 75 6c 74 20 73 69 74  | the default sit|
00000420  75 61 74 69 6f 6e 20 69  73 0a 69 64 65 6e 74 69  |uation is.identi|
00000430  63 61 6c 2e 0a 0a 54 68  65 72 65 20 61 72 65 20  |cal...There are |
00000440  22 6f 70 74 69 6d 61 6c  22 20 73 65 6c 65 63 74  |"optimal" select|
00000450  69 6f 6e 73 2e 20 41 6e  20 6f 70 74 69 6d 61 6c  |ions. An optimal|
00000460  20 73 65 6c 65 63 74 69  6f 6e 20 69 73 20 6f 6e  | selection is on|
00000470  65 20 77 68 69 63 68 20  63 6f 76 65 72 73 20 74  |e which covers t|
00000480  68 65 0a 65 6e 74 69 72  65 20 52 2c 20 47 2c 20  |he.entire R, G, |
00000490  42 20 63 6f 6c 6f 75 72  20 63 75 62 65 20 28 69  |B colour cube (i|
000004a0  2e 65 2e 20 30 2d 66 75  6c 6c 73 63 61 6c 65 20  |.e. 0-fullscale |
000004b0  66 6f 72 20 65 61 63 68  20 6f 66 20 74 68 65 20  |for each of the |
000004c0  63 6f 6c 6f 75 72 73 29  20 61 6e 64 20 63 61 6e  |colours) and can|
000004d0  0a 74 68 75 73 20 62 65  20 64 69 74 68 65 72 65  |.thus be dithere|
000004e0  64 20 74 6f 20 66 72 6f  6d 20 61 6e 79 20 70 69  |d to from any pi|
000004f0  63 74 75 72 65 20 28 69  66 20 6f 6e 65 20 63 6f  |cture (if one co|
00000500  6e 73 69 64 65 72 73 20  70 69 63 74 75 72 65 27  |nsiders picture'|
00000510  73 20 63 6f 6c 6f 75 72  20 72 61 6e 67 65 0a 61  |s colour range.a|
00000520  73 20 61 6e 20 61 72 62  69 74 72 61 72 79 20 76  |s an arbitrary v|
00000530  6f 6c 75 6d 65 20 69 6e  20 74 68 65 20 63 6f 6c  |olume in the col|
00000540  6f 75 72 20 63 75 62 65  2c 20 74 68 65 6e 20 79  |our cube, then y|
00000550  6f 75 20 63 61 6e 20 64  69 74 68 65 72 2f 64 69  |ou can dither/di|
00000560  73 70 6c 61 79 20 61 0a  70 69 63 74 75 72 65 20  |splay a.picture |
00000570  61 63 63 75 72 61 74 65  6c 79 20 69 66 20 61 6e  |accurately if an|
00000580  64 20 6f 6e 6c 79 20 69  66 20 74 68 65 20 76 6f  |d only if the vo|
00000590  6c 75 6d 65 20 63 6f 76  65 72 65 64 20 62 79 20  |lume covered by |
000005a0  74 68 65 20 61 76 61 69  6c 61 62 6c 65 20 63 6f  |the available co|
000005b0  6c 6f 75 72 73 0a 65 6e  63 6c 6f 73 65 73 20 74  |lours.encloses t|
000005c0  68 65 20 70 69 63 74 75  72 65 27 73 29 2e 20 54  |he picture's). T|
000005d0  68 65 20 6f 70 74 69 6d  61 6c 20 73 65 6c 65 63  |he optimal selec|
000005e0  74 69 6f 6e 20 75 73 65  64 20 66 6f 72 20 74 68  |tion used for th|
000005f0  65 20 52 49 53 43 20 4f  53 20 32 35 36 20 63 6f  |e RISC OS 256 co|
00000600  6c 6f 75 72 0a 6d 6f 64  65 20 70 61 6c 65 74 74  |lour.mode palett|
00000610  65 20 63 6f 6e 74 61 69  6e 73 20 32 20 6d 6f 73  |e contains 2 mos|
00000620  74 20 73 69 67 6e 69 66  69 63 61 6e 74 20 62 69  |t significant bi|
00000630  74 73 20 6f 66 20 52 65  64 2c 20 32 20 6d 6f 73  |ts of Red, 2 mos|
00000640  74 20 73 69 67 6e 69 66  69 63 61 6e 74 20 62 69  |t significant bi|
00000650  74 73 0a 6f 66 20 47 72  65 65 6e 20 61 6e 64 20  |ts.of Green and |
00000660  32 20 6d 6f 73 74 20 73  69 67 6e 69 66 69 63 61  |2 most significa|
00000670  6e 74 20 62 69 74 73 20  6f 66 20 42 6c 75 65 2c  |nt bits of Blue,|
00000680  20 77 69 74 68 20 74 68  65 20 6c 61 73 74 20 32  | with the last 2|
00000690  20 62 69 74 73 20 63 6f  6e 74 72 6f 6c 6c 69 6e  | bits controllin|
000006a0  67 0a 74 68 65 20 32 20  6c 65 61 73 74 20 73 69  |g.the 2 least si|
000006b0  67 6e 69 66 69 63 61 6e  74 20 62 69 74 73 20 69  |gnificant bits i|
000006c0  6e 20 70 61 72 61 6c 6c  65 6c 20 28 22 61 64 64  |n parallel ("add|
000006d0  73 20 77 68 69 74 65 22  20 74 6f 20 61 20 63 6f  |s white" to a co|
000006e0  6c 6f 75 72 29 2e 20 54  68 75 73 20 70 65 61 6b  |lour). Thus peak|
000006f0  0a 52 2c 20 47 2c 20 42  20 69 73 20 6f 62 74 61  |.R, G, B is obta|
00000700  69 6e 65 64 20 28 77 69  74 68 6f 75 74 20 73 69  |ined (without si|
00000710  64 65 20 65 66 66 65 63  74 73 20 69 66 20 76 61  |de effects if va|
00000720  72 69 65 64 20 73 69 6d  75 6c 74 61 6e 65 6f 75  |ried simultaneou|
00000730  73 6c 79 2c 20 77 69 74  68 20 61 20 73 69 64 65  |sly, with a side|
00000740  0a 65 66 66 65 63 74 20  69 66 20 70 65 61 6b 20  |.effect if peak |
00000750  52 20 28 73 61 79 29 20  61 6c 6f 6e 65 20 69 73  |R (say) alone is|
00000760  20 72 65 71 75 69 72 65  64 29 2e 20 41 20 63 6f  | required). A co|
00000770  72 72 65 63 74 6c 79 20  64 65 73 69 67 6e 65 64  |rrectly designed|
00000780  20 65 72 72 6f 72 20 64  69 66 66 75 73 69 6f 6e  | error diffusion|
00000790  0a 64 69 74 68 65 72 20  61 6c 67 6f 72 69 74 68  |.dither algorith|
000007a0  6d 20 63 61 6e 20 64 69  73 70 6c 61 79 20 70 69  |m can display pi|
000007b0  63 74 75 72 65 73 20 77  69 74 68 20 76 65 72 79  |ctures with very|
000007c0  20 68 69 67 68 20 66 69  64 65 6c 69 74 79 2e 20  | high fidelity. |
000007d0  5b 6e 6f 74 65 20 74 68  61 74 0a 64 69 74 68 65  |[note that.dithe|
000007e0  72 69 6e 67 20 61 6c 6c  20 70 69 63 74 75 72 65  |ring all picture|
000007f0  73 20 77 69 74 68 20 61  20 73 69 6e 67 6c 65 20  |s with a single |
00000800  70 61 6c 65 74 74 65 20  70 65 72 6d 69 74 73 20  |palette permits |
00000810  74 68 65 69 72 20 64 69  73 70 6c 61 79 0a 73 69  |their display.si|
00000820  6d 75 6c 74 61 6e 65 6f  75 73 6c 79 20 6f 6e 20  |multaneously on |
00000830  74 68 65 20 73 63 72 65  65 6e 2c 20 61 6c 73 6f  |the screen, also|
00000840  20 6e 6f 74 65 20 74 68  61 74 20 64 69 74 68 65  | note that dithe|
00000850  72 69 6e 67 20 74 6f 20  61 20 66 69 78 65 64 20  |ring to a fixed |
00000860  70 61 6c 65 74 74 65 20  69 73 0a 6d 75 63 68 20  |palette is.much |
00000870  71 75 69 63 6b 65 72 20  74 68 61 6e 20 73 65 6c  |quicker than sel|
00000880  65 63 74 69 6e 67 20 61  20 70 61 6c 65 74 74 65  |ecting a palette|
00000890  20 66 69 72 73 74 21 5d  0a 0a 4f 6e 65 20 63 61  | first!]..One ca|
000008a0  6e 20 61 6c 73 6f 20 70  72 6f 67 72 61 6d 20 74  |n also program t|
000008b0  68 65 20 73 79 73 74 65  6d 20 66 6f 72 20 61 20  |he system for a |
000008c0  6c 61 72 67 65 20 6e 75  6d 62 65 72 20 6f 66 20  |large number of |
000008d0  6e 20 62 69 74 73 20 70  65 72 20 63 6f 6c 6f 75  |n bits per colou|
000008e0  72 20 6d 6f 64 65 73 2c  0a 77 69 74 68 20 74 68  |r modes,.with th|
000008f0  65 20 6e 20 62 69 74 73  20 73 74 61 72 74 69 6e  |e n bits startin|
00000900  67 20 61 74 20 74 68 65  20 6d 6f 73 74 20 73 69  |g at the most si|
00000910  67 6e 69 66 69 63 61 6e  74 20 65 6e 64 20 6f 66  |gnificant end of|
00000920  20 74 68 65 20 63 6f 6c  6f 75 72 20 72 61 6e 67  | the colour rang|
00000930  65 2e 20 46 6f 72 0a 65  78 61 6d 70 6c 65 20 34  |e. For.example 4|
00000940  20 62 69 74 73 20 6f 66  20 67 72 65 65 6e 2c 20  | bits of green, |
00000950  33 20 62 69 74 73 20 6f  66 20 72 65 64 20 61 6e  |3 bits of red an|
00000960  64 20 31 20 62 69 74 20  6f 66 20 62 6c 75 65 2e  |d 1 bit of blue.|
00000970  20 54 68 65 20 63 6f 6e  73 74 72 61 69 6e 74 73  | The constraints|
00000980  20 61 72 65 3a 0a 20 20  20 20 20 32 20 3c 3d 20  | are:.     2 <= |
00000990  6e 47 72 65 65 6e 20 3c  3d 20 34 0a 20 20 20 20  |nGreen <= 4.    |
000009a0  20 31 20 3c 3d 20 6e 52  65 64 20 20 20 3c 3d 20  | 1 <= nRed   <= |
000009b0  34 0a 20 20 20 20 20 31  20 3c 3d 20 6e 42 6c 75  |4.     1 <= nBlu|
000009c0  65 20 20 3c 3d 20 34 0a  20 20 20 20 20 28 61 6e  |e  <= 4.     (an|
000009d0  64 20 6e 52 65 64 2b 6e  42 6c 75 65 2b 6e 47 72  |d nRed+nBlue+nGr|
000009e0  65 65 6e 3d 38 29 0a 4d  6f 64 65 73 20 6c 69 6b  |een=8).Modes lik|
000009f0  65 20 74 68 65 73 65 20  61 72 65 20 6f 66 74 65  |e these are ofte|
00000a00  6e 20 75 73 65 66 75 6c  20 66 6f 72 20 72 65 61  |n useful for rea|
00000a10  6c 20 74 69 6d 65 20 73  6f 6c 69 64 20 6d 6f 64  |l time solid mod|
00000a20  65 6c 6c 69 6e 67 20 28  77 68 65 72 65 20 74 68  |elling (where th|
00000a30  65 0a 65 78 70 65 6e 73  65 20 6f 66 20 64 69 74  |e.expense of dit|
00000a40  68 65 72 69 6e 67 20 77  69 74 68 20 65 72 72 6f  |hering with erro|
00000a50  72 20 64 69 66 66 75 73  69 6f 6e 20 28 63 69 72  |r diffusion (cir|
00000a60  63 61 20 31 30 30 20 63  79 63 6c 65 73 20 70 65  |ca 100 cycles pe|
00000a70  72 20 70 69 78 65 6c 29  20 63 61 6e 6e 6f 74 0a  |r pixel) cannot.|
00000a80  62 65 20 61 66 66 6f 72  64 65 64 29 2e 20 54 68  |be afforded). Th|
00000a90  65 73 65 20 73 65 6c 65  63 74 69 6f 6e 73 20 61  |ese selections a|
00000aa0  72 65 20 6e 6f 6e 2d 6f  70 74 69 6d 61 6c 3a 20  |re non-optimal: |
00000ab0  74 68 65 20 63 6f 6c 6f  75 72 20 63 75 62 65 20  |the colour cube |
00000ac0  69 73 20 6e 6f 74 0a 63  6f 6d 70 6c 65 74 65 6c  |is not.completel|
00000ad0  79 20 73 70 61 6e 6e 65  64 2e 0a 0a 44 69 73 70  |y spanned...Disp|
00000ae0  6c 61 79 69 6e 67 20 41  20 50 69 63 74 75 72 65  |laying A Picture|
00000af0  0a 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |.===============|
00000b00  3d 3d 3d 3d 3d 0a 0a 53  69 6e 63 65 20 61 20 63  |=====..Since a c|
00000b10  6f 6c 6f 75 72 20 69 6e  20 74 68 65 20 32 35 36  |olour in the 256|
00000b20  20 63 6f 6c 6f 75 72 20  6d 6f 64 65 20 63 61 6e  | colour mode can|
00000b30  20 62 65 20 73 75 63 68  20 61 20 63 6f 6d 70 6c  | be such a compl|
00000b40  69 63 61 74 65 64 20 74  68 69 6e 67 2c 20 77 69  |icated thing, wi|
00000b50  74 68 0a 76 61 72 79 69  6e 67 20 63 61 70 61 62  |th.varying capab|
00000b60  69 6c 69 74 79 20 6f 66  20 73 70 61 6e 6e 69 6e  |ility of spannin|
00000b70  67 20 74 68 65 20 63 6f  6c 6f 75 72 20 63 75 62  |g the colour cub|
00000b80  65 20 61 6e 64 20 61 6e  20 75 6e 6b 6e 6f 77 6e  |e and an unknown|
00000b90  20 61 63 63 75 72 61 63  79 2c 20 74 68 65 72 65  | accuracy, there|
00000ba0  0a 69 73 20 61 20 52 49  53 43 20 4f 53 20 73 74  |.is a RISC OS st|
00000bb0  61 6e 64 61 72 64 20 77  61 79 20 6f 66 20 73 70  |andard way of sp|
00000bc0  65 63 69 66 79 69 6e 67  20 61 20 63 6f 6c 6f 75  |ecifying a colou|
00000bd0  72 20 79 6f 75 20 77 69  73 68 20 74 6f 20 64 72  |r you wish to dr|
00000be0  61 77 20 77 69 74 68 20  75 73 69 6e 67 20 38 0a  |aw with using 8.|
00000bf0  62 69 74 73 20 66 6f 72  20 52 2c 20 47 20 61 6e  |bits for R, G an|
00000c00  64 20 42 20 63 6f 6d 70  6f 6e 65 6e 74 73 2e 20  |d B components. |
00000c10  41 20 63 61 6c 6c 20 74  6f 20 74 68 65 20 6f 70  |A call to the op|
00000c20  65 72 61 74 69 6e 67 20  73 79 73 74 65 6d 20 63  |erating system c|
00000c30  6f 6e 76 65 72 74 73 20  74 68 69 73 20 74 6f 0a  |onverts this to.|
00000c40  74 68 65 20 6e 65 61 72  65 73 74 20 63 6f 6c 6f  |the nearest colo|
00000c50  75 72 20 61 6e 64 20 6e  65 77 20 6f 62 6a 65 63  |ur and new objec|
00000c60  74 73 20 63 61 6e 20 62  65 20 64 72 61 77 6e 2e  |ts can be drawn.|
00000c70  0a 0a 57 68 65 72 65 20  74 68 65 20 6f 62 6a 65  |..Where the obje|
00000c80  63 74 20 74 6f 20 62 65  20 64 72 61 77 6e 20 69  |ct to be drawn i|
00000c90  73 20 61 20 70 72 65 76  69 6f 75 73 6c 79 20 67  |s a previously g|
00000ca0  65 6e 65 72 61 74 65 64  20 70 69 63 74 75 72 65  |enerated picture|
00000cb0  2c 20 74 68 65 20 6d 6f  64 75 6c 65 73 0a 22 53  |, the modules."S|
00000cc0  70 72 69 74 65 45 78 74  65 6e 64 22 20 28 69 6e  |priteExtend" (in|
00000cd0  20 74 68 65 20 52 4f 4d  29 20 61 6e 64 20 22 43  | the ROM) and "C|
00000ce0  6f 6c 6f 75 72 54 72 61  6e 73 22 20 28 69 6e 20  |olourTrans" (in |
00000cf0  74 68 65 20 21 53 79 73  74 65 6d 20 64 69 72 65  |the !System dire|
00000d00  63 74 6f 72 79 29 20 69  6e 0a 52 49 53 43 20 4f  |ctory) in.RISC O|
00000d10  53 20 70 72 6f 76 69 64  65 20 73 6f 6d 65 20 63  |S provide some c|
00000d20  61 70 61 62 69 6c 69 74  65 73 20 66 6f 72 20 64  |apabilites for d|
00000d30  69 73 70 6c 61 79 69 6e  67 20 70 69 63 74 75 72  |isplaying pictur|
00000d40  65 73 20 69 6e 20 64 69  66 66 65 72 65 6e 74 20  |es in different |
00000d50  73 63 72 65 65 6e 0a 6d  6f 64 65 73 2e 20 43 6f  |screen.modes. Co|
00000d60  6c 6f 75 72 54 72 61 6e  73 20 63 61 6e 20 6c 6f  |lourTrans can lo|
00000d70  6f 6b 20 61 74 20 74 68  65 20 70 61 6c 65 74 74  |ok at the palett|
00000d80  65 20 77 68 69 63 68 20  61 20 73 70 72 69 74 65  |e which a sprite|
00000d90  20 75 73 65 73 20 61 6e  64 20 72 65 74 75 72 6e  | uses and return|
00000da0  20 61 0a 6c 69 73 74 20  6f 66 20 74 68 65 20 65  | a.list of the e|
00000db0  71 75 69 76 61 6c 65 6e  74 20 27 63 6c 6f 73 65  |quivalent 'close|
00000dc0  73 74 27 20 63 6f 6c 6f  75 72 73 20 69 6e 20 74  |st' colours in t|
00000dd0  68 65 20 63 75 72 72 65  6e 74 20 73 63 72 65 65  |he current scree|
00000de0  6e 20 6d 6f 64 65 2e 0a  53 70 72 69 74 65 45 78  |n mode..SpriteEx|
00000df0  74 65 6e 64 20 63 61 6e  20 70 61 69 6e 74 20 73  |tend can paint s|
00000e00  70 72 69 74 65 73 20 75  73 69 6e 67 20 74 68 65  |prites using the|
00000e10  20 6c 69 73 74 20 6f 66  20 65 71 75 69 76 61 6c  | list of equival|
00000e20  65 6e 74 20 63 6f 6c 6f  75 72 73 20 61 6e 64 20  |ent colours and |
00000e30  63 61 6e 0a 63 68 61 6e  67 65 20 74 68 65 20 73  |can.change the s|
00000e40  69 7a 65 20 6f 66 20 74  68 65 20 69 6d 61 67 65  |ize of the image|
00000e50  20 69 6e 74 6f 20 74 68  65 20 62 61 72 67 61 69  | into the bargai|
00000e60  6e 2e 20 54 68 69 73 20  69 73 20 61 6c 6c 20 76  |n. This is all v|
00000e70  65 72 79 20 77 65 6c 6c  20 66 6f 72 20 73 69 6d  |ery well for sim|
00000e80  70 6c 65 0a 70 69 63 74  75 72 65 73 20 6f 72 20  |ple.pictures or |
00000e90  70 69 63 74 75 72 65 73  20 63 72 65 61 74 65 64  |pictures created|
00000ea0  20 64 69 72 65 63 74 6c  79 20 66 6f 72 20 61 20  | directly for a |
00000eb0  70 61 72 74 69 63 75 6c  61 72 20 6d 6f 64 65 2c  |particular mode,|
00000ec0  20 62 75 74 20 77 68 61  74 20 68 61 70 70 65 6e  | but what happen|
00000ed0  73 0a 66 6f 72 20 6d 6f  72 65 20 64 65 74 61 69  |s.for more detai|
00000ee0  6c 65 64 20 69 6e 66 6f  72 6d 61 74 69 6f 6e 20  |led information |
00000ef0  6f 72 20 70 69 63 74 75  72 65 73 20 66 72 6f 6d  |or pictures from|
00000f00  20 6f 74 68 65 72 20 73  6f 75 72 63 65 73 20 77  | other sources w|
00000f10  69 74 68 20 72 65 73 6f  6c 75 74 69 6f 6e 0a 6e  |ith resolution.n|
00000f20  6f 74 20 6d 61 74 63 68  65 64 20 62 79 20 74 68  |ot matched by th|
00000f30  65 20 41 72 63 68 69 6d  65 64 65 73 20 68 61 72  |e Archimedes har|
00000f40  64 77 61 72 65 3f 0a 0a  41 6c 73 6f 20 74 68 65  |dware?..Also the|
00000f50  20 61 62 6f 76 65 20 66  61 63 69 6c 69 74 69 65  | above facilitie|
00000f60  73 20 61 72 65 20 72 61  74 68 65 72 20 62 61 73  |s are rather bas|
00000f70  69 63 3a 20 43 6f 6c 6f  75 72 54 72 61 6e 73 20  |ic: ColourTrans |
00000f80  6d 61 6b 65 73 20 6e 6f  20 65 66 66 6f 72 74 20  |makes no effort |
00000f90  74 6f 20 75 73 65 0a 64  69 74 68 65 72 69 6e 67  |to use.dithering|
00000fa0  20 28 74 68 65 20 70 72  61 63 74 69 73 65 20 6f  | (the practise o|
00000fb0  66 20 70 75 74 74 69 6e  67 20 70 61 74 74 65 72  |f putting patter|
00000fc0  6e 73 20 6f 66 20 64 69  66 66 65 72 65 6e 74 20  |ns of different |
00000fd0  63 6f 6c 6f 75 72 65 64  20 70 69 78 65 6c 73 0a  |coloured pixels.|
00000fe0  74 6f 67 65 74 68 65 72  20 74 6f 20 72 65 70 72  |together to repr|
00000ff0  65 73 65 6e 74 20 6f 74  68 65 72 20 63 6f 6c 6f  |esent other colo|
00001000  75 72 73 29 20 61 6e 64  20 53 70 72 69 74 65 45  |urs) and SpriteE|
00001010  78 74 65 6e 64 20 73 69  6d 70 6c 79 20 64 69 73  |xtend simply dis|
00001020  63 61 72 64 73 0a 61 64  64 69 74 69 6f 6e 61 6c  |cards.additional|
00001030  20 69 6e 66 6f 72 6d 61  74 69 6f 6e 20 69 66 20  | information if |
00001040  72 65 64 75 63 69 6e 67  20 74 68 65 20 70 69 63  |reducing the pic|
00001050  74 75 72 65 20 69 6e 20  73 69 7a 65 20 28 61 6e  |ture in size (an|
00001060  64 20 74 6f 67 65 74 68  65 72 20 74 68 65 79 20  |d together they |
00001070  6d 61 6b 65 0a 6e 6f 20  61 74 74 65 6d 70 74 20  |make.no attempt |
00001080  74 6f 20 65 6e 68 61 6e  63 65 20 74 68 65 20 70  |to enhance the p|
00001090  69 63 74 75 72 65 20 77  68 65 6e 20 6d 61 6b 69  |icture when maki|
000010a0  6e 67 20 69 74 20 6c 61  72 67 65 72 29 2e 20 54  |ng it larger). T|
000010b0  68 65 20 72 65 61 73 6f  6e 20 66 6f 72 20 74 68  |he reason for th|
000010c0  65 73 65 0a 73 68 6f 72  74 63 6f 6d 69 6e 67 73  |ese.shortcomings|
000010d0  20 69 73 20 71 75 69 74  65 20 73 69 6d 70 6c 65  | is quite simple|
000010e0  3a 20 73 70 65 65 64 2e  20 54 68 65 20 61 6c 67  |: speed. The alg|
000010f0  6f 72 69 74 68 6d 20 75  73 65 64 20 69 6e 20 43  |orithm used in C|
00001100  68 61 6e 67 65 46 53 49  20 75 73 65 73 20 31 30  |hangeFSI uses 10|
00001110  35 0a 41 52 4d 20 69 6e  73 74 72 75 63 74 69 6f  |5.ARM instructio|
00001120  6e 73 20 70 65 72 20 70  69 78 65 6c 20 2d 20 61  |ns per pixel - a|
00001130  6e 64 20 74 68 61 74 27  73 20 61 70 61 72 74 20  |nd that's apart |
00001140  66 72 6f 6d 20 61 6e 79  20 69 6e 73 74 72 75 63  |from any instruc|
00001150  74 69 6f 6e 73 20 75 73  65 64 20 74 6f 0a 72 65  |tions used to.re|
00001160  61 64 20 74 68 65 20 69  6d 61 67 65 20 69 6e 2c  |ad the image in,|
00001170  20 63 68 61 6e 67 65 20  69 74 73 20 73 69 7a 65  | change its size|
00001180  20 61 6e 64 20 77 72 69  74 65 20 74 68 65 20 72  | and write the r|
00001190  65 73 75 6c 74 20 6f 75  74 2e 20 46 6f 72 20 63  |esult out. For c|
000011a0  6f 6d 70 61 72 69 73 6f  6e 2c 0a 74 68 65 20 6e  |omparison,.the n|
000011b0  6f 72 6d 61 6c 20 73 70  72 69 74 65 20 70 6c 6f  |ormal sprite plo|
000011c0  74 20 74 61 6b 65 73 20  6f 6e 6c 79 20 6f 6e 65  |t takes only one|
000011d0  20 69 6e 73 74 72 75 63  74 69 6f 6e 20 70 65 72  | instruction per|
000011e0  20 70 69 78 65 6c 20 28  34 20 69 6e 73 74 72 75  | pixel (4 instru|
000011f0  63 74 69 6f 6e 73 20 66  6f 72 0a 66 6f 75 72 20  |ctions for.four |
00001200  38 20 62 69 74 20 70 69  78 65 6c 73 29 2e 20 50  |8 bit pixels). P|
00001210  72 6f 63 65 73 73 69 6e  67 20 61 20 4d 4f 44 45  |rocessing a MODE|
00001220  20 31 35 20 70 69 63 74  75 72 65 20 74 68 75 73  | 15 picture thus|
00001230  20 75 73 65 73 20 75 70  20 74 6f 6f 20 6d 61 6e  | uses up too man|
00001240  79 20 73 65 63 6f 6e 64  73 0a 6f 66 20 41 52 4d  |y seconds.of ARM|
00001250  20 63 70 75 20 74 69 6d  65 20 74 6f 20 69 6d 61  | cpu time to ima|
00001260  67 69 6e 65 20 69 74 20  61 73 20 70 61 72 74 20  |gine it as part |
00001270  6f 66 20 74 68 65 20 69  6e 74 65 72 61 63 74 69  |of the interacti|
00001280  76 65 20 64 65 73 6b 74  6f 70 2e 0a 0a 53 6f 20  |ve desktop...So |
00001290  77 68 61 74 20 64 6f 65  73 20 43 68 61 6e 67 65  |what does Change|
000012a0  46 53 49 20 64 6f 20 74  6f 20 6d 61 6b 65 20 74  |FSI do to make t|
000012b0  68 65 20 73 69 74 75 61  74 69 6f 6e 20 62 65 74  |he situation bet|
000012c0  74 65 72 3f 20 41 6e 64  20 77 68 79 20 64 6f 65  |ter? And why doe|
000012d0  73 20 69 74 20 74 61 6b  65 20 73 6f 0a 6c 6f 6e  |s it take so.lon|
000012e0  67 3f 20 4f 6e 65 20 63  61 6e 20 69 6d 6d 65 64  |g? One can immed|
000012f0  69 61 74 65 6c 79 20 64  72 61 77 20 75 70 20 73  |iately draw up s|
00001300  6f 6d 65 20 64 65 73 69  72 61 62 6c 65 20 70 72  |ome desirable pr|
00001310  6f 70 65 72 74 69 65 73  20 66 6f 72 20 61 6e 79  |operties for any|
00001320  20 73 6f 6c 75 74 69 6f  6e 20 74 6f 0a 74 68 65  | solution to.the|
00001330  20 69 6d 61 67 65 20 63  68 61 6e 67 69 6e 67 20  | image changing |
00001340  70 72 6f 62 6c 65 6d 3a  0a 0a 28 31 29 20 4d 61  |problem:..(1) Ma|
00001350  78 69 6d 69 73 69 6e 67  20 74 68 65 20 76 6f 6c  |ximising the vol|
00001360  75 6d 65 20 6f 66 20 74  68 65 20 63 6f 6c 6f 75  |ume of the colou|
00001370  72 20 63 75 62 65 2e 20  43 6f 6c 6f 75 72 20 72  |r cube. Colour r|
00001380  65 70 72 65 73 65 6e 74  65 64 20 69 6e 20 74 68  |epresented in th|
00001390  65 20 52 65 64 2c 0a 47  72 65 65 6e 20 61 6e 64  |e Red,.Green and|
000013a0  20 42 6c 75 65 20 63 6f  6d 70 75 74 65 72 20 67  | Blue computer g|
000013b0  72 61 70 68 69 63 73 20  73 79 73 74 65 6d 20 63  |raphics system c|
000013c0  61 6e 20 62 65 20 74 68  6f 75 67 68 74 20 6f 66  |an be thought of|
000013d0  20 61 73 20 61 20 70 6f  69 6e 74 20 69 6e 20 61  | as a point in a|
000013e0  20 33 44 0a 63 75 62 65  20 77 68 6f 73 65 20 61  | 3D.cube whose a|
000013f0  78 65 73 20 61 72 65 20  74 68 65 20 72 65 64 2c  |xes are the red,|
00001400  20 67 72 65 65 6e 20 61  6e 64 20 62 6c 75 65 20  | green and blue |
00001410  76 61 6c 75 65 73 2e 20  57 68 61 74 65 76 65 72  |values. Whatever|
00001420  20 63 6c 65 76 65 72 0a  61 70 70 72 6f 78 69 6d  | clever.approxim|
00001430  61 74 69 6f 6e 73 2c 20  64 69 74 68 65 72 69 6e  |ations, ditherin|
00001440  67 20 6f 72 20 65 72 72  6f 72 20 64 69 66 66 75  |g or error diffu|
00001450  73 69 6f 6e 20 74 65 63  68 6e 69 71 75 65 73 20  |sion techniques |
00001460  61 72 65 20 75 73 65 64  2c 20 74 68 65 20 63 6f  |are used, the co|
00001470  6c 6f 75 72 0a 76 6f 6c  75 6d 65 20 73 70 61 6e  |lour.volume span|
00001480  6e 65 64 20 62 79 20 74  68 65 20 72 2c 20 67 20  |ned by the r, g |
00001490  61 6e 64 20 62 20 61 78  65 73 20 69 6e 20 74 68  |and b axes in th|
000014a0  65 20 74 61 72 67 65 74  20 73 68 6f 75 6c 64 20  |e target should |
000014b0  62 65 20 6c 61 72 67 65  20 65 6e 6f 75 67 68 20  |be large enough |
000014c0  74 6f 0a 63 6f 6e 74 61  69 6e 20 74 68 65 20 73  |to.contain the s|
000014d0  6f 75 72 63 65 20 76 6f  6c 75 6d 65 2e 20 49 66  |ource volume. If|
000014e0  20 6e 6f 74 2c 20 74 68  65 6e 20 74 68 65 20 70  | not, then the p|
000014f0  69 63 74 75 72 65 20 77  69 6c 6c 20 61 70 70 65  |icture will appe|
00001500  61 72 20 66 61 64 65 64  20 69 6e 20 73 6f 6d 65  |ar faded in some|
00001510  0a 77 61 79 20 63 6f 6d  70 61 72 65 64 20 74 6f  |.way compared to|
00001520  20 74 68 65 20 6f 72 69  67 69 6e 61 6c 20 28 22  | the original ("|
00001530  74 68 65 20 72 65 64 20  64 6f 65 73 6e 27 74 20  |the red doesn't |
00001540  73 65 65 6d 20 71 75 69  74 65 20 74 68 65 20 73  |seem quite the s|
00001550  61 6d 65 22 29 2e 20 46  6f 72 20 61 0a 73 69 6e  |ame"). For a.sin|
00001560  67 6c 65 20 70 69 63 74  75 72 65 20 61 20 63 6f  |gle picture a co|
00001570  6c 6f 75 72 20 76 6f 6c  75 6d 65 20 6f 6e 6c 79  |lour volume only|
00001580  20 61 73 20 6c 61 72 67  65 20 61 73 20 74 68 65  | as large as the|
00001590  20 69 6e 70 75 74 20 63  6f 75 6c 64 20 62 65 20  | input could be |
000015a0  63 68 6f 73 65 6e 3b 0a  61 6c 74 65 72 6e 61 74  |chosen;.alternat|
000015b0  69 76 65 6c 79 20 66 6f  72 20 61 6e 20 61 72 62  |ively for an arb|
000015c0  69 74 72 61 72 79 20 73  65 74 20 6f 66 20 69 6e  |itrary set of in|
000015d0  70 75 74 20 70 69 63 74  75 72 65 73 2c 20 74 68  |put pictures, th|
000015e0  65 20 63 6f 6c 6f 75 72  20 76 6f 6c 75 6d 65 20  |e colour volume |
000015f0  6f 6e 20 74 68 65 0a 6f  75 74 70 75 74 20 73 79  |on the.output sy|
00001600  73 74 65 6d 20 68 61 73  20 74 6f 20 62 65 20 6d  |stem has to be m|
00001610  61 64 65 20 61 73 20 6c  61 72 67 65 20 61 73 20  |ade as large as |
00001620  70 6f 73 73 69 62 6c 65  2e 20 57 68 65 72 65 20  |possible. Where |
00001630  61 6e 69 6d 61 74 69 6f  6e 20 69 73 20 72 65 71  |animation is req|
00001640  75 69 72 65 64 0a 74 68  65 20 63 6f 6c 6f 75 72  |uired.the colour|
00001650  20 76 6f 6c 75 6d 65 20  68 61 73 20 74 6f 20 62  | volume has to b|
00001660  65 20 63 6f 6e 73 69 73  74 65 6e 74 20 66 6f 72  |e consistent for|
00001670  20 61 6c 6c 20 74 68 65  20 70 69 63 74 75 72 65  | all the picture|
00001680  73 2e 20 57 68 65 6e 20  67 65 6e 65 72 61 74 69  |s. When generati|
00001690  6e 67 0a 74 68 65 20 6c  61 72 67 65 73 74 20 76  |ng.the largest v|
000016a0  6f 6c 75 6d 65 2c 20 69  74 20 69 73 20 69 6d 70  |olume, it is imp|
000016b0  6f 72 74 61 6e 74 20 74  6f 20 75 73 65 20 74 68  |ortant to use th|
000016c0  65 20 73 79 73 74 65 6d  20 68 61 72 64 77 61 72  |e system hardwar|
000016d0  65 20 74 6f 20 74 68 65  20 6c 69 6d 69 74 3a 0a  |e to the limit:.|
000016e0  66 6f 72 20 65 78 61 6d  70 6c 65 2c 20 69 66 20  |for example, if |
000016f0  6f 6e 65 20 68 61 73 20  74 77 6f 20 62 69 74 73  |one has two bits|
00001700  20 6f 66 20 63 6f 6e 74  72 6f 6c 20 6f 76 65 72  | of control over|
00001710  20 74 68 65 20 41 72 63  68 69 6d 65 64 65 73 20  | the Archimedes |
00001720  34 20 62 69 74 20 44 20  74 6f 20 41 0a 63 6f 6e  |4 bit D to A.con|
00001730  76 65 72 74 65 72 73 2c  20 74 68 65 20 6c 61 72  |verters, the lar|
00001740  67 65 73 74 20 72 61 6e  67 65 20 69 73 20 63 6f  |gest range is co|
00001750  76 65 72 65 64 20 62 79  20 76 61 6c 75 65 73 20  |vered by values |
00001760  30 2c 20 35 2c 20 31 30  20 61 6e 64 20 31 35 20  |0, 5, 10 and 15 |
00001770  28 72 61 74 68 65 72 20  74 68 61 6e 0a 30 2c 20  |(rather than.0, |
00001780  34 2c 20 38 20 61 6e 64  20 31 32 29 2e 0a 0a 28  |4, 8 and 12)...(|
00001790  32 29 20 47 69 76 69 6e  67 20 68 75 65 20 63 6f  |2) Giving hue co|
000017a0  6e 73 69 73 74 65 6e 63  79 20 61 74 20 64 69 66  |nsistency at dif|
000017b0  66 65 72 65 6e 74 20 73  61 74 75 72 61 74 69 6f  |ferent saturatio|
000017c0  6e 73 2e 20 46 6f 72 20  65 78 61 6d 70 6c 65 2c  |ns. For example,|
000017d0  20 77 69 74 68 20 61 0a  70 61 6c 65 74 74 65 20  | with a.palette |
000017e0  77 69 74 68 20 64 69 66  66 65 72 65 6e 74 20 6e  |with different n|
000017f0  75 6d 62 65 72 73 20 6f  66 20 62 69 74 73 20 6f  |umbers of bits o|
00001800  66 20 72 2c 20 67 20 61  6e 64 20 62 20 69 74 20  |f r, g and b it |
00001810  6d 61 79 20 62 65 20 69  6d 70 6f 73 73 69 62 6c  |may be impossibl|
00001820  65 20 74 6f 0a 68 61 76  65 20 61 20 63 6f 6e 73  |e to.have a cons|
00001830  69 73 74 65 6e 74 20 73  65 74 20 6f 66 20 63 6f  |istent set of co|
00001840  6c 6f 75 72 73 20 72 65  70 72 65 73 65 6e 74 69  |lours representi|
00001850  6e 67 20 64 65 72 69 76  65 64 20 63 6f 6c 6f 75  |ng derived colou|
00001860  72 73 20 61 74 20 64 69  66 66 65 72 65 6e 74 0a  |rs at different.|
00001870  6c 65 76 65 6c 73 20 6f  66 20 69 6e 74 65 6e 73  |levels of intens|
00001880  69 74 79 2e 20 53 68 61  64 65 73 20 6f 66 20 77  |ity. Shades of w|
00001890  68 69 74 65 20 61 6e 64  20 73 65 63 6f 6e 64 61  |hite and seconda|
000018a0  72 79 20 63 6f 6c 6f 75  72 73 20 28 63 79 61 6e  |ry colours (cyan|
000018b0  2c 20 6d 61 67 65 6e 74  61 20 61 6e 64 0a 79 65  |, magenta and.ye|
000018c0  6c 6c 6f 77 29 20 61 72  65 20 70 61 72 74 69 63  |llow) are partic|
000018d0  75 6c 61 72 6c 79 20 64  69 66 66 69 63 75 6c 74  |ularly difficult|
000018e0  2e 0a 0a 28 33 29 20 57  6f 72 6b 69 6e 67 20 77  |...(3) Working w|
000018f0  69 74 68 20 74 68 65 20  6d 75 6c 74 69 2d 74 61  |ith the multi-ta|
00001900  73 6b 69 6e 67 20 64 65  73 6b 74 6f 70 2e 20 41  |sking desktop. A|
00001910  63 6f 72 6e 20 61 72 65  20 61 73 6b 69 6e 67 20  |corn are asking |
00001920  66 6f 72 20 61 6c 6c 20  6e 65 77 0a 73 6f 66 74  |for all new.soft|
00001930  77 61 72 65 20 74 6f 20  62 65 20 62 75 69 6c 74  |ware to be built|
00001940  20 6f 6e 20 74 68 65 20  6d 75 6c 74 69 74 61 73  | on the multitas|
00001950  6b 69 6e 67 20 73 79 73  74 65 6d 2e 20 54 68 69  |king system. Thi|
00001960  73 20 69 6d 70 6c 69 65  73 20 74 68 61 74 20 74  |s implies that t|
00001970  68 65 20 70 61 6c 65 74  74 65 0a 73 68 6f 75 6c  |he palette.shoul|
00001980  64 20 6e 6f 74 20 62 65  20 63 68 61 6e 67 65 64  |d not be changed|
00001990  20 28 6f 72 20 74 68 61  74 20 74 68 65 20 61 67  | (or that the ag|
000019a0  72 65 65 6d 65 6e 74 20  6f 66 20 61 6c 6c 20 70  |reement of all p|
000019b0  72 6f 67 72 61 6d 73 20  63 75 72 72 65 6e 74 6c  |rograms currentl|
000019c0  79 20 72 75 6e 6e 69 6e  67 0a 69 73 20 6f 62 74  |y running.is obt|
000019d0  61 69 6e 65 64 20 66 69  72 73 74 29 2e 0a 0a 54  |ained first)...T|
000019e0  68 65 20 64 65 73 6b 74  6f 70 20 28 64 65 66 61  |he desktop (defa|
000019f0  75 6c 74 29 20 70 61 6c  65 74 74 65 20 69 6e 20  |ult) palette in |
00001a00  74 68 65 20 32 35 36 20  63 6f 6c 6f 75 72 20 6d  |the 256 colour m|
00001a10  6f 64 65 73 20 28 65 2e  67 2e 20 6d 6f 64 65 73  |odes (e.g. modes|
00001a20  20 31 33 2c 20 31 35 2c  20 32 31 2c 0a 32 34 20  | 13, 15, 21,.24 |
00001a30  61 6e 64 20 32 38 29 20  69 73 20 71 75 69 74 65  |and 28) is quite|
00001a40  20 77 65 6c 6c 20 64 65  73 69 67 6e 65 64 2e 20  | well designed. |
00001a50  49 74 20 64 6f 65 73 20  68 61 76 65 20 74 68 65  |It does have the|
00001a60  20 70 72 6f 70 65 72 74  69 65 73 20 6f 66 20 28  | properties of (|
00001a70  31 29 20 61 6e 64 20 28  32 29 0a 28 69 74 20 65  |1) and (2).(it e|
00001a80  76 65 6e 20 68 61 73 20  31 36 20 73 68 61 64 65  |ven has 16 shade|
00001a90  73 20 6f 66 20 67 72 65  79 29 20 61 6e 64 20 61  |s of grey) and a|
00001aa0  75 74 6f 6d 61 74 69 63  61 6c 6c 79 20 73 61 74  |utomatically sat|
00001ab0  69 73 66 69 65 73 20 28  33 29 2e 20 49 74 20 69  |isfies (3). It i|
00001ac0  73 20 75 73 65 64 20 62  79 0a 6d 61 6e 79 20 41  |s used by.many A|
00001ad0  63 6f 72 6e 20 70 72 6f  67 72 61 6d 73 20 28 44  |corn programs (D|
00001ae0  72 61 77 2c 20 50 61 69  6e 74 29 20 61 6e 64 20  |raw, Paint) and |
00001af0  62 79 20 65 78 74 65 72  6e 61 6c 20 70 72 6f 67  |by external prog|
00001b00  72 61 6d 73 20 28 45 75  63 6c 69 64 2c 20 50 72  |rams (Euclid, Pr|
00001b10  6f 41 72 74 69 73 61 6e  2c 0a 41 74 65 6c 69 65  |oArtisan,.Atelie|
00001b20  72 2c 20 2e 2e 29 20 74  6f 20 67 72 65 61 74 20  |r, ..) to great |
00001b30  65 66 66 65 63 74 20 61  6e 64 20 69 73 20 61 20  |effect and is a |
00001b40  73 61 66 65 20 63 68 6f  69 63 65 20 66 6f 72 20  |safe choice for |
00001b50  43 68 61 6e 67 65 46 53  49 2e 20 54 68 65 72 65  |ChangeFSI. There|
00001b60  20 61 72 65 20 74 77 6f  0a 77 61 79 73 20 43 68  | are two.ways Ch|
00001b70  61 6e 67 65 46 53 49 20  63 61 6e 20 63 68 6f 6f  |angeFSI can choo|
00001b80  73 65 20 61 20 63 6f 6c  6f 75 72 3a 0a 0a 28 61  |se a colour:..(a|
00001b90  29 20 61 20 6d 65 74 68  6f 64 20 77 68 69 63 68  |) a method which|
00001ba0  20 64 65 72 69 76 65 73  20 76 61 6c 75 65 73 20  | derives values |
00001bb0  66 6f 72 20 72 2c 20 67  2c 20 62 20 61 6e 64 20  |for r, g, b and |
00001bc0  74 69 6e 74 20 61 6c 67  6f 72 69 74 68 6d 69 63  |tint algorithmic|
00001bd0  61 6c 6c 79 20 28 6e 6f  0a 73 75 66 66 69 78 29  |ally (no.suffix)|
00001be0  20 28 73 75 69 74 61 62  6c 65 20 6f 6e 6c 79 20  | (suitable only |
00001bf0  66 6f 72 20 74 68 65 20  64 65 66 61 75 6c 74 20  |for the default |
00001c00  52 49 53 43 20 4f 53 20  32 35 36 20 63 6f 6c 6f  |RISC OS 256 colo|
00001c10  75 72 20 70 61 6c 65 74  74 65 29 0a 0a 28 62 29  |ur palette)..(b)|
00001c20  20 73 65 61 72 63 68 20  74 68 65 20 70 61 6c 65  | search the pale|
00001c30  74 74 65 20 66 6f 72 20  74 68 65 20 63 6c 6f 73  |tte for the clos|
00001c40  65 73 74 20 63 6f 6c 6f  75 72 20 28 72 20 73 75  |est colour (r su|
00001c50  66 66 69 78 29 2e 20 54  68 65 20 70 72 65 63 69  |ffix). The preci|
00001c60  73 65 20 6d 65 74 68 6f  64 20 62 79 0a 77 68 69  |se method by.whi|
00001c70  63 68 20 74 68 69 73 20  69 73 20 64 6f 6e 65 20  |ch this is done |
00001c80  69 73 20 74 68 65 20 73  75 62 6a 65 63 74 20 6f  |is the subject o|
00001c90  66 20 61 6e 6f 74 68 65  72 20 64 6f 63 75 6d 65  |f another docume|
00001ca0  6e 74 2e 0a 0a 41 53 49  44 45 3a 20 74 68 65 20  |nt...ASIDE: the |
00001cb0  63 6c 6f 73 65 73 74 20  63 6f 6c 6f 75 72 20 69  |closest colour i|
00001cc0  73 20 63 68 6f 73 65 6e  20 73 75 63 68 20 74 68  |s chosen such th|
00001cd0  61 74 20 74 68 65 20 64  69 73 74 61 6e 63 65 20  |at the distance |
00001ce0  62 65 74 77 65 65 6e 20  74 68 65 20 74 72 75 65  |between the true|
00001cf0  0a 63 6f 6c 6f 75 72 20  61 6e 64 20 74 68 65 20  |.colour and the |
00001d00  63 68 6f 69 63 65 20 69  73 20 6d 69 6e 69 6d 69  |choice is minimi|
00001d10  73 65 64 20 69 6e 20 74  68 65 20 63 6f 6c 6f 75  |sed in the colou|
00001d20  72 20 63 75 62 65 20 73  70 61 63 65 2e 20 53 69  |r cube space. Si|
00001d30  6e 63 65 20 74 68 65 20  68 75 6d 61 6e 0a 65 79  |nce the human.ey|
00001d40  65 20 69 73 20 6d 6f 72  65 20 73 65 6e 73 69 74  |e is more sensit|
00001d50  69 76 65 20 74 6f 20 67  72 65 65 6e 2c 20 74 68  |ive to green, th|
00001d60  65 6e 20 72 65 64 20 61  6e 64 20 6c 61 73 74 6c  |en red and lastl|
00001d70  79 20 62 6c 75 65 2c 20  74 68 65 20 64 69 73 74  |y blue, the dist|
00001d80  61 6e 63 65 20 66 75 6e  63 74 69 6f 6e 0a 69 73  |ance function.is|
00001d90  20 77 65 69 67 68 74 65  64 20 31 30 2c 20 33 20  | weighted 10, 3 |
00001da0  61 6e 64 20 31 20 69 6e  20 67 72 65 65 6e 27 73  |and 1 in green's|
00001db0  20 66 61 76 6f 75 72 2e  0a 0a 57 69 74 68 20 74  | favour...With t|
00001dc0  68 65 20 31 36 20 63 6f  6c 6f 75 72 20 6d 6f 64  |he 16 colour mod|
00001dd0  65 73 20 28 65 2e 67 2e  20 6d 6f 64 65 73 20 39  |es (e.g. modes 9|
00001de0  2c 20 31 32 2c 20 31 36  2c 20 32 30 20 61 6e 64  |, 12, 16, 20 and|
00001df0  20 32 37 29 20 74 68 65  20 64 65 66 61 75 6c 74  | 27) the default|
00001e00  20 70 61 6c 65 74 74 65  0a 64 6f 65 73 20 6e 6f  | palette.does no|
00001e10  74 20 73 61 74 69 73 66  79 20 28 31 29 20 61 6e  |t satisfy (1) an|
00001e20  64 20 28 32 29 20 75 6e  6c 65 73 73 20 74 68 65  |d (2) unless the|
00001e30  20 6f 75 74 70 75 74 20  69 73 20 70 75 72 65 6c  | output is purel|
00001e40  79 20 73 68 61 64 65 73  20 6f 66 20 67 72 65 79  |y shades of grey|
00001e50  20 2d 0a 43 68 61 6e 67  65 46 53 49 20 63 61 6e  | -.ChangeFSI can|
00001e60  20 75 73 65 20 65 69 74  68 65 72 20 38 20 67 72  | use either 8 gr|
00001e70  65 79 73 20 28 66 6f 72  20 74 68 65 20 64 65 73  |eys (for the des|
00001e80  6b 74 6f 70 29 20 6f 72  20 31 36 20 67 72 65 79  |ktop) or 16 grey|
00001e90  73 20 28 6f 75 74 20 6f  66 20 74 68 65 0a 64 65  |s (out of the.de|
00001ea0  73 6b 74 6f 70 20 6f 72  20 77 69 74 68 20 74 68  |sktop or with th|
00001eb0  65 20 64 65 73 6b 74 6f  70 20 70 61 6c 65 74 74  |e desktop palett|
00001ec0  65 20 61 6c 74 65 72 65  64 20 74 6f 20 70 72 6f  |e altered to pro|
00001ed0  76 69 64 65 20 31 36 20  67 72 65 79 73 29 2e 20  |vide 16 greys). |
00001ee0  46 6f 72 20 63 6f 6c 6f  75 72 0a 72 65 70 72 65  |For colour.repre|
00001ef0  73 65 6e 74 61 74 69 6f  6e 2c 20 43 68 61 6e 67  |sentation, Chang|
00001f00  65 46 53 49 20 63 61 6e  20 65 69 74 68 65 72 3a  |eFSI can either:|
00001f10  0a 0a 28 61 29 20 75 73  65 20 31 20 62 69 74 20  |..(a) use 1 bit |
00001f20  6f 66 20 72 65 64 2c 20  31 20 62 69 74 20 6f 66  |of red, 1 bit of|
00001f30  20 67 72 65 65 6e 20 61  6e 64 20 31 20 62 69 74  | green and 1 bit|
00001f40  20 6f 66 20 62 6c 75 65  20 28 69 2e 65 2e 20 74  | of blue (i.e. t|
00001f50  68 65 20 73 74 61 6e 64  61 72 64 20 38 0a 64 69  |he standard 8.di|
00001f60  67 69 74 61 6c 20 63 6f  6c 6f 75 72 73 20 42 6c  |gital colours Bl|
00001f70  61 63 6b 2c 20 52 65 64  2c 20 47 72 65 65 6e 2c  |ack, Red, Green,|
00001f80  20 42 6c 75 65 2c 20 59  65 6c 6c 6f 77 2c 20 4d  | Blue, Yellow, M|
00001f90  61 67 65 6e 74 61 2c 20  43 79 61 6e 20 61 6e 64  |agenta, Cyan and|
00001fa0  20 57 68 69 74 65 29 2e  20 54 68 69 73 0a 73 70  | White). This.sp|
00001fb0  61 6e 73 20 74 68 65 20  63 6f 6c 6f 75 72 20 63  |ans the colour c|
00001fc0  75 62 65 20 61 6e 64 20  69 73 20 68 75 65 20 63  |ube and is hue c|
00001fd0  6f 6e 73 69 73 74 65 6e  74 2c 20 62 75 74 20 64  |onsistent, but d|
00001fe0  6f 65 73 6e 27 74 20 75  73 65 20 74 68 65 20 66  |oesn't use the f|
00001ff0  75 6c 6c 20 72 61 6e 67  65 20 6f 66 0a 62 69 74  |ull range of.bit|
00002000  73 20 70 72 6f 76 69 64  65 64 20 69 6e 20 74 68  |s provided in th|
00002010  65 20 66 6f 72 6d 61 74  2e 20 43 6f 6c 6f 75 72  |e format. Colour|
00002020  54 72 61 6e 73 20 63 61  6e 20 6d 61 70 20 74 68  |Trans can map th|
00002030  69 73 20 74 6f 20 74 68  65 20 64 65 73 6b 74 6f  |is to the deskto|
00002040  70 20 77 69 74 68 20 74  68 65 0a 73 74 61 6e 64  |p with the.stand|
00002050  61 72 64 20 70 61 6c 65  74 74 65 20 77 69 74 68  |ard palette with|
00002060  20 66 61 69 72 20 73 75  63 63 65 73 73 2c 20 65  | fair success, e|
00002070  78 63 65 70 74 20 66 6f  72 20 74 68 65 20 6c 61  |xcept for the la|
00002080  63 6b 20 6f 66 20 6d 61  67 65 6e 74 61 20 28 66  |ck of magenta (f|
00002090  75 6c 6c 0a 72 65 64 2b  66 75 6c 6c 20 62 6c 75  |ull.red+full blu|
000020a0  65 29 20 69 6e 20 74 68  65 20 70 61 6c 65 74 74  |e) in the palett|
000020b0  65 2e 20 41 20 62 65 74  74 65 72 20 72 65 73 75  |e. A better resu|
000020c0  6c 74 20 63 61 6e 20 62  65 20 61 63 68 69 65 76  |lt can be achiev|
000020d0  65 64 20 62 79 20 73 65  74 74 69 6e 67 20 36 20  |ed by setting 6 |
000020e0  6f 66 0a 74 68 65 20 63  6f 6c 6f 75 72 73 20 69  |of.the colours i|
000020f0  6e 20 74 68 65 20 70 61  6c 65 74 74 65 20 74 6f  |n the palette to|
00002100  20 72 65 64 2c 20 67 72  65 65 6e 2c 20 79 65 6c  | red, green, yel|
00002110  6c 6f 77 2c 20 62 6c 75  65 2c 20 6d 61 67 65 6e  |low, blue, magen|
00002120  74 61 20 61 6e 64 20 63  79 61 6e 2e 20 53 69 6e  |ta and cyan. Sin|
00002130  63 65 0a 43 6f 6c 6f 75  72 54 72 61 6e 73 20 77  |ce.ColourTrans w|
00002140  69 6c 6c 20 6d 61 70 20  74 68 65 20 63 6f 6c 6f  |ill map the colo|
00002150  75 72 73 20 61 6e 79 77  61 79 2c 20 69 74 20 64  |urs anyway, it d|
00002160  6f 65 73 6e 27 74 20 6d  61 74 74 65 72 20 77 68  |oesn't matter wh|
00002170  69 63 68 20 36 2c 20 62  75 74 20 74 68 65 0a 6d  |ich 6, but the.m|
00002180  6f 73 74 20 63 6f 6e 73  69 73 74 65 6e 74 20 76  |ost consistent v|
00002190  61 6c 75 65 73 20 61 72  65 20 38 3d 62 6c 75 65  |alues are 8=blue|
000021a0  2c 20 39 3d 79 65 6c 6c  6f 77 2c 20 31 30 3d 67  |, 9=yellow, 10=g|
000021b0  72 65 65 6e 2c 20 31 31  3d 72 65 64 2c 20 31 33  |reen, 11=red, 13|
000021c0  3d 63 79 61 6e 2c 0a 31  34 3d 6d 61 67 65 6e 74  |=cyan,.14=magent|
000021d0  61 20 28 6c 65 61 76 69  6e 67 20 30 2d 37 2c 20  |a (leaving 0-7, |
000021e0  31 32 20 61 6e 64 20 31  35 20 75 6e 63 68 61 6e  |12 and 15 unchan|
000021f0  67 65 64 29 2e 20 54 68  69 73 20 6f 70 74 69 6f  |ged). This optio|
00002200  6e 20 69 73 20 73 65 6c  65 63 74 65 64 20 62 79  |n is selected by|
00002210  20 61 20 22 64 22 0a 28  64 69 67 69 74 61 6c 20  | a "d".(digital |
00002220  52 47 42 29 20 73 75 66  66 69 78 20 74 6f 20 74  |RGB) suffix to t|
00002230  68 65 20 70 72 6f 67 72  61 6d 27 73 20 6d 6f 64  |he program's mod|
00002240  65 20 61 72 67 75 6d 65  6e 74 2e 0a 0a 6f 72 20  |e argument...or |
00002250  28 62 29 20 73 65 61 72  63 68 20 74 68 65 20 70  |(b) search the p|
00002260  61 6c 65 74 74 65 20 66  6f 72 20 74 68 65 20 63  |alette for the c|
00002270  6c 6f 73 65 73 74 20 63  6f 6c 6f 75 72 20 28 72  |losest colour (r|
00002280  20 73 75 66 66 69 78 29  20 5b 43 68 61 6e 67 65  | suffix) [Change|
00002290  46 53 49 20 6e 65 65 64  73 20 74 6f 0a 62 65 20  |FSI needs to.be |
000022a0  69 6e 20 74 68 65 20 31  36 20 63 6f 6c 6f 75 72  |in the 16 colour|
000022b0  20 6d 6f 64 65 20 69 6e  20 6f 72 64 65 72 20 74  | mode in order t|
000022c0  6f 20 72 65 61 64 20 74  68 65 20 70 61 6c 65 74  |o read the palet|
000022d0  74 65 5d 0a 0a 57 69 74  68 20 74 68 65 20 34 20  |te]..With the 4 |
000022e0  63 6f 6c 6f 75 72 20 6d  6f 64 65 73 20 28 65 2e  |colour modes (e.|
000022f0  67 2e 20 6d 6f 64 65 73  20 38 2c 20 31 31 2c 20  |g. modes 8, 11, |
00002300  31 39 20 61 6e 64 20 32  36 29 20 43 68 61 6e 67  |19 and 26) Chang|
00002310  65 46 53 49 20 69 73 20  72 65 61 6c 6c 79 0a 70  |eFSI is really.p|
00002320  75 73 68 65 64 2e 20 53  68 61 64 65 73 20 6f 66  |ushed. Shades of|
00002330  20 67 72 65 79 20 6f 75  74 70 75 74 20 69 73 20  | grey output is |
00002340  64 6f 6e 65 20 77 69 74  68 20 74 68 65 20 30 2c  |done with the 0,|
00002350  20 35 2c 20 31 30 2c 20  31 35 20 6c 65 76 65 6c  | 5, 10, 15 level|
00002360  20 70 61 6c 65 74 74 65  2e 20 42 75 74 0a 68 6f  | palette. But.ho|
00002370  77 20 63 61 6e 20 63 6f  6c 6f 75 72 20 62 65 20  |w can colour be |
00002380  64 6f 6e 65 3f 20 46 6f  72 20 65 78 61 6d 70 6c  |done? For exampl|
00002390  65 2c 20 65 61 63 68 20  70 69 78 65 6c 20 63 61  |e, each pixel ca|
000023a0  6e 20 64 69 73 70 6c 61  79 20 6f 6e 6c 79 20 6f  |n display only o|
000023b0  6e 65 20 6f 66 20 28 73  61 79 29 0a 62 6c 61 63  |ne of (say).blac|
000023c0  6b 2c 20 72 65 64 2c 20  67 72 65 65 6e 20 6f 72  |k, red, green or|
000023d0  20 62 6c 75 65 2e 20 54  68 69 73 20 66 61 69 6c  | blue. This fail|
000023e0  73 20 74 6f 20 73 70 61  6e 20 74 68 65 20 63 6f  |s to span the co|
000023f0  6c 6f 75 72 20 63 75 62  65 20 28 69 74 20 64 6f  |lour cube (it do|
00002400  65 73 20 6f 6e 6c 79 0a  68 61 6c 66 20 6f 66 20  |es only.half of |
00002410  69 74 29 2c 20 68 6f 77  65 76 65 72 2c 20 73 6f  |it), however, so|
00002420  20 62 6c 61 63 6b 2c 20  63 79 61 6e 2c 20 6d 61  | black, cyan, ma|
00002430  67 65 6e 74 61 20 61 6e  64 20 79 65 6c 6c 6f 77  |genta and yellow|
00002440  20 61 72 65 20 75 73 65  64 20 69 6e 73 74 65 61  | are used instea|
00002450  64 2e 20 54 68 65 0a 72  65 73 74 20 68 61 73 20  |d. The.rest has |
00002460  74 6f 20 62 65 20 6c 65  66 74 20 74 6f 20 6c 75  |to be left to lu|
00002470  63 6b 3a 20 74 68 65 72  65 20 69 73 20 6e 6f 20  |ck: there is no |
00002480  77 61 79 20 69 74 20 63  61 6e 20 61 70 70 72 6f  |way it can appro|
00002490  78 69 6d 61 74 65 20 74  6f 20 70 75 72 65 20 73  |ximate to pure s|
000024a0  68 61 64 65 73 0a 6f 66  20 72 65 64 2c 20 67 72  |hades.of red, gr|
000024b0  65 65 6e 20 6f 72 20 62  6c 75 65 2e 20 34 20 62  |een or blue. 4 b|
000024c0  69 74 20 63 6f 6c 6f 75  72 20 70 69 63 74 75 72  |it colour pictur|
000024d0  65 73 20 63 61 6e 20 62  65 20 73 65 65 6e 20 6f  |es can be seen o|
000024e0  6e 20 74 68 65 20 64 65  73 6b 74 6f 70 20 69 6e  |n the desktop in|
000024f0  20 31 36 0a 63 6f 6c 6f  75 72 20 6d 6f 64 65 73  | 16.colour modes|
00002500  20 77 69 74 68 20 74 68  65 20 61 62 6f 76 65 20  | with the above |
00002510  70 61 6c 65 74 74 65 20  6f 72 20 69 6e 20 32 35  |palette or in 25|
00002520  36 20 63 6f 6c 6f 75 72  20 6d 6f 64 65 73 2e 20  |6 colour modes. |
00002530  54 68 69 73 20 6f 70 74  69 6f 6e 20 69 73 20 62  |This option is b|
00002540  79 20 61 0a 22 63 22 20  73 75 66 66 69 78 2e 20  |y a."c" suffix. |
00002550  49 66 20 79 6f 75 20 63  61 6e 20 70 72 6f 76 69  |If you can provi|
00002560  64 65 20 61 20 62 65 74  74 65 72 20 70 61 6c 65  |de a better pale|
00002570  74 74 65 2c 20 74 68 65  6e 20 43 68 61 6e 67 65  |tte, then Change|
00002580  46 53 49 20 63 61 6e 20  75 73 65 20 69 74 20 77  |FSI can use it w|
00002590  69 74 68 0a 74 68 65 20  22 72 22 20 73 75 66 66  |ith.the "r" suff|
000025a0  69 78 20 73 65 61 72 63  68 20 6d 65 74 68 6f 64  |ix search method|
000025b0  2e 0a 0a 57 69 74 68 20  32 20 63 6f 6c 6f 75 72  |...With 2 colour|
000025c0  20 6d 6f 64 65 73 20 28  65 2e 67 2e 20 6d 6f 64  | modes (e.g. mod|
000025d0  65 73 20 30 2c 20 31 38  2c 20 32 33 20 61 6e 64  |es 0, 18, 23 and|
000025e0  20 32 35 29 20 70 69 78  65 6c 73 20 61 72 65 20  | 25) pixels are |
000025f0  65 69 74 68 65 72 20 4f  4e 20 6f 72 20 4f 46 46  |either ON or OFF|
00002600  2c 0a 43 68 61 6e 67 65  46 53 49 20 77 69 6c 6c  |,.ChangeFSI will|
00002610  20 6f 6e 6c 79 20 64 6f  20 73 68 61 64 65 73 20  | only do shades |
00002620  6f 66 20 67 72 65 79 20  6f 75 74 70 75 74 2e 2e  |of grey output..|
00002630  2e 2e 20 48 6f 77 65 76  65 72 2c 20 74 68 65 20  |.. However, the |
00002640  6d 65 74 68 6f 64 20 75  73 65 64 20 63 61 6e 0a  |method used can.|
00002650  62 65 20 76 61 72 69 65  64 20 28 73 65 65 20 6c  |be varied (see l|
00002660  61 74 65 72 29 2e 0a 0a  53 6f 20 74 68 61 74 27  |ater)...So that'|
00002670  73 20 74 68 65 20 63 61  6e 76 61 73 20 43 68 61  |s the canvas Cha|
00002680  6e 67 65 46 53 49 20 68  61 73 20 74 6f 20 77 6f  |ngeFSI has to wo|
00002690  72 6b 20 6f 6e 2e 20 48  6f 77 20 64 6f 65 73 20  |rk on. How does |
000026a0  69 74 20 64 69 73 70 6c  61 79 20 74 68 65 20 69  |it display the i|
000026b0  6e 70 75 74 0a 72 61 6e  67 65 20 6f 66 20 63 6f  |nput.range of co|
000026c0  6c 6f 75 72 73 20 6f 6e  20 74 68 65 73 65 20 6f  |lours on these o|
000026d0  75 74 70 75 74 73 3f 20  54 68 65 20 61 6e 73 77  |utputs? The answ|
000026e0  65 72 20 69 73 2c 20 61  73 20 73 74 61 74 65 64  |er is, as stated|
000026f0  20 61 62 6f 76 65 2c 20  64 69 74 68 65 72 69 6e  | above, ditherin|
00002700  67 3a 0a 74 68 65 20 70  72 6f 63 65 73 73 20 6f  |g:.the process o|
00002710  66 20 61 70 70 72 6f 78  69 6d 61 74 69 6e 67 20  |f approximating |
00002720  69 6e 74 65 6e 73 69 74  79 20 76 61 72 69 61 74  |intensity variat|
00002730  69 6f 6e 73 20 77 69 74  68 20 70 61 74 74 65 72  |ions with patter|
00002740  6e 65 64 20 61 72 65 61  73 2e 20 54 68 65 72 65  |ned areas. There|
00002750  0a 61 72 65 20 74 77 6f  20 62 61 73 69 63 20 74  |.are two basic t|
00002760  79 70 65 73 20 6f 66 20  64 69 74 68 65 72 69 6e  |ypes of ditherin|
00002770  67 20 74 65 63 68 6e 69  71 75 65 3a 20 74 68 61  |g technique: tha|
00002780  74 20 75 73 65 64 20 74  6f 20 70 72 69 6e 74 20  |t used to print |
00002790  63 6f 6c 6f 75 72 20 6d  61 67 61 7a 69 6e 65 73  |colour magazines|
000027a0  0a 61 6e 64 20 6e 65 77  73 70 61 70 65 72 20 70  |.and newspaper p|
000027b0  68 6f 74 6f 67 72 61 70  68 73 20 22 63 6c 75 73  |hotographs "clus|
000027c0  74 65 72 65 64 20 64 6f  74 20 64 69 74 68 65 72  |tered dot dither|
000027d0  22 20 2d 20 74 68 65 20  73 69 7a 65 20 6f 66 20  |" - the size of |
000027e0  74 68 65 20 64 6f 74 20  6f 66 20 69 6e 6b 0a 67  |the dot of ink.g|
000027f0  69 76 65 73 20 74 68 65  20 69 6e 74 65 6e 73 69  |ives the intensi|
00002800  74 79 3b 20 61 6e 64 20  74 68 61 74 20 75 73 65  |ty; and that use|
00002810  64 20 6f 6e 20 64 6f 74  20 6d 61 74 72 69 78 20  |d on dot matrix |
00002820  64 69 73 70 6c 61 79 73  2c 20 66 6f 72 20 65 78  |displays, for ex|
00002830  61 6d 70 6c 65 20 74 68  65 20 67 72 65 79 0a 6c  |ample the grey.l|
00002840  65 76 65 6c 20 70 61 74  74 65 72 6e 73 20 75 73  |evel patterns us|
00002850  65 64 20 62 79 20 31 20  62 69 74 20 70 65 72 20  |ed by 1 bit per |
00002860  70 69 78 65 6c 20 6d 6f  64 65 20 6f 6e 20 74 68  |pixel mode on th|
00002870  65 20 64 65 73 6b 74 6f  70 20 22 64 69 73 70 65  |e desktop "dispe|
00002880  72 73 65 64 20 64 6f 74  0a 64 69 74 68 65 72 22  |rsed dot.dither"|
00002890  20 77 68 65 72 65 20 74  68 65 20 61 76 65 72 61  | where the avera|
000028a0  67 65 20 6e 75 6d 62 65  72 20 6f 66 20 64 6f 74  |ge number of dot|
000028b0  73 20 69 6e 20 74 68 65  20 61 72 65 61 20 67 69  |s in the area gi|
000028c0  76 65 73 20 74 68 65 20  69 6e 74 65 6e 73 69 74  |ves the intensit|
000028d0  79 2e 0a 0a 57 68 79 20  64 6f 65 73 20 74 68 65  |y...Why does the|
000028e0  20 77 6f 72 6c 64 20 6e  65 65 64 20 74 77 6f 20  | world need two |
000028f0  64 69 66 66 65 72 65 6e  74 20 74 65 63 68 6e 69  |different techni|
00002900  71 75 65 73 3f 20 57 65  6c 6c 2c 20 64 69 66 66  |ques? Well, diff|
00002910  65 72 65 6e 74 20 64 65  76 69 63 65 73 0a 72 65  |erent devices.re|
00002920  70 72 6f 64 75 63 65 20  70 69 78 65 6c 73 20 64  |produce pixels d|
00002930  69 66 66 65 72 65 6e 74  6c 79 2e 20 54 68 65 20  |ifferently. The |
00002940  22 69 64 65 61 6c 20 73  71 75 61 72 65 22 20 70  |"ideal square" p|
00002950  69 78 65 6c 73 20 70 72  6f 64 75 63 65 64 20 62  |ixels produced b|
00002960  79 20 61 6e 20 4c 43 44  20 61 72 65 0a 70 65 72  |y an LCD are.per|
00002970  66 65 63 74 20 66 6f 72  20 64 69 73 70 65 72 73  |fect for dispers|
00002980  65 64 20 64 6f 74 20 64  69 74 68 65 72 3b 20 61  |ed dot dither; a|
00002990  20 43 52 54 20 70 72 6f  64 75 63 65 73 20 61 20  | CRT produces a |
000029a0  67 61 75 73 73 69 61 6e  20 73 70 6f 74 20 28 61  |gaussian spot (a|
000029b0  20 63 69 72 63 6c 65 20  6f 72 0a 65 6c 6c 69 70  | circle or.ellip|
000029c0  73 65 20 77 68 69 63 68  20 64 65 63 61 79 73 20  |se which decays |
000029d0  69 6e 20 69 6e 74 65 6e  73 69 74 79 20 74 6f 77  |in intensity tow|
000029e0  61 72 64 73 20 74 68 65  20 65 64 67 65 73 29 20  |ards the edges) |
000029f0  69 6e 73 74 65 61 64 20  6f 66 20 61 20 73 71 75  |instead of a squ|
00002a00  61 72 65 20 2d 0a 64 69  73 70 65 72 73 65 64 20  |are -.dispersed |
00002a10  64 6f 74 20 64 69 74 68  65 72 20 77 6f 72 6b 73  |dot dither works|
00002a20  20 77 65 6c 6c 3b 20 61  20 64 6f 74 20 6d 61 74  | well; a dot mat|
00002a30  72 69 78 20 69 6d 70 61  63 74 20 70 72 69 6e 74  |rix impact print|
00002a40  65 72 20 6f 72 20 61 20  22 77 72 69 74 65 20 62  |er or a "write b|
00002a50  6c 61 63 6b 22 0a 6c 61  73 65 72 20 70 72 69 6e  |lack".laser prin|
00002a60  74 65 72 20 70 72 6f 64  75 63 65 20 6c 61 72 67  |ter produce larg|
00002a70  65 20 64 6f 74 73 20 28  64 69 61 6d 65 74 65 72  |e dots (diameter|
00002a80  20 61 74 20 6c 65 61 73  74 20 53 51 52 28 32 29  | at least SQR(2)|
00002a90  20 6f 76 65 72 20 75 6e  69 74 20 70 69 78 65 6c  | over unit pixel|
00002aa0  0a 73 71 75 61 72 65 29  20 61 6e 64 20 74 68 75  |.square) and thu|
00002ab0  73 20 6d 61 6b 65 20 70  69 63 74 75 72 65 73 20  |s make pictures |
00002ac0  74 6f 6f 20 64 61 72 6b  20 69 66 20 64 69 73 70  |too dark if disp|
00002ad0  65 72 73 65 64 20 64 6f  74 20 64 69 74 68 65 72  |ersed dot dither|
00002ae0  20 69 73 20 75 73 65 64  3b 20 61 0a 22 77 72 69  | is used; a."wri|
00002af0  74 65 20 77 68 69 74 65  22 20 6c 61 73 65 72 20  |te white" laser |
00002b00  70 72 69 6e 74 65 72 20  70 72 69 6e 74 73 20 6e  |printer prints n|
00002b10  65 67 61 74 69 76 65 20  22 77 68 69 74 65 20 64  |egative "white d|
00002b20  6f 74 73 22 20 6f 6e 20  61 20 62 6c 61 63 6b 20  |ots" on a black |
00002b30  66 69 65 6c 64 20 61 6e  64 0a 74 68 75 73 20 22  |field and.thus "|
00002b40  63 61 76 65 73 20 69 6e  22 20 74 68 65 20 73 69  |caves in" the si|
00002b50  64 65 73 20 6f 66 20 70  69 78 65 6c 73 20 6d 61  |des of pixels ma|
00002b60  6b 69 6e 67 20 70 69 63  74 75 72 65 73 20 74 6f  |king pictures to|
00002b70  6f 20 77 68 69 74 65 20  77 69 74 68 20 64 69 73  |o white with dis|
00002b80  70 65 72 73 65 64 0a 64  6f 74 20 64 69 74 68 65  |persed.dot dithe|
00002b90  72 2e 20 43 6c 75 73 74  65 72 65 64 20 64 6f 74  |r. Clustered dot|
00002ba0  20 64 69 74 68 65 72 20  72 65 64 75 63 65 73 20  | dither reduces |
00002bb0  74 68 65 20 65 66 66 65  63 74 73 20 6f 66 20 6d  |the effects of m|
00002bc0  69 73 2d 73 69 7a 65 64  20 70 69 78 65 6c 73 20  |is-sized pixels |
00002bd0  62 79 0a 65 6e 73 75 72  69 6e 67 20 74 68 65 79  |by.ensuring they|
00002be0  20 61 72 65 20 61 64 6a  61 63 65 6e 74 20 28 61  | are adjacent (a|
00002bf0  6e 64 20 74 68 75 73 20  74 68 65 20 65 72 72 6f  |nd thus the erro|
00002c00  72 20 69 73 20 63 6f 6e  66 69 6e 65 64 20 74 6f  |r is confined to|
00002c10  20 74 68 65 20 70 65 72  69 70 68 65 72 79 20 6f  | the periphery o|
00002c20  66 0a 74 68 65 20 73 68  61 70 65 29 20 62 75 74  |f.the shape) but|
00002c30  20 74 68 69 73 20 64 6f  65 73 20 68 61 76 65 20  | this does have |
00002c40  61 20 63 6f 73 74 20 69  6e 20 70 6f 6f 72 65 72  |a cost in poorer|
00002c50  20 72 65 73 6f 6c 75 74  69 6f 6e 2e 0a 0a 53 69  | resolution...Si|
00002c60  6e 63 65 20 43 68 61 6e  67 65 46 53 49 27 73 20  |nce ChangeFSI's |
00002c70  63 6f 6c 6f 75 72 20 6f  72 20 67 72 65 79 73 63  |colour or greysc|
00002c80  61 6c 65 20 6f 75 74 70  75 74 20 69 73 20 74 6f  |ale output is to|
00002c90  20 43 52 54 73 20 28 6f  72 20 4c 43 44 73 20 69  | CRTs (or LCDs i|
00002ca0  6e 20 73 6f 6d 65 0a 64  69 73 74 61 6e 74 20 66  |n some.distant f|
00002cb0  75 74 75 72 65 29 20 69  74 20 61 75 74 6f 6d 61  |uture) it automa|
00002cc0  74 69 63 61 6c 6c 79 20  75 73 65 73 20 61 20 64  |tically uses a d|
00002cd0  69 73 70 65 72 73 65 64  20 64 6f 74 20 64 69 74  |ispersed dot dit|
00002ce0  68 65 72 2e 20 4d 6f 6e  6f 63 68 72 6f 6d 65 20  |her. Monochrome |
00002cf0  6f 75 74 70 75 74 0a 63  6f 75 6c 64 20 62 65 20  |output.could be |
00002d00  66 6f 72 20 74 68 65 20  73 63 72 65 65 6e 20 6f  |for the screen o|
00002d10  72 20 66 6f 72 20 61 20  70 72 69 6e 74 65 72 3a  |r for a printer:|
00002d20  20 74 68 65 20 75 73 65  72 20 63 61 6e 20 73 65  | the user can se|
00002d30  6c 65 63 74 20 62 65 74  77 65 65 6e 20 64 69 73  |lect between dis|
00002d40  70 65 72 73 65 64 0a 61  6e 64 20 63 6c 75 73 74  |persed.and clust|
00002d50  65 72 65 64 20 6d 65 74  68 6f 64 73 20 62 79 20  |ered methods by |
00002d60  61 64 64 69 6e 67 20 61  20 76 61 72 69 6f 75 73  |adding a various|
00002d70  20 73 75 66 66 69 63 65  73 20 28 22 63 22 2c 20  | suffices ("c", |
00002d80  22 64 22 20 6f 72 20 22  74 22 29 20 74 6f 20 74  |"d" or "t") to t|
00002d90  68 65 0a 6d 6f 64 65 20  6e 75 6d 62 65 72 20 66  |he.mode number f|
00002da0  6f 72 20 63 6c 75 73 74  65 72 65 64 20 6f 75 74  |or clustered out|
00002db0  70 75 74 2e 20 46 6f 72  20 22 63 22 20 74 68 65  |put. For "c" the|
00002dc0  20 61 6c 67 6f 72 69 74  68 6d 20 28 64 75 65 20  | algorithm (due |
00002dd0  74 6f 20 52 6f 62 65 72  74 20 4c 20 47 61 72 64  |to Robert L Gard|
00002de0  2c 0a 31 39 37 36 29 20  61 70 70 72 6f 78 69 6d  |,.1976) approxim|
00002df0  61 74 65 73 20 74 6f 6e  65 73 20 69 6e 20 74 68  |ates tones in th|
00002e00  65 20 72 61 6e 67 65 20  30 2e 2e 31 36 20 28 31  |e range 0..16 (1|
00002e10  37 20 6c 65 76 65 6c 73  29 20 62 79 20 75 73 69  |7 levels) by usi|
00002e20  6e 67 20 30 2e 2e 31 36  20 22 6f 6e 22 0a 70 69  |ng 0..16 "on".pi|
00002e30  78 65 6c 73 20 69 6e 20  61 20 34 20 62 79 20 34  |xels in a 4 by 4|
00002e40  20 63 65 6c 6c 2e 20 46  6f 72 20 22 64 22 20 74  | cell. For "d" t|
00002e50  68 65 20 61 6c 67 6f 72  69 74 68 6d 20 28 64 65  |he algorithm (de|
00002e60  76 65 6c 6f 70 65 64 20  62 79 20 6d 65 2c 20 62  |veloped by me, b|
00002e70  75 74 20 73 69 6d 69 6c  61 72 20 74 6f 0a 47 61  |ut similar to.Ga|
00002e80  72 64 27 73 29 20 61 70  70 72 6f 78 69 6d 61 74  |rd's) approximat|
00002e90  65 73 20 74 6f 6e 65 73  20 69 6e 20 74 68 65 20  |es tones in the |
00002ea0  72 61 6e 67 65 20 30 2e  2e 34 20 28 35 20 6c 65  |range 0..4 (5 le|
00002eb0  76 65 6c 73 29 20 62 79  20 75 73 69 6e 67 20 30  |vels) by using 0|
00002ec0  2e 2e 34 20 22 6f 6e 22  0a 70 69 78 65 6c 73 20  |..4 "on".pixels |
00002ed0  69 6e 20 61 20 32 20 62  79 20 32 20 63 65 6c 6c  |in a 2 by 2 cell|
00002ee0  2e 20 46 6f 72 20 22 74  22 20 74 68 65 20 61 6c  |. For "t" the al|
00002ef0  67 6f 72 69 74 68 6d 20  28 64 69 74 74 6f 20 61  |gorithm (ditto a|
00002f00  73 20 22 64 22 29 20 61  70 70 72 6f 78 69 6d 61  |s "d") approxima|
00002f10  74 65 73 0a 74 6f 6e 65  73 20 69 6e 20 74 68 65  |tes.tones in the|
00002f20  20 72 61 6e 67 65 20 30  2e 2e 39 20 28 31 30 20  | range 0..9 (10 |
00002f30  6c 65 76 65 6c 73 29 20  62 79 20 75 73 69 6e 67  |levels) by using|
00002f40  20 30 2e 2e 39 20 22 6f  6e 22 20 70 69 78 65 6c  | 0..9 "on" pixel|
00002f50  73 20 69 6e 20 61 20 33  20 62 79 20 33 20 63 65  |s in a 3 by 3 ce|
00002f60  6c 6c 2e 0a 54 68 65 20  22 6f 6e 22 20 70 69 78  |ll..The "on" pix|
00002f70  65 6c 73 20 61 72 65 20  63 61 72 65 66 75 6c 6c  |els are carefull|
00002f80  79 20 63 68 6f 73 65 6e  20 74 6f 20 70 72 6f 76  |y chosen to prov|
00002f90  69 64 65 3a 20 28 61 29  20 73 79 6d 6d 65 74 72  |ide: (a) symmetr|
00002fa0  79 20 6f 66 20 77 68 69  74 65 2f 62 6c 61 63 6b  |y of white/black|
00002fb0  0a 61 6e 64 20 62 6c 61  63 6b 2f 77 68 69 74 65  |.and black/white|
00002fc0  20 70 61 74 74 65 72 6e  73 20 28 62 29 20 64 69  | patterns (b) di|
00002fd0  61 67 6f 6e 61 6c 6c 79  20 6f 72 69 65 6e 74 65  |agonally oriente|
00002fe0  64 20 64 6f 74 20 67 72  69 64 2e 20 54 68 65 20  |d dot grid. The |
00002ff0  64 69 61 67 6f 6e 61 6c  20 61 6e 67 6c 65 0a 72  |diagonal angle.r|
00003000  65 64 75 63 65 73 20 74  68 65 20 65 79 65 27 73  |educes the eye's|
00003010  20 61 62 69 6c 69 74 79  20 74 6f 20 73 65 65 20  | ability to see |
00003020  74 68 65 20 72 65 63 74  61 6e 67 75 6c 61 72 20  |the rectangular |
00003030  70 61 74 74 65 72 6e 73  20 70 72 6f 64 75 63 65  |patterns produce|
00003040  64 2e 20 54 68 65 20 76  61 72 69 6f 75 73 0a 73  |d. The various.s|
00003050  69 7a 65 73 20 6f 66 20  74 68 65 20 68 61 6c 66  |izes of the half|
00003060  74 6f 6e 65 20 63 65 6c  6c 20 61 6c 6c 6f 77 20  |tone cell allow |
00003070  73 6f 6d 65 20 74 72 61  64 65 20 6f 66 66 20 62  |some trade off b|
00003080  65 74 77 65 65 6e 20 72  65 70 72 65 73 65 6e 74  |etween represent|
00003090  69 6e 67 20 74 68 65 20  74 6f 6e 61 6c 0a 76 61  |ing the tonal.va|
000030a0  6c 75 65 73 20 63 6f 72  72 65 63 74 6c 79 20 61  |lues correctly a|
000030b0  6e 64 20 6c 6f 73 73 20  6f 66 20 72 65 73 6f 6c  |nd loss of resol|
000030c0  75 74 69 6f 6e 2e 20 53  74 61 72 74 20 77 69 74  |ution. Start wit|
000030d0  68 20 22 63 22 20 61 6e  64 20 70 72 6f 67 72 65  |h "c" and progre|
000030e0  73 73 20 74 6f 20 22 74  22 20 61 6e 64 0a 74 68  |ss to "t" and.th|
000030f0  65 6e 20 22 64 22 20 69  66 20 74 68 65 20 72 65  |en "d" if the re|
00003100  73 6f 6c 75 74 69 6f 6e  20 69 73 20 6e 6f 74 20  |solution is not |
00003110  61 63 63 65 70 74 61 62  6c 65 2e 0a 0a 43 68 61  |acceptable...Cha|
00003120  6e 67 65 46 53 49 20 63  61 6e 20 67 65 6e 65 72  |ngeFSI can gener|
00003130  61 74 65 20 72 65 61 73  6f 6e 61 62 6c 65 20 70  |ate reasonable p|
00003140  69 63 74 75 72 65 73 20  6f 6e 20 22 77 72 69 74  |ictures on "writ|
00003150  65 20 62 6c 61 63 6b 22  20 70 72 69 6e 74 65 72  |e black" printer|
00003160  73 20 77 69 74 68 20 61  0a 64 69 73 70 65 72 73  |s with a.dispers|
00003170  65 64 20 64 6f 74 20 64  69 74 68 65 72 20 62 79  |ed dot dither by|
00003180  20 75 73 69 6e 67 20 74  68 65 20 22 2d 62 6c 61  | using the "-bla|
00003190  63 6b 22 20 70 61 72 61  6d 65 74 65 72 3b 20 68  |ck" parameter; h|
000031a0  6f 77 65 76 65 72 20 69  6d 61 67 65 73 20 70 72  |owever images pr|
000031b0  6f 64 75 63 65 64 0a 6c  69 6b 65 20 74 68 69 73  |oduced.like this|
000031c0  20 64 6f 20 6e 6f 74 20  70 68 6f 74 6f 63 6f 70  | do not photocop|
000031d0  79 20 61 74 20 61 6c 6c  20 77 65 6c 6c 20 28 74  |y at all well (t|
000031e0  68 65 20 70 68 6f 74 6f  63 6f 70 69 65 72 20 6d  |he photocopier m|
000031f0  61 6b 65 73 20 74 68 65  20 64 6f 74 73 20 62 6c  |akes the dots bl|
00003200  61 63 6b 65 72 0a 61 67  61 69 6e 21 29 2e 20 54  |acker.again!). T|
00003210  68 65 20 70 61 72 61 6d  65 74 65 72 20 74 6f 20  |he parameter to |
00003220  2d 62 6c 61 63 6b 20 28  64 65 66 61 75 6c 74 20  |-black (default |
00003230  76 61 6c 75 65 20 33 32  2c 20 72 61 6e 67 65 20  |value 32, range |
00003240  30 2e 2e 31 32 38 29 20  74 65 6c 6c 73 0a 43 68  |0..128) tells.Ch|
00003250  61 6e 67 65 46 53 49 20  68 6f 77 20 6d 75 63 68  |angeFSI how much|
00003260  20 6c 61 72 67 65 72 20  74 68 61 6e 20 74 68 65  | larger than the|
00003270  20 69 64 65 61 6c 20 73  71 75 61 72 65 20 70 69  | ideal square pi|
00003280  78 65 6c 20 74 68 65 20  64 6f 74 73 20 70 72 6f  |xel the dots pro|
00003290  64 75 63 65 64 20 62 79  20 74 68 65 0a 70 72 69  |duced by the.pri|
000032a0  6e 74 65 72 20 61 72 65  20 2d 20 31 32 38 20 63  |nter are - 128 c|
000032b0  6f 72 72 65 73 70 6f 6e  64 73 20 74 6f 20 61 6e  |orresponds to an|
000032c0  20 69 6e 6b 65 64 20 64  6f 74 20 63 6f 76 65 72  | inked dot cover|
000032d0  69 6e 67 20 66 6f 75 72  20 74 69 6d 65 73 20 74  |ing four times t|
000032e0  68 65 20 61 72 65 61 20  6f 66 0a 74 68 65 20 69  |he area of.the i|
000032f0  64 65 61 6c 20 62 6c 61  63 6b 20 73 71 75 61 72  |deal black squar|
00003300  65 20 70 69 78 65 6c 20  28 61 6e 64 20 74 68 69  |e pixel (and thi|
00003310  73 20 77 69 6c 6c 20 67  65 6e 65 72 61 6c 6c 79  |s will generally|
00003320  20 6d 65 61 6e 20 43 68  61 6e 67 65 46 53 49 20  | mean ChangeFSI |
00003330  70 72 6f 64 75 63 65 73  0a 61 6e 20 65 6e 74 69  |produces.an enti|
00003340  72 65 6c 79 20 77 68 69  74 65 20 6f 75 74 70 75  |rely white outpu|
00003350  74 21 29 2e 20 56 61 6c  75 65 73 20 61 62 6f 76  |t!). Values abov|
00003360  65 20 36 34 20 67 69 76  65 20 72 61 74 68 65 72  |e 64 give rather|
00003370  20 70 6f 6f 72 20 72 65  73 75 6c 74 73 20 6f 6e  | poor results on|
00003380  20 73 6f 6d 65 0a 70 69  63 74 75 72 65 73 20 62  | some.pictures b|
00003390  75 74 20 6d 61 79 20 62  65 20 77 6f 72 74 68 20  |ut may be worth |
000033a0  65 78 70 65 72 69 6d 65  6e 74 69 6e 67 20 77 69  |experimenting wi|
000033b0  74 68 2e 20 54 68 65 20  64 65 66 61 75 6c 74 20  |th. The default |
000033c0  69 73 20 33 32 2c 20 61  20 64 6f 74 20 63 6f 76  |is 32, a dot cov|
000033d0  65 72 69 6e 67 0a 35 30  25 20 6d 6f 72 65 20 61  |ering.50% more a|
000033e0  72 65 61 20 74 68 61 6e  20 74 68 65 20 73 71 75  |rea than the squ|
000033f0  61 72 65 20 70 69 78 65  6c 20 28 74 68 65 20 6d  |are pixel (the m|
00003400  69 6e 69 6d 75 6d 20 63  69 72 63 6c 65 20 65 6e  |inimum circle en|
00003410  63 6c 6f 73 69 6e 67 20  74 68 65 20 70 69 78 65  |closing the pixe|
00003420  6c 0a 73 71 75 61 72 65  29 2e 20 53 6f 6d 65 20  |l.square). Some |
00003430  70 72 69 6e 74 65 72 73  20 70 72 6f 64 75 63 65  |printers produce|
00003440  20 64 6f 74 73 20 6f 66  20 28 70 73 65 75 64 6f  | dots of (pseudo|
00003450  2d 72 61 6e 64 6f 6d 6c  79 29 20 76 61 72 79 69  |-randomly) varyi|
00003460  6e 67 20 73 69 7a 65 73  20 61 6e 64 0a 62 6c 61  |ng sizes and.bla|
00003470  63 6b 20 63 6f 72 72 65  63 74 69 6f 6e 20 6d 61  |ck correction ma|
00003480  79 20 6e 6f 74 20 68 65  6c 70 20 77 69 74 68 20  |y not help with |
00003490  74 68 65 73 65 20 28 74  68 65 20 70 69 63 74 75  |these (the pictu|
000034a0  72 65 20 6c 6f 6f 6b 73  20 22 6e 6f 69 73 79 22  |re looks "noisy"|
000034b0  29 20 69 6e 20 77 68 69  63 68 0a 63 61 73 65 20  |) in which.case |
000034c0  75 73 65 20 6f 6e 65 20  6f 66 20 74 68 65 20 63  |use one of the c|
000034d0  6c 75 73 74 65 72 65 64  20 6f 75 74 70 75 74 20  |lustered output |
000034e0  6d 65 74 68 6f 64 73 2e  20 2d 62 6c 61 63 6b 20  |methods. -black |
000034f0  63 6f 72 72 65 63 74 69  6f 6e 20 6d 61 6b 65 73  |correction makes|
00003500  20 70 69 63 74 75 72 65  73 0a 6f 6e 20 74 68 65  | pictures.on the|
00003510  20 73 63 72 65 65 6e 20  6c 6f 6f 6b 20 76 65 72  | screen look ver|
00003520  79 20 70 61 6c 65 2c 20  73 69 6e 63 65 2c 20 69  |y pale, since, i|
00003530  66 20 61 6e 79 74 68 69  6e 67 2c 20 62 6c 61 63  |f anything, blac|
00003540  6b 20 70 69 78 65 6c 73  20 6f 6e 20 73 63 72 65  |k pixels on scre|
00003550  65 6e 20 61 72 65 0a 73  6d 61 6c 6c 65 72 20 74  |en are.smaller t|
00003560  68 61 6e 20 74 68 65 20  69 64 65 61 6c 20 73 71  |han the ideal sq|
00003570  75 61 72 65 2e 0a 0a 5b  61 73 69 64 65 3a 20 74  |uare...[aside: t|
00003580  6f 20 70 72 69 6e 74 20  74 68 65 73 65 20 70 69  |o print these pi|
00003590  63 74 75 72 65 73 2c 20  79 6f 75 20 6e 65 65 64  |ctures, you need|
000035a0  20 61 20 6d 65 74 68 6f  64 20 77 68 69 63 68 20  | a method which |
000035b0  63 6f 70 69 65 73 20 74  68 65 20 70 69 78 65 6c  |copies the pixel|
000035c0  73 0a 43 68 61 6e 67 65  46 53 49 20 68 61 73 20  |s.ChangeFSI has |
000035d0  6d 61 64 65 20 65 78 61  63 74 6c 79 20 74 6f 20  |made exactly to |
000035e0  74 68 6f 73 65 20 6f 66  20 74 68 65 20 6f 75 74  |those of the out|
000035f0  70 75 74 20 64 65 76 69  63 65 2e 20 55 73 69 6e  |put device. Usin|
00003600  67 20 21 50 61 69 6e 74  2c 20 73 63 61 6c 65 20  |g !Paint, scale |
00003610  58 0a 61 6e 64 20 59 20  62 79 20 39 30 3a 33 30  |X.and Y by 90:30|
00003620  30 20 66 6f 72 20 61 20  33 30 30 64 70 69 20 70  |0 for a 300dpi p|
00003630  72 69 6e 74 65 72 2e 5d  0a 0a 49 6e 20 61 6c 6c  |rinter.]..In all|
00003640  20 63 61 73 65 73 2c 20  61 6e 20 61 70 70 72 6f  | cases, an appro|
00003650  78 69 6d 61 74 69 6f 6e  20 74 6f 20 61 20 63 6f  |ximation to a co|
00003660  6c 6f 75 72 20 77 69 6c  6c 20 70 72 6f 64 75 63  |lour will produc|
00003670  65 20 61 6e 20 65 72 72  6f 72 20 28 77 68 69 63  |e an error (whic|
00003680  68 20 6d 69 67 68 74 0a  70 6f 73 73 69 62 6c 79  |h might.possibly|
00003690  20 62 65 20 7a 65 72 6f  20 69 66 20 43 68 61 6e  | be zero if Chan|
000036a0  67 65 46 53 49 20 69 73  20 76 65 72 79 20 6c 75  |geFSI is very lu|
000036b0  63 6b 79 29 2e 20 43 68  61 6e 67 65 46 53 49 20  |cky). ChangeFSI |
000036c0  74 72 61 63 6b 73 20 74  68 65 73 65 20 65 72 72  |tracks these err|
000036d0  6f 72 73 20 61 6e 64 0a  65 6e 73 75 72 65 73 20  |ors and.ensures |
000036e0  74 68 61 74 20 6f 76 65  72 20 77 69 64 65 20 61  |that over wide a|
000036f0  72 65 61 73 20 74 68 65  72 65 20 69 73 20 6e 6f  |reas there is no|
00003700  20 6f 76 65 72 61 6c 6c  20 65 72 72 6f 72 20 75  | overall error u|
00003710  73 69 6e 67 20 61 20 74  65 63 68 6e 69 71 75 65  |sing a technique|
00003720  20 63 61 6c 6c 65 64 0a  22 65 72 72 6f 72 20 64  | called."error d|
00003730  69 66 66 75 73 69 6f 6e  22 2c 20 66 69 72 73 74  |iffusion", first|
00003740  20 64 65 76 69 73 65 64  20 62 79 20 52 20 57 20  | devised by R W |
00003750  46 6c 6f 79 64 20 61 6e  64 20 4c 20 53 74 65 69  |Floyd and L Stei|
00003760  6e 62 65 72 67 20 69 6e  20 31 39 37 35 2e 20 49  |nberg in 1975. I|
00003770  6e 20 74 68 69 73 0a 74  65 63 68 6e 69 71 75 65  |n this.technique|
00003780  20 74 68 65 20 61 70 70  72 6f 78 69 6d 61 74 69  | the approximati|
00003790  6f 6e 20 69 73 20 6d 61  64 65 20 61 6e 64 20 74  |on is made and t|
000037a0  68 65 20 65 72 72 6f 72  20 64 69 73 74 72 69 62  |he error distrib|
000037b0  75 74 65 64 20 74 6f 20  6e 65 61 72 62 79 20 70  |uted to nearby p|
000037c0  69 78 65 6c 73 0a 69 6e  20 74 68 65 20 66 6f 6c  |ixels.in the fol|
000037d0  6c 6f 77 69 6e 67 20 72  61 74 69 6f 73 3a 0a 0a  |lowing ratios:..|
000037e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000037f0  63 75 72 72 65 6e 74 20  70 69 78 65 6c 20 20 20  |current pixel   |
00003800  37 2f 31 36 20 6f 66 20  65 72 72 6f 72 0a 33 2f  |7/16 of error.3/|
00003810  31 36 20 6f 66 20 65 72  72 6f 72 20 20 20 35 2f  |16 of error   5/|
00003820  31 36 20 6f 66 20 65 72  72 6f 72 20 20 20 31 2f  |16 of error   1/|
00003830  31 36 20 6f 66 20 65 72  72 6f 72 0a 0a 43 68 61  |16 of error..Cha|
00003840  6e 67 65 46 53 49 20 67  65 74 73 20 73 6f 6d 65  |ngeFSI gets some|
00003850  20 6f 66 20 69 74 73 20  6e 61 6d 65 20 66 72 6f  | of its name fro|
00003860  6d 20 46 6c 6f 79 64 20  61 6e 64 20 53 74 65 69  |m Floyd and Stei|
00003870  6e 62 65 72 67 2e 20 41  64 64 69 74 69 6f 6e 61  |nberg. Additiona|
00003880  6c 6c 79 2c 0a 43 68 61  6e 67 65 46 53 49 20 73  |lly,.ChangeFSI s|
00003890  63 61 6e 73 20 74 68 72  6f 75 67 68 20 74 68 65  |cans through the|
000038a0  20 70 69 63 74 75 72 65  20 69 6e 20 61 20 73 65  | picture in a se|
000038b0  72 70 65 6e 74 69 6e 65  20 66 61 73 68 69 6f 6e  |rpentine fashion|
000038c0  2c 20 64 6f 69 6e 67 20  61 20 72 6f 77 20 6f 66  |, doing a row of|
000038d0  0a 70 69 78 65 6c 73 20  6c 65 66 74 20 74 6f 20  |.pixels left to |
000038e0  72 69 67 68 74 20 66 6f  6c 6c 6f 77 65 64 20 62  |right followed b|
000038f0  79 20 74 68 65 20 6e 65  78 74 20 72 6f 77 20 72  |y the next row r|
00003900  69 67 68 74 20 74 6f 20  6c 65 66 74 2e 20 54 68  |ight to left. Th|
00003910  69 73 20 72 65 64 75 63  65 73 20 74 68 65 0a 70  |is reduces the.p|
00003920  72 6f 62 61 62 69 6c 69  74 79 20 6f 66 20 72 65  |robability of re|
00003930  67 75 6c 61 72 20 70 61  74 74 65 72 6e 73 20 77  |gular patterns w|
00003940  68 69 63 68 20 74 68 65  20 65 79 65 20 69 73 20  |hich the eye is |
00003950  73 65 6e 73 69 74 69 76  65 20 74 6f 2e 20 54 68  |sensitive to. Th|
00003960  65 20 66 69 6e 61 6c 20  49 20 6f 66 0a 74 68 65  |e final I of.the|
00003970  20 6e 61 6d 65 20 69 73  20 66 6f 72 20 49 6e 74  | name is for Int|
00003980  65 67 65 72 3a 20 43 68  61 6e 67 65 46 53 49 20  |eger: ChangeFSI |
00003990  64 6f 65 73 20 61 6c 6c  20 69 74 73 20 77 6f 72  |does all its wor|
000039a0  6b 20 69 6e 20 33 32 20  62 69 74 20 66 69 78 65  |k in 32 bit fixe|
000039b0  64 20 70 6f 69 6e 74 0a  69 6e 74 65 67 65 72 20  |d point.integer |
000039c0  61 72 69 74 68 6d 65 74  69 63 20 28 77 69 74 68  |arithmetic (with|
000039d0  20 74 68 65 20 70 6f 69  6e 74 20 61 74 20 62 69  | the point at bi|
000039e0  74 20 32 38 29 20 69 6e  73 74 65 61 64 20 6f 66  |t 28) instead of|
000039f0  20 66 6c 6f 61 74 69 6e  67 20 70 6f 69 6e 74 2e  | floating point.|
00003a00  0a 44 69 74 68 65 72 69  6e 67 20 63 61 6e 20 62  |.Dithering can b|
00003a10  65 20 74 75 72 6e 65 64  20 6f 66 66 20 75 73 69  |e turned off usi|
00003a20  6e 67 20 75 73 69 6e 67  20 22 44 69 73 61 62 6c  |ng using "Disabl|
00003a30  65 20 44 69 74 68 65 72  69 6e 67 22 20 6f 6e 20  |e Dithering" on |
00003a40  74 68 65 20 50 72 6f 63  65 73 73 69 6e 67 0a 64  |the Processing.d|
00003a50  69 61 6c 6f 67 75 65 20  28 22 2d 6e 6f 64 69 74  |ialogue ("-nodit|
00003a60  68 65 72 22 20 6f 6e 20  74 68 65 20 63 6f 6d 6d  |her" on the comm|
00003a70  61 6e 64 20 6c 69 6e 65  29 20 77 68 69 63 68 20  |and line) which |
00003a80  61 74 20 6c 65 61 73 74  20 61 6c 6c 6f 77 73 20  |at least allows |
00003a90  79 6f 75 20 74 6f 20 73  65 65 20 68 6f 77 0a 77  |you to see how.w|
00003aa0  65 6c 6c 20 69 74 20 64  6f 65 73 21 0a 0a 54 68  |ell it does!..Th|
00003ab0  65 20 63 6f 6e 76 65 72  73 69 6f 6e 20 66 72 6f  |e conversion fro|
00003ac0  6d 20 6f 6e 65 20 63 6f  6c 6f 75 72 20 72 61 6e  |m one colour ran|
00003ad0  67 65 20 74 6f 20 61 6e  6f 74 68 65 72 20 69 73  |ge to another is|
00003ae0  20 6d 61 64 65 20 61 74  20 74 68 65 20 73 61 6d  | made at the sam|
00003af0  65 20 74 69 6d 65 20 61  73 20 61 0a 63 68 61 6e  |e time as a.chan|
00003b00  67 65 20 69 6e 20 73 69  7a 65 20 6f 66 20 74 68  |ge in size of th|
00003b10  65 20 69 6d 61 67 65 2e  20 53 69 7a 65 20 69 73  |e image. Size is|
00003b20  20 63 68 61 6e 67 65 64  20 62 79 20 72 61 74 69  | changed by rati|
00003b30  6f 73 20 6f 66 20 61 72  65 61 73 20 62 65 74 77  |os of areas betw|
00003b40  65 65 6e 20 74 68 65 0a  69 6e 70 75 74 20 61 6e  |een the.input an|
00003b50  64 20 6f 75 74 70 75 74  3a 20 74 68 65 20 74 6f  |d output: the to|
00003b60  74 61 6c 20 77 65 69 67  68 74 20 6f 66 20 72 2c  |tal weight of r,|
00003b70  20 67 2c 20 61 6e 64 20  62 20 69 6e 20 74 68 65  | g, and b in the|
00003b80  20 73 6f 75 72 63 65 20  61 72 65 61 20 69 73 0a  | source area is.|
00003b90  63 61 6c 63 75 6c 61 74  65 64 20 75 73 69 6e 67  |calculated using|
00003ba0  20 74 68 65 20 66 69 78  65 64 20 70 6f 69 6e 74  | the fixed point|
00003bb0  20 61 72 69 74 68 6d 65  74 69 63 20 61 6e 64 20  | arithmetic and |
00003bc0  74 68 69 73 20 72 65 73  75 6c 74 20 69 73 20 74  |this result is t|
00003bd0  68 65 6e 0a 61 70 70 72  6f 78 69 6d 61 74 65 64  |hen.approximated|
00003be0  20 74 6f 20 74 68 65 20  6f 75 74 70 75 74 20 75  | to the output u|
00003bf0  73 69 6e 67 20 74 68 65  20 65 72 72 6f 72 20 64  |sing the error d|
00003c00  69 66 66 75 73 69 6f 6e  20 74 6f 20 70 72 65 73  |iffusion to pres|
00003c10  65 72 76 65 20 69 6e 66  6f 72 6d 61 74 69 6f 6e  |erve information|
00003c20  0a 28 66 6f 72 20 65 78  61 6d 70 6c 65 2c 20 63  |.(for example, c|
00003c30  6f 6e 73 69 64 65 72 20  68 61 6c 76 69 6e 67 20  |onsider halving |
00003c40  69 6e 20 73 69 7a 65 20  61 6e 20 69 6d 61 67 65  |in size an image|
00003c50  20 77 69 74 68 20 61 64  6a 61 63 65 6e 74 20 70  | with adjacent p|
00003c60  69 78 65 6c 73 20 6f 66  0a 69 6e 74 65 6e 73 69  |ixels of.intensi|
00003c70  74 69 65 73 20 31 20 61  6e 64 20 32 3b 20 74 68  |ties 1 and 2; th|
00003c80  65 20 6f 75 74 70 75 74  20 70 69 78 65 6c 20 6e  |e output pixel n|
00003c90  65 65 64 73 20 74 6f 20  62 65 20 76 61 6c 75 65  |eeds to be value|
00003ca0  20 31 2e 35 2c 20 73 6f  20 74 68 65 20 30 2e 35  | 1.5, so the 0.5|
00003cb0  20 65 72 72 6f 72 0a 69  73 20 73 65 6e 74 20 74  | error.is sent t|
00003cc0  6f 20 61 64 6a 61 63 65  6e 74 20 70 69 78 65 6c  |o adjacent pixel|
00003cd0  73 20 74 6f 20 6b 65 65  70 20 74 68 65 20 6f 76  |s to keep the ov|
00003ce0  65 72 61 6c 6c 20 63 6f  6c 6f 75 72 20 74 68 65  |erall colour the|
00003cf0  20 73 61 6d 65 29 2e 20  54 68 65 20 73 69 7a 65  | same). The size|
00003d00  0a 63 68 61 6e 67 65 20  69 73 20 65 78 70 72 65  |.change is expre|
00003d10  73 73 65 64 20 61 73 20  61 20 72 61 74 69 6f 20  |ssed as a ratio |
00003d20  6f 66 20 6f 75 74 70 75  74 20 74 6f 20 69 6e 70  |of output to inp|
00003d30  75 74 20 28 65 2e 67 2e  20 34 30 3a 32 30 29 20  |ut (e.g. 40:20) |
00003d40  77 68 69 63 68 20 43 68  61 6e 67 65 46 53 49 0a  |which ChangeFSI.|
00003d50  72 65 64 75 63 65 73 20  74 6f 20 74 68 65 20 73  |reduces to the s|
00003d60  6d 61 6c 6c 65 73 74 20  70 6f 73 73 69 62 6c 65  |mallest possible|
00003d70  20 74 65 72 6d 73 20 28  32 3a 31 20 69 6e 20 74  | terms (2:1 in t|
00003d80  68 69 73 20 63 61 73 65  29 20 73 6f 20 74 68 61  |his case) so tha|
00003d90  74 20 79 6f 75 20 61 72  65 20 66 72 65 65 0a 74  |t you are free.t|
00003da0  6f 20 67 69 76 65 20 76  61 6c 75 65 73 20 6c 69  |o give values li|
00003db0  6b 65 20 32 35 36 3a 35  31 32 20 69 66 20 74 68  |ke 256:512 if th|
00003dc0  61 74 27 73 20 77 68 61  74 20 79 6f 75 20 6d 65  |at's what you me|
00003dd0  61 6e 21 20 53 69 7a 65  20 63 68 61 6e 67 65 20  |an! Size change |
00003de0  69 73 20 65 69 74 68 65  72 20 62 6f 74 68 0a 78  |is either both.x|
00003df0  20 61 6e 64 20 79 20 28  69 66 20 6f 6e 65 20 72  | and y (if one r|
00003e00  61 74 69 6f 20 69 73 20  67 69 76 65 6e 29 20 6f  |atio is given) o|
00003e10  72 20 73 65 70 61 72 61  74 65 20 78 20 61 6e 64  |r separate x and|
00003e20  20 79 20 28 69 66 20 74  77 6f 20 72 61 74 69 6f  | y (if two ratio|
00003e30  73 20 61 72 65 20 67 69  76 65 6e 29 2e 0a 4e 6f  |s are given)..No|
00003e40  74 65 20 74 68 61 74 20  74 68 65 20 73 69 7a 65  |te that the size|
00003e50  20 6f 66 20 61 20 52 49  53 43 20 4f 53 20 70 69  | of a RISC OS pi|
00003e60  78 65 6c 20 69 73 20 6b  6e 6f 77 6e 2c 20 73 6f  |xel is known, so|
00003e70  20 63 68 61 6e 67 69 6e  67 20 66 72 6f 6d 20 28  | changing from (|
00003e80  73 61 79 29 20 6d 6f 64  65 20 32 31 0a 74 6f 20  |say) mode 21.to |
00003e90  28 73 61 79 29 20 6d 6f  64 65 20 31 33 20 64 6f  |(say) mode 13 do|
00003ea0  65 73 20 6e 6f 74 20 6e  65 65 64 20 61 6e 79 20  |es not need any |
00003eb0  61 64 64 69 74 69 6f 6e  61 6c 20 73 70 65 63 69  |additional speci|
00003ec0  66 69 65 64 20 73 63 61  6c 69 6e 67 2e 20 54 68  |fied scaling. Th|
00003ed0  65 20 66 75 6c 6c 20 73  69 7a 65 0a 6f 75 74 70  |e full size.outp|
00003ee0  75 74 20 66 6f 72 20 6d  6f 64 65 20 32 31 20 69  |ut for mode 21 i|
00003ef0  73 20 74 68 65 20 72 65  66 65 72 65 6e 63 65 2c  |s the reference,|
00003f00  20 73 6f 20 73 63 61 6c  65 20 74 6f 20 36 34 30  | so scale to 640|
00003f10  20 62 79 20 35 31 32 2e  20 41 20 63 6f 6d 6d 6f  | by 512. A commo|
00003f20  6e 20 73 63 61 6c 69 6e  67 0a 69 73 20 74 6f 20  |n scaling.is to |
00003f30  66 69 6c 6c 20 74 68 65  20 6f 75 74 70 75 74 20  |fill the output |
00003f40  73 70 72 69 74 65 20 77  69 74 68 20 74 68 65 20  |sprite with the |
00003f50  69 6e 70 75 74 20 61 6e  64 20 61 6e 20 22 3d 22  |input and an "="|
00003f60  20 70 61 72 61 6d 65 74  65 72 20 74 6f 20 78 20  | parameter to x |
00003f70  61 6e 64 2f 6f 72 20 79  0a 72 61 74 69 6f 73 20  |and/or y.ratios |
00003f80  77 69 6c 6c 20 64 6f 20  74 68 69 73 20 77 69 74  |will do this wit|
00003f90  68 6f 75 74 20 65 76 65  72 20 68 61 76 69 6e 67  |hout ever having|
00003fa0  20 74 6f 20 6b 6e 6f 77  20 74 68 65 20 73 69 7a  | to know the siz|
00003fb0  65 20 6f 66 20 74 68 65  20 69 6e 70 75 74 2e 20  |e of the input. |
00003fc0  53 69 6d 70 6c 79 0a 6f  6d 69 74 74 69 6e 67 20  |Simply.omitting |
00003fd0  74 68 65 20 66 72 61 63  74 69 6f 6e 61 6c 20 70  |the fractional p|
00003fe0  61 72 74 20 63 61 75 73  65 73 20 43 68 61 6e 67  |art causes Chang|
00003ff0  65 46 53 49 20 74 6f 20  70 75 74 20 69 6e 20 74  |eFSI to put in t|
00004000  68 65 20 73 6f 75 72 63  65 20 73 69 7a 65 2c 20  |he source size, |
00004010  74 68 75 73 0a 67 69 76  69 6e 67 20 6f 75 74 70  |thus.giving outp|
00004020  75 74 20 77 68 69 63 68  20 69 73 20 74 68 65 20  |ut which is the |
00004030  73 70 65 63 69 66 69 65  64 20 6e 75 6d 62 65 72  |specified number|
00004040  20 6f 66 20 70 69 78 65  6c 73 20 69 6e 20 73 69  | of pixels in si|
00004050  7a 65 2e 0a 0a 43 6f 6e  76 65 72 73 69 6f 6e 20  |ze...Conversion |
00004060  66 72 6f 6d 20 63 6f 6c  6f 75 72 20 74 6f 20 6d  |from colour to m|
00004070  6f 6e 6f 63 68 72 6f 6d  65 20 73 68 61 64 65 73  |onochrome shades|
00004080  20 6f 66 20 67 72 65 79  20 69 73 20 64 6f 6e 65  | of grey is done|
00004090  20 77 69 74 68 20 74 68  65 20 43 49 45 0a 6c 75  | with the CIE.lu|
000040a0  6d 69 6e 61 6e 63 65 20  77 65 69 67 68 74 73 20  |minance weights |
000040b0  66 6f 72 20 72 2c 20 67  20 61 6e 64 20 62 20 28  |for r, g and b (|
000040c0  30 2e 32 39 39 2c 20 30  2e 35 38 37 2c 20 30 2e  |0.299, 0.587, 0.|
000040d0  31 31 34 29 20 77 68 69  63 68 20 69 73 20 74 68  |114) which is th|
000040e0  65 20 73 74 61 6e 64 61  72 64 0a 63 6f 6e 76 65  |e standard.conve|
000040f0  72 73 69 6f 6e 20 66 6f  72 20 62 72 6f 61 64 63  |rsion for broadc|
00004100  61 73 74 20 74 65 6c 65  76 69 73 69 6f 6e 2e 20  |ast television. |
00004110  54 68 65 73 65 20 76 61  6c 75 65 73 20 63 61 6e  |These values can|
00004120  20 62 65 20 61 6c 74 65  72 65 64 20 75 73 69 6e  | be altered usin|
00004130  67 20 74 68 65 0a 2d 72  65 64 2c 20 2d 67 72 65  |g the.-red, -gre|
00004140  65 6e 20 61 6e 64 20 2d  62 6c 75 65 20 63 6f 6d  |en and -blue com|
00004150  6d 61 6e 64 73 20 61 6e  64 20 61 6c 6c 6f 77 20  |mands and allow |
00004160  64 69 66 66 65 72 65 6e  74 20 77 65 69 67 68 74  |different weight|
00004170  69 6e 67 73 20 66 6f 72  20 63 6f 6e 76 65 72 73  |ings for convers|
00004180  69 6f 6e 0a 74 6f 20 6d  6f 6e 6f 63 68 72 6f 6d  |ion.to monochrom|
00004190  65 20 74 6f 20 62 65 20  74 72 69 65 64 2c 20 74  |e to be tried, t|
000041a0  68 69 73 20 61 6c 73 6f  20 61 6c 6c 6f 77 73 20  |his also allows |
000041b0  73 65 6c 65 63 74 69 6f  6e 20 6f 66 20 61 6e 20  |selection of an |
000041c0  69 6d 61 67 65 20 63 6f  6d 70 6f 73 65 64 20 6f  |image composed o|
000041d0  66 0a 6f 6e 6c 79 20 73  6f 6d 65 20 6f 66 20 74  |f.only some of t|
000041e0  68 65 20 63 6f 6c 6f 75  72 73 20 28 65 2e 67 2e  |he colours (e.g.|
000041f0  20 2d 72 65 64 31 20 2d  67 72 65 65 6e 30 20 2d  | -red1 -green0 -|
00004200  62 6c 75 65 30 29 20 69  6e 20 6d 61 6b 69 6e 67  |blue0) in making|
00004210  20 61 20 62 6c 61 63 6b  20 61 6e 64 0a 77 68 69  | a black and.whi|
00004220  74 65 20 69 6d 61 67 65  2e 0a 0a 43 68 61 6e 67  |te image...Chang|
00004230  65 46 53 49 20 63 61 6e  20 74 61 6b 65 20 61 6e  |eFSI can take an|
00004240  79 20 52 49 53 43 20 4f  53 20 73 70 72 69 74 65  |y RISC OS sprite|
00004250  73 20 28 32 2c 20 34 2c  20 31 36 20 6f 72 20 32  |s (2, 4, 16 or 2|
00004260  35 36 20 63 6f 6c 6f 75  72 73 29 2e 20 49 66 20  |56 colours). If |
00004270  74 68 65 72 65 20 69 73  20 61 0a 70 61 6c 65 74  |there is a.palet|
00004280  74 65 20 69 74 20 77 69  6c 6c 20 62 65 20 75 73  |te it will be us|
00004290  65 64 2c 20 6f 74 68 65  72 77 69 73 65 20 74 68  |ed, otherwise th|
000042a0  65 20 73 74 61 6e 64 61  72 64 20 32 2c 20 34 2c  |e standard 2, 4,|
000042b0  20 31 36 20 61 6e 64 20  32 35 36 20 63 6f 6c 6f  | 16 and 256 colo|
000042c0  75 72 20 64 65 73 6b 74  6f 70 0a 70 61 6c 65 74  |ur desktop.palet|
000042d0  74 65 73 20 61 72 65 20  75 73 65 64 2e 20 43 68  |tes are used. Ch|
000042e0  61 6e 67 65 46 53 49 20  63 61 6e 20 61 6c 73 6f  |angeFSI can also|
000042f0  20 72 65 61 64 20 74 68  65 20 31 36 62 70 70 20  | read the 16bpp |
00004300  61 6e 64 20 32 34 62 70  70 20 73 70 72 69 74 65  |and 24bpp sprite|
00004310  73 20 77 68 69 63 68 0a  68 61 76 65 20 6e 6f 20  |s which.have no |
00004320  70 61 6c 65 74 74 65 73  2e 0a 0a 43 68 61 6e 67  |palettes...Chang|
00004330  65 46 53 49 20 69 73 20  62 6f 74 68 20 61 20 63  |eFSI is both a c|
00004340  6f 6d 6d 61 6e 64 20 6c  69 6e 65 20 64 72 69 76  |ommand line driv|
00004350  65 6e 20 70 72 6f 67 72  61 6d 20 61 6e 64 20 61  |en program and a|
00004360  20 64 65 73 6b 74 6f 70  20 61 70 70 6c 69 63 61  | desktop applica|
00004370  74 69 6f 6e 2e 20 54 68  65 0a 66 69 6c 65 20 21  |tion. The.file !|
00004380  48 65 6c 70 20 64 65 73  63 72 69 62 65 73 20 68  |Help describes h|
00004390  6f 77 20 74 6f 20 75 73  65 20 74 68 65 20 61 70  |ow to use the ap|
000043a0  70 6c 69 63 61 74 69 6f  6e 20 66 72 6f 6d 20 74  |plication from t|
000043b0  68 65 20 64 65 73 6b 74  6f 70 2c 20 69 66 20 79  |he desktop, if y|
000043c0  6f 75 20 6e 65 65 64 0a  74 6f 20 75 73 65 20 74  |ou need.to use t|
000043d0  68 65 20 70 72 6f 67 72  61 6d 20 61 73 20 61 20  |he program as a |
000043e0  63 6f 6d 6d 61 6e 64 20  6c 69 6e 65 20 64 72 69  |command line dri|
000043f0  76 65 6e 20 70 72 6f 67  72 61 6d 20 79 6f 75 20  |ven program you |
00004400  77 69 6c 6c 20 6e 65 65  64 20 74 6f 20 68 61 76  |will need to hav|
00004410  65 20 69 74 20 69 6e 0a  74 68 65 20 6c 69 62 72  |e it in.the libr|
00004420  61 72 79 20 28 6f 72 20  6f 6e 20 72 75 6e 24 70  |ary (or on run$p|
00004430  61 74 68 29 20 61 6e 64  20 70 72 65 73 73 20 66  |ath) and press f|
00004440  31 32 20 74 6f 20 67 65  74 20 6f 75 74 20 6f 66  |12 to get out of|
00004450  20 74 68 65 20 64 65 73  6b 74 6f 70 2e 20 54 68  | the desktop. Th|
00004460  65 20 66 69 6c 65 0a 22  46 53 49 75 73 65 22 20  |e file."FSIuse" |
00004470  64 65 73 63 72 69 62 65  73 20 74 68 65 20 70 61  |describes the pa|
00004480  72 61 6d 65 74 65 72 73  20 63 6f 6e 63 69 73 65  |rameters concise|
00004490  6c 79 2e 20 54 68 65 20  70 72 6f 67 72 61 6d 20  |ly. The program |
000044a0  73 65 6c 65 63 74 73 20  6d 6f 64 65 20 30 20 77  |selects mode 0 w|
000044b0  68 65 6e 0a 72 75 6e 20  66 72 6f 6d 20 74 68 65  |hen.run from the|
000044c0  20 63 6f 6d 6d 61 6e 64  20 6c 69 6e 65 20 77 68  | command line wh|
000044d0  65 6e 20 64 6f 69 6e 67  20 61 6e 79 20 77 6f 72  |en doing any wor|
000044e0  6b 20 69 6e 20 6f 72 64  65 72 20 74 6f 20 73 70  |k in order to sp|
000044f0  65 65 64 20 75 70 20 70  72 6f 63 65 73 73 69 6e  |eed up processin|
00004500  67 0a 28 74 68 69 73 20  63 61 6e 20 62 65 20 64  |g.(this can be d|
00004510  69 73 61 62 6c 65 64 20  77 69 74 68 20 2d 6e 6f  |isabled with -no|
00004520  6d 6f 64 65 29 2e 20 49  74 20 6d 61 79 20 61 6c  |mode). It may al|
00004530  73 6f 20 62 65 20 61 20  67 6f 6f 64 20 69 64 65  |so be a good ide|
00004540  61 20 74 6f 20 52 4d 46  61 73 74 65 72 0a 42 41  |a to RMFaster.BA|
00004550  53 49 43 2e 20 41 6e 20  68 6f 75 72 67 6c 61 73  |SIC. An hourglas|
00004560  73 20 25 61 67 65 20 70  72 6f 63 65 73 73 65 64  |s %age processed|
00004570  20 66 69 67 75 72 65 20  69 73 20 64 69 73 70 6c  | figure is displ|
00004580  61 79 65 64 20 28 74 68  69 73 20 6d 61 79 20 72  |ayed (this may r|
00004590  75 6e 20 74 68 72 6f 75  67 68 0a 74 77 69 63 65  |un through.twice|
000045a0  20 66 6f 72 20 73 6f 6d  65 20 6f 66 20 74 68 65  | for some of the|
000045b0  20 6d 6f 72 65 20 65 78  70 65 6e 73 69 76 65 20  | more expensive |
000045c0  6f 70 74 69 6f 6e 73 29  2e 20 54 68 65 20 70 72  |options). The pr|
000045d0  6f 67 72 61 6d 20 72 65  61 64 73 20 74 68 65 20  |ogram reads the |
000045e0  73 6f 75 72 63 65 0a 69  6d 61 67 65 20 66 72 6f  |source.image fro|
000045f0  6d 20 64 69 73 63 20 61  6e 64 20 62 75 69 6c 64  |m disc and build|
00004600  73 20 74 68 65 20 6f 75  74 70 75 74 20 69 6e 20  |s the output in |
00004610  6d 65 6d 6f 72 79 2c 20  68 61 76 69 6e 67 20 63  |memory, having c|
00004620  6c 61 69 6d 65 64 20 73  6f 6d 65 20 66 72 6f 6d  |laimed some from|
00004630  20 74 68 65 0a 73 79 73  74 65 6d 2e 0a 0a 49 6e  | the.system...In|
00004640  20 61 64 64 69 74 69 6f  6e 20 74 6f 20 73 74 72  | addition to str|
00004650  69 63 74 6c 79 20 63 6f  6e 76 65 72 74 69 6e 67  |ictly converting|
00004660  20 74 68 65 20 73 6f 75  72 63 65 20 69 6d 61 67  | the source imag|
00004670  65 2c 20 43 68 61 6e 67  65 46 53 49 20 63 61 6e  |e, ChangeFSI can|
00004680  20 61 6c 73 6f 20 70 72  6f 63 65 73 73 0a 69 74  | also process.it|
00004690  2e 20 41 20 74 72 69 76  69 61 6c 20 6f 70 74 69  |. A trivial opti|
000046a0  6f 6e 20 69 73 20 22 2d  69 6e 66 6f 22 3a 20 43  |on is "-info": C|
000046b0  68 61 6e 67 65 46 53 49  20 77 69 6c 6c 20 74 65  |hangeFSI will te|
000046c0  6c 6c 20 79 6f 75 20 77  68 61 74 20 69 74 20 69  |ll you what it i|
000046d0  73 20 64 6f 69 6e 67 20  28 61 0a 67 6f 6f 64 20  |s doing (a.good |
000046e0  77 61 79 20 6f 66 20 66  69 6e 64 69 6e 67 20 6f  |way of finding o|
000046f0  75 74 20 77 68 61 74 20  74 68 65 20 73 6f 75 72  |ut what the sour|
00004700  63 65 20 69 6d 61 67 65  20 61 63 74 75 61 6c 6c  |ce image actuall|
00004710  79 20 69 73 2c 20 61 6e  64 20 68 6f 77 20 74 68  |y is, and how th|
00004720  65 20 73 63 61 6c 69 6e  67 0a 74 75 72 6e 73 20  |e scaling.turns |
00004730  6f 75 74 21 29 2e 20 53  69 6d 69 6c 61 72 6c 79  |out!). Similarly|
00004740  20 74 72 69 76 69 61 6c  20 61 72 65 20 2d 76 66  | trivial are -vf|
00004750  6c 69 70 20 61 6e 64 20  2d 68 66 6c 69 70 20 2d  |lip and -hflip -|
00004760  20 74 68 65 20 70 69 63  74 75 72 65 20 63 61 6e  | the picture can|
00004770  20 62 65 0a 70 72 6f 64  75 63 65 20 75 70 73 69  | be.produce upsi|
00004780  64 65 20 64 6f 77 6e 20  61 6e 64 20 6c 65 66 74  |de down and left|
00004790  2f 72 69 67 68 74 20 72  65 76 65 72 73 65 64 2e  |/right reversed.|
000047a0  20 4e 6f 74 20 73 6f 20  74 72 69 76 69 61 6c 20  | Not so trivial |
000047b0  69 73 20 2d 72 6f 74 61  74 65 2c 20 77 68 69 63  |is -rotate, whic|
000047c0  68 0a 77 69 6c 6c 20 72  6f 74 61 74 65 20 74 68  |h.will rotate th|
000047d0  65 20 69 6d 61 67 65 20  62 79 20 39 30 20 64 65  |e image by 90 de|
000047e0  67 72 65 65 73 20 28 74  68 61 74 20 69 73 2c 20  |grees (that is, |
000047f0  61 6e 20 61 6e 74 69 2d  20 63 6c 6f 63 6b 77 69  |an anti- clockwi|
00004800  73 65 20 71 75 61 72 74  65 72 20 74 75 72 6e 29  |se quarter turn)|
00004810  2e 0a 2d 72 6f 74 61 74  65 2d 20 72 6f 74 61 74  |..-rotate- rotat|
00004820  65 73 20 62 79 20 2d 39  30 20 64 65 67 72 65 65  |es by -90 degree|
00004830  73 20 28 63 6c 6f 63 6b  77 69 73 65 20 71 75 61  |s (clockwise qua|
00004840  72 74 65 72 20 74 75 72  6e 29 2e 0a 0a 53 6f 6d  |rter turn)...Som|
00004850  65 74 69 6d 65 73 20 75  73 65 66 75 6c 20 69 73  |etimes useful is|
00004860  20 22 2d 6e 6f 73 69 7a  65 22 3a 20 43 68 61 6e  | "-nosize": Chan|
00004870  67 65 46 53 49 20 63 61  6e 20 72 65 61 64 20 70  |geFSI can read p|
00004880  69 78 65 6c 20 73 69 7a  65 20 69 6e 66 6f 72 6d  |ixel size inform|
00004890  61 74 69 6f 6e 20 66 72  6f 6d 0a 74 68 65 20 73  |ation from.the s|
000048a0  6f 75 72 63 65 20 69 6d  61 67 65 20 28 69 66 20  |ource image (if |
000048b0  70 72 65 73 65 6e 74 29  20 6f 72 20 67 75 65 73  |present) or gues|
000048c0  73 20 69 74 20 28 65 2e  67 2e 20 69 66 20 74 68  |s it (e.g. if th|
000048d0  65 72 65 20 61 72 65 20  6c 65 73 73 20 74 68 61  |ere are less tha|
000048e0  6e 20 33 32 30 20 62 79  0a 32 35 36 20 70 69 78  |n 320 by.256 pix|
000048f0  65 6c 73 20 69 6e 20 61  20 73 6f 75 72 63 65 20  |els in a source |
00004900  69 6d 61 67 65 2c 20 43  68 61 6e 67 65 46 53 49  |image, ChangeFSI|
00004910  20 61 73 73 75 6d 65 73  20 74 68 65 20 70 69 78  | assumes the pix|
00004920  65 6c 73 20 61 72 65 20  74 68 65 20 73 61 6d 65  |els are the same|
00004930  20 73 69 7a 65 20 61 73  0a 4d 4f 44 45 20 31 33  | size as.MODE 13|
00004940  27 73 20 5b 34 35 20 70  65 72 20 69 6e 63 68 5d  |'s [45 per inch]|
00004950  29 20 6f 72 20 64 65 72  69 76 65 20 69 74 20 66  |) or derive it f|
00004960  72 6f 6d 20 6f 74 68 65  72 20 69 6e 66 6f 72 6d  |rom other inform|
00004970  61 74 69 6f 6e 20 61 6e  64 20 73 63 61 6c 65 20  |ation and scale |
00004980  74 68 65 0a 6f 75 74 70  75 74 20 69 6d 61 67 65  |the.output image|
00004990  20 28 63 6f 6d 70 6f 73  65 64 20 6f 66 20 52 49  | (composed of RI|
000049a0  53 43 20 4f 53 20 73 71  75 61 72 65 20 6f 72 20  |SC OS square or |
000049b0  31 3a 32 20 73 69 7a 65  64 20 70 69 78 65 6c 73  |1:2 sized pixels|
000049c0  29 20 61 70 70 72 6f 70  72 69 61 74 65 6c 79 2e  |) appropriately.|
000049d0  0a 2d 6e 6f 73 69 7a 65  20 73 74 6f 70 73 20 74  |.-nosize stops t|
000049e0  68 69 73 20 66 72 6f 6d  20 68 61 70 70 65 6e 69  |his from happeni|
000049f0  6e 67 2e 20 5b 74 68 69  73 20 73 65 65 6d 73 20  |ng. [this seems |
00004a00  70 61 72 74 69 63 75 6c  61 72 6c 79 20 72 65 6c  |particularly rel|
00004a10  65 76 61 6e 74 20 6f 6e  20 66 6f 72 6d 61 74 73  |evant on formats|
00004a20  0a 6c 69 6b 65 20 54 49  46 46 20 6f 72 20 49 46  |.like TIFF or IF|
00004a30  46 20 77 68 65 72 65 20  74 68 65 20 70 69 78 65  |F where the pixe|
00004a40  6c 20 73 69 7a 65 20 69  73 20 73 70 65 63 69 66  |l size is specif|
00004a50  69 65 64 20 2a 62 75 74  20 6d 61 79 20 62 65 20  |ied *but may be |
00004a60  77 72 6f 6e 67 2a 5d 20  55 73 69 6e 67 0a 2d 69  |wrong*] Using.-i|
00004a70  6e 66 6f 20 77 69 6c 6c  20 64 69 73 70 6c 61 79  |nfo will display|
00004a80  20 74 68 65 20 70 69 78  65 6c 20 72 61 74 69 6f  | the pixel ratio|
00004a90  73 20 77 68 69 63 68 20  43 68 61 6e 67 65 46 53  |s which ChangeFS|
00004aa0  49 20 69 73 20 75 73 69  6e 67 20 2d 20 61 20 63  |I is using - a c|
00004ab0  6f 6d 62 69 6e 61 74 69  6f 6e 20 6f 66 0a 74 68  |ombination of.th|
00004ac0  65 20 73 69 7a 65 20 67  75 65 73 73 2c 20 74 68  |e size guess, th|
00004ad0  65 20 6f 75 74 70 75 74  20 70 69 78 65 6c 20 73  |e output pixel s|
00004ae0  69 7a 65 20 61 6e 64 20  61 6e 79 20 64 65 6c 69  |ize and any deli|
00004af0  62 65 72 61 74 65 20 73  63 61 6c 69 6e 67 2e 20  |berate scaling. |
00004b00  22 2d 6e 6f 73 63 61 6c  65 22 0a 74 75 72 6e 73  |"-noscale".turns|
00004b10  20 6f 66 66 20 74 68 65  20 6f 75 74 70 75 74 20  | off the output |
00004b20  73 63 61 6c 69 6e 67 20  61 73 20 77 65 6c 6c 2e  |scaling as well.|
00004b30  0a 0a 54 68 65 20 73 69  6d 70 6c 65 73 74 20 69  |..The simplest i|
00004b40  6d 61 67 65 20 70 72 6f  63 65 73 73 69 6e 67 20  |mage processing |
00004b50  6f 70 74 69 6f 6e 20 69  73 20 22 2d 72 61 6e 67  |option is "-rang|
00004b60  65 22 20 77 68 69 63 68  20 77 69 6c 6c 20 65 78  |e" which will ex|
00004b70  70 61 6e 64 20 74 68 65  20 64 79 6e 61 6d 69 63  |pand the dynamic|
00004b80  0a 72 61 6e 67 65 20 6f  66 20 74 68 65 20 69 6e  |.range of the in|
00004b90  70 75 74 20 70 69 63 74  75 72 65 20 73 6f 20 74  |put picture so t|
00004ba0  68 61 74 20 69 74 20 66  69 6c 6c 73 20 74 68 65  |hat it fills the|
00004bb0  20 61 76 61 69 6c 61 62  6c 65 20 61 72 65 61 20  | available area |
00004bc0  28 6e 6f 74 20 61 20 67  6f 6f 64 0a 6f 70 74 69  |(not a good.opti|
00004bd0  6f 6e 20 66 6f 72 20 61  6e 69 6d 61 74 65 64 20  |on for animated |
00004be0  73 65 71 75 65 6e 63 65  73 20 75 6e 6c 65 73 73  |sequences unless|
00004bf0  20 61 6c 6c 20 73 6f 75  72 63 65 20 69 6d 61 67  | all source imag|
00004c00  65 73 20 70 6f 73 73 65  73 73 20 74 68 65 20 73  |es possess the s|
00004c10  61 6d 65 20 72 61 6e 67  65 29 2e 0a 53 69 6e 63  |ame range)..Sinc|
00004c20  65 20 72 2c 20 67 2c 20  62 20 61 72 65 20 70 72  |e r, g, b are pr|
00004c30  6f 63 65 73 73 65 64 20  62 79 20 74 68 65 20 73  |ocessed by the s|
00004c40  61 6d 65 20 61 6d 6f 75  6e 74 2c 20 2d 72 61 6e  |ame amount, -ran|
00004c50  67 65 20 70 72 65 73 65  72 76 65 73 20 74 68 65  |ge preserves the|
00004c60  20 63 6f 6c 6f 75 72 20  6f 66 0a 70 69 78 65 6c  | colour of.pixel|
00004c70  73 20 69 6e 20 63 6f 6c  6f 75 72 65 64 20 70 69  |s in coloured pi|
00004c80  63 74 75 72 65 73 2e 0a  0a 41 20 75 73 65 66 75  |ctures...A usefu|
00004c90  6c 20 6f 70 74 69 6f 6e  20 66 6f 72 20 6f 75 74  |l option for out|
00004ca0  70 75 74 20 69 6e 74 65  6e 64 65 64 20 66 6f 72  |put intended for|
00004cb0  20 74 68 65 20 73 63 72  65 65 6e 20 6f 6e 6c 79  | the screen only|
00004cc0  20 69 73 20 47 61 6d 6d  61 20 63 6f 72 72 65 63  | is Gamma correc|
00004cd0  74 69 6f 6e 2e 0a 43 52  54 20 64 69 73 70 6c 61  |tion..CRT displa|
00004ce0  79 73 20 64 6f 20 6e 6f  74 20 68 61 76 65 20 61  |ys do not have a|
00004cf0  20 73 69 6d 70 6c 65 20  6c 69 6e 65 61 72 20 72  | simple linear r|
00004d00  65 6c 61 74 69 6f 6e 73  68 69 70 20 62 65 74 77  |elationship betw|
00004d10  65 65 6e 20 62 72 69 67  68 74 6e 65 73 73 20 6f  |een brightness o|
00004d20  66 20 74 68 65 0a 73 70  6f 74 20 61 6e 64 20 69  |f the.spot and i|
00004d30  6e 70 75 74 20 76 6f 6c  74 61 67 65 3a 20 69 6e  |nput voltage: in|
00004d40  73 74 65 61 64 20 6f 66  20 62 72 69 67 68 74 6e  |stead of brightn|
00004d50  65 73 73 20 3d 20 63 6f  6e 73 74 20 2a 20 76 6f  |ess = const * vo|
00004d60  6c 74 61 67 65 2c 20 74  68 65 20 72 65 73 70 6f  |ltage, the respo|
00004d70  6e 73 65 0a 69 73 20 62  72 69 67 68 74 6e 65 73  |nse.is brightnes|
00004d80  73 20 3d 20 63 6f 6e 73  74 20 2a 20 76 6f 6c 74  |s = const * volt|
00004d90  61 67 65 20 5e 20 28 31  2f 67 61 6d 6d 61 29 2e  |age ^ (1/gamma).|
00004da0  20 49 6e 20 74 68 65 20  54 56 20 69 6e 64 75 73  | In the TV indus|
00004db0  74 72 79 2c 20 67 61 6d  6d 61 20 68 61 73 20 62  |try, gamma has b|
00004dc0  65 65 6e 0a 73 74 61 6e  64 61 72 64 69 73 65 64  |een.standardised|
00004dd0  20 61 73 20 32 2e 32 2c  20 62 75 74 20 74 68 65  | as 2.2, but the|
00004de0  72 65 20 69 73 20 77 69  64 65 20 76 61 72 69 61  |re is wide varia|
00004df0  74 69 6f 6e 20 69 6e 20  74 68 65 20 63 6f 6d 70  |tion in the comp|
00004e00  75 74 65 72 20 69 6e 64  75 73 74 72 79 3a 20 74  |uter industry: t|
00004e10  68 65 0a 6d 6f 6e 69 74  6f 72 27 73 20 72 65 73  |he.monitor's res|
00004e20  70 6f 6e 73 65 20 77 69  6c 6c 20 76 61 72 79 20  |ponse will vary |
00004e30  64 65 70 65 6e 64 69 6e  67 20 6f 6e 20 77 68 61  |depending on wha|
00004e40  74 20 6d 61 6b 65 20 69  74 20 69 73 20 61 6e 64  |t make it is and|
00004e50  20 68 6f 77 20 69 74 20  69 73 0a 61 64 6a 75 73  | how it is.adjus|
00004e60  74 65 64 2e 20 4c 6f 77  20 76 61 6c 75 65 73 20  |ted. Low values |
00004e70  6f 66 20 67 61 6d 6d 61  20 28 30 20 74 6f 20 31  |of gamma (0 to 1|
00004e80  29 20 6d 61 6b 65 20 63  6f 6c 6f 75 72 73 20 64  |) make colours d|
00004e90  61 72 6b 65 72 20 61 6e  64 20 68 69 67 68 20 76  |arker and high v|
00004ea0  61 6c 75 65 73 0a 28 61  62 6f 76 65 20 31 29 20  |alues.(above 1) |
00004eb0  6d 61 6b 65 20 63 6f 6c  6f 75 72 73 20 6c 69 67  |make colours lig|
00004ec0  68 74 65 72 20 77 69 74  68 20 74 68 65 20 65 66  |hter with the ef|
00004ed0  66 65 63 74 73 20 62 65  69 6e 67 20 70 61 72 74  |fects being part|
00004ee0  69 63 75 6c 61 72 6c 79  20 6e 6f 74 69 63 65 61  |icularly noticea|
00004ef0  62 6c 65 0a 6f 6e 20 64  69 6d 20 63 6f 6c 6f 75  |ble.on dim colou|
00004f00  72 73 2e 20 22 2d 67 61  6d 6d 61 22 20 75 73 65  |rs. "-gamma" use|
00004f10  73 20 74 68 65 20 64 65  66 61 75 6c 74 20 6f 66  |s the default of|
00004f20  20 32 2e 32 2c 20 61 6e  64 20 69 74 20 63 61 6e  | 2.2, and it can|
00004f30  20 62 65 20 73 65 74 20  62 79 0a 22 2d 67 61 6d  | be set by."-gam|
00004f40  6d 61 31 2e 35 22 20 73  61 79 2e 20 47 61 6d 6d  |ma1.5" say. Gamm|
00004f50  61 20 63 6f 72 72 65 63  74 69 6f 6e 20 69 73 20  |a correction is |
00004f60  6d 6f 73 74 20 72 65 6c  65 76 61 6e 74 20 77 68  |most relevant wh|
00004f70  65 6e 20 69 74 73 20 6b  6e 6f 77 6e 20 74 68 61  |en its known tha|
00004f80  74 20 74 68 65 0a 69 6e  70 75 74 20 68 61 73 20  |t the.input has |
00004f90  61 20 6c 69 6e 65 61 72  20 69 6e 74 65 6e 73 69  |a linear intensi|
00004fa0  74 79 20 28 69 6e 70 75  74 20 66 72 6f 6d 20 61  |ty (input from a|
00004fb0  20 73 63 61 6e 6e 65 72  20 6f 72 20 66 72 6f 6d  | scanner or from|
00004fc0  20 61 6e 6f 74 68 65 72  20 63 6f 6d 70 75 74 65  | another compute|
00004fd0  72 0a 77 69 74 68 20 6d  6f 72 65 20 62 69 74 73  |r.with more bits|
00004fe0  20 70 65 72 20 63 6f 6c  6f 75 72 20 63 6f 6d 70  | per colour comp|
00004ff0  6f 6e 65 6e 74 20 74 68  61 6e 20 74 68 65 20 41  |onent than the A|
00005000  72 63 68 69 6d 65 64 65  73 29 2e 0a 0a 41 20 6d  |rchimedes)...A m|
00005010  6f 72 65 20 63 6f 6d 70  6c 65 78 20 70 72 69 6d  |ore complex prim|
00005020  69 74 69 76 65 20 69 73  20 22 2d 65 71 75 61 6c  |itive is "-equal|
00005030  22 20 77 68 69 63 68 20  70 65 72 66 6f 72 6d 73  |" which performs|
00005040  20 22 68 69 73 74 6f 67  72 61 6d 20 65 71 75 61  | "histogram equa|
00005050  6c 69 73 61 74 69 6f 6e  22 20 6f 6e 0a 74 68 65  |lisation" on.the|
00005060  20 69 6d 61 67 65 2e 20  54 68 69 73 20 6d 61 6b  | image. This mak|
00005070  65 73 20 74 68 65 20 68  69 73 74 6f 67 72 61 6d  |es the histogram|
00005080  20 6f 66 20 6c 65 76 65  6c 20 76 65 72 73 75 73  | of level versus|
00005090  20 6e 75 6d 62 65 72 20  6f 66 20 70 6f 69 6e 74  | number of point|
000050a0  73 20 61 74 20 74 68 61  74 0a 6c 65 76 65 6c 20  |s at that.level |
000050b0  61 73 20 66 6c 61 74 20  61 73 20 70 6f 73 73 69  |as flat as possi|
000050c0  62 6c 65 20 67 69 76 69  6e 67 20 66 75 6c 6c 20  |ble giving full |
000050d0  75 73 65 20 6f 66 20 74  68 65 20 6e 75 6d 62 65  |use of the numbe|
000050e0  72 20 6f 66 20 63 6f 6c  6f 75 72 73 20 61 76 61  |r of colours ava|
000050f0  69 6c 61 62 6c 65 2e 0a  2d 65 71 75 61 6c 20 69  |ilable..-equal i|
00005100  73 20 61 20 76 65 72 79  20 68 61 72 73 68 20 70  |s a very harsh p|
00005110  72 69 6d 69 74 69 76 65  2c 20 65 76 65 6e 20 6f  |rimitive, even o|
00005120  6e 20 6d 6f 6e 6f 63 68  72 6f 6d 65 20 69 6e 70  |n monochrome inp|
00005130  75 74 73 20 69 74 20 63  61 6e 20 70 72 6f 64 75  |uts it can produ|
00005140  63 65 20 61 6e 0a 69 6e  66 65 72 69 6f 72 20 70  |ce an.inferior p|
00005150  69 63 74 75 72 65 3b 20  77 68 69 6c 65 20 6f 6e  |icture; while on|
00005160  20 63 6f 6c 6f 75 72 20  70 69 63 74 75 72 65 73  | colour pictures|
00005170  20 69 74 20 63 61 6e 20  64 69 73 74 6f 72 74 20  | it can distort |
00005180  74 68 65 20 63 6f 6c 6f  75 72 20 6f 66 20 65 61  |the colour of ea|
00005190  63 68 0a 70 6f 69 6e 74  20 28 73 69 6e 63 65 20  |ch.point (since |
000051a0  72 2c 20 67 2c 20 62 20  61 72 65 20 63 6f 6d 70  |r, g, b are comp|
000051b0  75 74 65 64 20 73 65 70  61 72 61 74 65 6c 79 29  |uted separately)|
000051c0  2e 20 42 75 74 20 2d 65  71 75 61 6c 20 63 61 6e  |. But -equal can|
000051d0  20 6f 66 74 65 6e 20 72  65 63 6f 76 65 72 20 61  | often recover a|
000051e0  0a 70 69 63 74 75 72 65  20 74 68 61 74 20 69 73  |.picture that is|
000051f0  20 6f 74 68 65 72 77 69  73 65 20 63 6f 6d 70 6c  | otherwise compl|
00005200  65 74 65 6c 79 20 75 73  65 6c 65 73 73 20 6f 72  |etely useless or|
00005210  20 65 78 70 6f 73 65 20  69 6e 66 6f 72 6d 61 74  | expose informat|
00005220  69 6f 6e 20 6c 6f 63 6b  65 64 20 69 6e 20 61 0a  |ion locked in a.|
00005230  73 6d 61 6c 6c 20 70 61  72 74 20 6f 66 20 74 68  |small part of th|
00005240  65 20 69 6e 70 75 74 20  73 63 61 6c 65 2e 0a 0a  |e input scale...|
00005250  49 6d 61 67 65 20 63 6f  6c 6f 75 72 73 20 6d 61  |Image colours ma|
00005260  79 20 62 65 20 69 6e 76  65 72 74 65 64 20 77 69  |y be inverted wi|
00005270  74 68 20 74 68 65 20 2d  69 6e 76 65 72 74 20 6f  |th the -invert o|
00005280  70 74 69 6f 6e 2e 20 57  68 69 63 68 20 6d 61 79  |ption. Which may|
00005290  20 62 65 20 66 75 6e 20  69 6e 0a 63 6f 6c 6f 75  | be fun in.colou|
000052a0  72 20 62 75 74 20 69 73  20 72 61 72 65 6c 79 20  |r but is rarely |
000052b0  75 73 65 66 75 6c 21 20  48 6f 77 65 76 65 72 2c  |useful! However,|
000052c0  20 6d 6f 6e 6f 63 68 72  6f 6d 65 20 69 6d 61 67  | monochrome imag|
000052d0  65 73 20 66 72 65 71 75  65 6e 74 6c 79 20 6e 65  |es frequently ne|
000052e0  65 64 0a 69 6e 76 65 72  74 69 6e 67 2c 20 65 73  |ed.inverting, es|
000052f0  70 65 63 69 61 6c 6c 79  20 6f 6e 65 20 62 69 74  |pecially one bit|
00005300  20 70 65 72 20 70 69 78  65 6c 20 73 6f 75 72 63  | per pixel sourc|
00005310  65 73 2e 0a 0a 41 20 6d  6f 72 65 20 70 6f 77 65  |es...A more powe|
00005320  72 66 75 6c 20 6f 70 74  69 6f 6e 20 69 73 20 22  |rful option is "|
00005330  2d 73 68 61 72 70 65 6e  22 20 77 68 69 63 68 20  |-sharpen" which |
00005340  65 6e 68 61 6e 63 65 73  20 74 68 65 20 65 64 67  |enhances the edg|
00005350  65 73 20 6f 66 20 6f 62  6a 65 63 74 73 20 69 6e  |es of objects in|
00005360  20 74 68 65 0a 70 69 63  74 75 72 65 3a 20 74 68  | the.picture: th|
00005370  69 73 20 69 73 20 76 65  72 79 20 75 73 65 66 75  |is is very usefu|
00005380  6c 20 73 69 6e 63 65 20  74 68 65 20 64 69 74 68  |l since the dith|
00005390  65 72 69 6e 67 20 70 72  6f 63 65 73 73 20 69 6e  |ering process in|
000053a0  65 76 69 74 61 62 6c 79  20 73 6d 65 61 72 73 0a  |evitably smears.|
000053b0  69 6e 66 6f 72 6d 61 74  69 6f 6e 20 6f 76 65 72  |information over|
000053c0  20 74 68 65 20 64 69 73  70 6c 61 79 2e 20 50 72  | the display. Pr|
000053d0  65 2d 73 68 61 72 70 65  6e 69 6e 67 20 74 68 65  |e-sharpening the|
000053e0  20 69 6d 61 67 65 20 63  61 6e 20 72 65 73 75 6c  | image can resul|
000053f0  74 20 69 6e 20 61 20 6d  6f 72 65 0a 61 63 63 65  |t in a more.acce|
00005400  70 74 61 62 6c 65 20 6f  75 74 70 75 74 2e 20 44  |ptable output. D|
00005410  65 66 61 75 6c 74 20 76  61 6c 75 65 73 20 6f 66  |efault values of|
00005420  20 73 68 61 72 70 65 6e  69 6e 67 20 63 61 6e 20  | sharpening can |
00005430  62 65 20 6f 76 65 72 72  69 64 64 65 6e 20 66 6f  |be overridden fo|
00005440  72 20 73 70 65 63 69 61  6c 0a 65 66 66 65 63 74  |r special.effect|
00005450  73 3a 20 2d 73 68 61 72  70 65 6e 38 20 64 6f 65  |s: -sharpen8 doe|
00005460  73 20 65 64 67 65 20 64  65 74 65 63 74 69 6f 6e  |s edge detection|
00005470  2e 20 4c 6f 77 65 72 20  61 6d 6f 75 6e 74 73 20  |. Lower amounts |
00005480  6f 66 20 73 68 61 72 70  65 6e 69 6e 67 20 61 72  |of sharpening ar|
00005490  65 0a 6f 62 74 61 69 6e  65 64 20 77 69 74 68 20  |e.obtained with |
000054a0  6c 61 72 67 65 72 20 2d  73 68 61 72 70 65 6e 20  |larger -sharpen |
000054b0  6e 75 6d 62 65 72 73 2e  20 49 6e 20 67 65 6e 65  |numbers. In gene|
000054c0  72 61 6c 20 74 68 65 20  6d 6f 72 65 20 69 6e 70  |ral the more inp|
000054d0  75 74 20 61 6e 64 20 6f  75 74 70 75 74 0a 70 69  |ut and output.pi|
000054e0  78 65 6c 73 20 61 6e 64  20 74 68 65 20 67 72 65  |xels and the gre|
000054f0  61 74 65 72 20 74 68 65  20 6f 75 74 70 75 74 20  |ater the output |
00005500  72 61 6e 67 65 20 69 6e  20 61 20 70 69 78 65 6c  |range in a pixel|
00005510  20 69 6e 20 74 68 65 20  69 6d 61 67 65 73 2c 20  | in the images, |
00005520  74 68 65 20 6c 65 73 73  0a 73 68 61 72 70 65 6e  |the less.sharpen|
00005530  69 6e 67 20 69 73 20 72  65 71 75 69 72 65 64 2e  |ing is required.|
00005540  20 53 68 61 72 70 65 6e  69 6e 67 20 61 20 70 69  | Sharpening a pi|
00005550  63 74 75 72 65 20 77 68  69 63 68 20 69 73 20 61  |cture which is a|
00005560  6c 72 65 61 64 79 20 64  69 74 68 65 72 65 64 20  |lready dithered |
00005570  63 61 6e 20 67 69 76 65  0a 61 20 76 65 72 79 20  |can give.a very |
00005580  62 61 64 20 72 65 73 75  6c 74 2e 2e 2e 2e 0a 0a  |bad result......|
00005590  54 68 65 20 73 68 61 72  70 65 6e 69 6e 67 20 69  |The sharpening i|
000055a0  73 20 61 63 68 69 65 76  65 64 20 77 69 74 68 20  |s achieved with |
000055b0  74 68 65 20 66 6f 6c 6c  6f 77 69 6e 67 20 6d 61  |the following ma|
000055c0  74 72 69 78 3a 0a 0a 20  20 20 2d 31 20 20 20 20  |trix:..   -1    |
000055d0  2d 31 20 20 20 20 2d 31  0a 20 20 20 2d 31 20 73  |-1    -1.   -1 s|
000055e0  68 61 72 70 65 6e 20 20  2d 31 0a 20 20 20 2d 31  |harpen  -1.   -1|
000055f0  20 20 20 20 2d 31 20 20  20 20 2d 31 0a 0a 43 68  |    -1    -1..Ch|
00005600  61 6e 67 65 46 53 49 20  63 6f 6d 70 75 74 65 73  |angeFSI computes|
00005610  20 74 68 65 20 73 75 6d  20 6f 66 20 6e 69 6e 65  | the sum of nine|
00005620  20 70 69 78 65 6c 73 20  77 69 74 68 20 74 68 65  | pixels with the|
00005630  20 61 62 6f 76 65 20 77  65 69 67 68 74 73 20 66  | above weights f|
00005640  6f 72 20 65 61 63 68 20  69 6e 70 75 74 0a 70 69  |or each input.pi|
00005650  78 65 6c 20 61 6e 64 20  72 65 6e 6f 72 6d 61 6c  |xel and renormal|
00005660  69 73 65 73 20 74 68 65  20 72 65 73 75 6c 74 20  |ises the result |
00005670  28 64 69 76 69 64 65 73  20 62 79 20 73 68 61 72  |(divides by shar|
00005680  70 65 6e 2d 38 29 2e 0a  0a 41 6e 20 6f 70 74 69  |pen-8)...An opti|
00005690  6f 6e 20 66 6f 72 20 74  65 73 74 69 6e 67 20 69  |on for testing i|
000056a0  73 20 22 2d 6e 6f 64 69  74 68 65 72 22 20 77 68  |s "-nodither" wh|
000056b0  69 63 68 20 64 69 73 61  62 6c 65 73 20 74 68 65  |ich disables the|
000056c0  20 46 6c 6f 79 64 20 53  74 65 69 6e 62 65 72 67  | Floyd Steinberg|
000056d0  20 65 72 72 6f 72 0a 64  69 66 66 75 73 69 6f 6e  | error.diffusion|
000056e0  20 73 74 65 70 20 63 6f  6d 70 6c 65 74 65 6c 79  | step completely|
000056f0  2e 20 56 65 72 73 69 6f  6e 73 20 61 66 74 65 72  |. Versions after|
00005700  20 36 74 68 20 4a 75 6e  65 20 31 39 39 30 20 61  | 6th June 1990 a|
00005710  72 65 20 6d 6f 72 65 20  61 63 63 75 72 61 74 65  |re more accurate|
00005720  20 61 74 0a 64 6f 69 6e  67 20 74 68 69 73 2e 0a  | at.doing this..|
00005730  0a 54 68 65 20 76 61 72  69 6f 75 73 20 70 72 6f  |.The various pro|
00005740  63 65 73 73 65 73 20 64  65 73 63 72 69 62 65 64  |cesses described|
00005750  20 61 62 6f 76 65 20 61  72 65 20 61 70 70 6c 69  | above are appli|
00005760  65 64 20 69 6e 20 74 68  65 20 66 6f 6c 6c 6f 77  |ed in the follow|
00005770  69 6e 67 20 6f 72 64 65  72 20 66 6f 72 0a 70 69  |ing order for.pi|
00005780  63 74 75 72 65 73 20 77  69 74 68 20 6d 6f 72 65  |ctures with more|
00005790  20 6f 75 74 70 75 74 20  70 69 78 65 6c 73 20 74  | output pixels t|
000057a0  68 61 6e 20 69 6e 70 75  74 3a 0a 20 20 20 28 61  |han input:.   (a|
000057b0  29 20 72 61 6e 67 65 20  6f 72 20 68 69 73 74 6f  |) range or histo|
000057c0  67 72 61 6d 20 65 71 75  61 6c 69 73 61 74 69 6f  |gram equalisatio|
000057d0  6e 2c 0a 20 20 20 28 62  29 20 73 68 61 72 70 65  |n,.   (b) sharpe|
000057e0  6e 2c 0a 20 20 20 28 63  29 20 73 63 61 6c 65 2c  |n,.   (c) scale,|
000057f0  0a 20 20 20 28 64 29 20  65 72 72 6f 72 20 64 69  |.   (d) error di|
00005800  66 66 75 73 69 6f 6e 2e  0a 54 68 69 73 20 6f 72  |ffusion..This or|
00005810  64 65 72 20 69 73 20 63  68 6f 73 65 6e 20 73 6f  |der is chosen so|
00005820  20 74 68 61 74 3a 0a 20  20 20 28 31 29 20 73 69  | that:.   (1) si|
00005830  6e 63 65 20 74 68 65 20  69 6e 70 75 74 20 70 69  |nce the input pi|
00005840  78 65 6c 73 20 28 72 61  74 68 65 72 20 74 68 61  |xels (rather tha|
00005850  6e 20 74 68 65 20 6f 75  74 70 75 74 20 70 69 78  |n the output pix|
00005860  65 6c 73 29 20 61 72 65  20 73 68 61 72 70 65 6e  |els) are sharpen|
00005870  65 64 2c 0a 20 20 20 20  20 20 20 74 68 65 72 65  |ed,.       there|
00005880  20 69 73 20 6e 6f 20 66  61 6c 73 65 20 65 64 67  | is no false edg|
00005890  65 20 69 6e 74 72 6f 64  75 63 65 64 20 77 68 65  |e introduced whe|
000058a0  6e 20 70 69 78 65 6c 73  20 61 72 65 20 72 65 70  |n pixels are rep|
000058b0  6c 69 63 61 74 65 64 2e  0a 0a 54 68 65 20 76 61  |licated...The va|
000058c0  72 69 6f 75 73 20 70 72  6f 63 65 73 73 65 73 20  |rious processes |
000058d0  64 65 73 63 72 69 62 65  64 20 61 62 6f 76 65 20  |described above |
000058e0  61 72 65 20 61 70 70 6c  69 65 64 20 69 6e 20 74  |are applied in t|
000058f0  68 65 20 66 6f 6c 6c 6f  77 69 6e 67 20 6f 72 64  |he following ord|
00005900  65 72 20 66 6f 72 0a 70  69 63 74 75 72 65 73 20  |er for.pictures |
00005910  77 69 74 68 20 66 65 77  65 72 20 6f 75 74 70 75  |with fewer outpu|
00005920  74 20 70 69 78 65 6c 73  20 74 68 61 6e 20 69 6e  |t pixels than in|
00005930  70 75 74 3a 0a 20 20 20  28 61 29 20 73 63 61 6c  |put:.   (a) scal|
00005940  65 2c 0a 20 20 20 28 62  29 20 72 61 6e 67 65 20  |e,.   (b) range |
00005950  6f 72 20 68 69 73 74 6f  67 72 61 6d 20 65 71 75  |or histogram equ|
00005960  61 6c 69 73 61 74 69 6f  6e 2c 0a 20 20 20 28 63  |alisation,.   (c|
00005970  29 20 73 68 61 72 70 65  6e 2c 0a 20 20 20 28 64  |) sharpen,.   (d|
00005980  29 20 65 72 72 6f 72 20  64 69 66 66 75 73 69 6f  |) error diffusio|
00005990  6e 2e 0a 54 68 69 73 20  6f 72 64 65 72 20 69 73  |n..This order is|
000059a0  20 63 68 6f 73 65 6e 20  73 6f 20 74 68 61 74 3a  | chosen so that:|
000059b0  0a 20 20 20 28 31 29 20  72 61 6e 67 69 6e 67 20  |.   (1) ranging |
000059c0  63 61 6e 20 65 6e 68 61  6e 63 65 20 64 6f 77 6e  |can enhance down|
000059d0  2d 73 69 7a 65 64 20 69  6d 61 67 65 73 2e 20 53  |-sized images. S|
000059e0  61 79 20 61 20 62 6c 61  63 6b 2f 77 68 69 74 65  |ay a black/white|
000059f0  20 64 69 74 68 65 72 65  64 20 69 6d 61 67 65 0a  | dithered image.|
00005a00  20 20 20 20 20 20 20 69  73 20 72 65 64 75 63 65  |       is reduce|
00005a10  64 20 69 6e 20 73 69 7a  65 2c 20 73 6f 20 74 68  |d in size, so th|
00005a20  61 74 20 74 68 65 20 6f  75 74 70 75 74 20 66 72  |at the output fr|
00005a30  6f 6d 20 74 68 65 20 73  63 61 6c 69 6e 67 20 70  |om the scaling p|
00005a40  72 6f 63 65 73 73 20 69  73 20 28 73 6f 6d 65 0a  |rocess is (some.|
00005a50  20 20 20 20 20 20 20 61  70 70 72 6f 78 69 6d 61  |       approxima|
00005a60  74 69 6f 6e 20 74 6f 29  20 74 68 65 20 6f 72 69  |tion to) the ori|
00005a70  67 69 6e 61 6c 20 67 72  65 79 20 6c 65 76 65 6c  |ginal grey level|
00005a80  73 3b 20 74 68 65 6e 20  72 61 6e 67 69 6e 67 20  |s; then ranging |
00005a90  63 61 6e 20 65 78 70 61  6e 64 20 74 68 69 73 0a  |can expand this.|
00005aa0  20 20 20 20 20 20 20 69  66 20 70 6f 73 73 69 62  |       if possib|
00005ab0  6c 65 2e 0a 20 20 20 28  32 29 20 73 68 61 72 70  |le..   (2) sharp|
00005ac0  65 6e 69 6e 67 20 63 61  6e 20 62 65 20 75 73 65  |ening can be use|
00005ad0  64 20 74 6f 20 6f 66 66  73 65 74 20 74 68 65 20  |d to offset the |
00005ae0  62 6c 75 72 72 69 6e 67  20 65 66 66 65 63 74 73  |blurring effects|
00005af0  20 6f 66 20 73 63 61 6c  69 6e 67 2e 0a 20 20 20  | of scaling..   |
00005b00  28 33 29 20 73 69 6e 63  65 20 74 68 65 20 6f 75  |(3) since the ou|
00005b10  74 70 75 74 20 70 69 78  65 6c 73 20 28 72 61 74  |tput pixels (rat|
00005b20  68 65 72 20 74 68 61 6e  20 74 68 65 20 69 6e 70  |her than the inp|
00005b30  75 74 20 70 69 78 65 6c  73 29 20 61 72 65 20 73  |ut pixels) are s|
00005b40  68 61 72 70 65 6e 65 64  2c 0a 20 20 20 20 20 20  |harpened,.      |
00005b50  20 74 68 65 20 65 66 66  65 63 74 20 6f 66 20 2d  | the effect of -|
00005b60  73 68 61 72 70 65 6e 4e  20 69 73 20 63 6f 6e 73  |sharpenN is cons|
00005b70  69 73 74 65 6e 74 20 6f  76 65 72 20 64 69 66 66  |istent over diff|
00005b80  65 72 65 6e 74 6c 79 20  73 63 61 6c 65 64 20 69  |erently scaled i|
00005b90  6d 61 67 65 73 2e 0a 0a  54 68 65 72 65 20 6d 61  |mages...There ma|
00005ba0  79 20 62 65 20 74 69 6d  65 73 20 77 68 65 6e 20  |y be times when |
00005bb0  74 68 69 73 20 61 75 74  6f 6d 61 74 69 63 20 73  |this automatic s|
00005bc0  65 6c 65 63 74 69 6f 6e  20 6f 66 20 6f 72 64 65  |election of orde|
00005bd0  72 20 67 65 74 73 20 69  74 20 77 72 6f 6e 67 2c  |r gets it wrong,|
00005be0  0a 70 61 72 74 69 63 75  6c 61 72 6c 79 20 77 68  |.particularly wh|
00005bf0  65 6e 20 63 68 61 6e 67  69 6e 67 20 74 68 65 20  |en changing the |
00005c00  61 73 70 65 63 74 20 72  61 74 69 6f 2c 20 69 74  |aspect ratio, it|
00005c10  20 69 73 20 70 6f 73 73  69 62 6c 65 20 74 6f 20  | is possible to |
00005c20  74 72 69 67 67 65 72 20  73 6f 6d 65 0a 75 6e 64  |trigger some.und|
00005c30  65 73 69 72 61 62 6c 65  20 73 68 61 72 70 65 6e  |esirable sharpen|
00005c40  69 6e 67 20 61 72 74 69  66 61 63 74 73 2e 20 55  |ing artifacts. U|
00005c50  73 65 20 74 68 65 20 70  72 6f 67 72 61 6d 20 74  |se the program t|
00005c60  77 69 63 65 20 77 69 74  68 20 73 68 61 72 70 65  |wice with sharpe|
00005c70  6e 69 6e 67 20 28 73 61  79 29 0a 64 69 73 61 62  |ning (say).disab|
00005c80  6c 65 64 20 61 6e 64 20  65 6e 61 62 6c 65 64 20  |led and enabled |
00005c90  69 6e 20 74 68 65 20 6f  72 64 65 72 20 72 65 71  |in the order req|
00005ca0  75 69 72 65 64 2e 0a 0a  45 78 61 6d 70 6c 65 73  |uired...Examples|
00005cb0  20 6f 66 20 75 73 65 3a  0a 0a 4d 61 6b 65 20 22  | of use:..Make "|
00005cc0  73 74 61 6e 64 61 72 64  20 70 61 6c 65 74 74 65  |standard palette|
00005cd0  22 20 76 65 72 73 69 6f  6e 73 20 6f 66 20 65 78  |" versions of ex|
00005ce0  69 73 74 69 6e 67 20 32  35 36 20 63 6f 6c 6f 75  |isting 256 colou|
00005cf0  72 20 69 6d 61 67 65 73  20 28 66 6f 72 20 65 78  |r images (for ex|
00005d00  61 6d 70 6c 65 0a 74 68  65 20 57 61 74 66 6f 72  |ample.the Watfor|
00005d10  64 20 64 69 67 69 74 69  73 65 72 20 70 6c 75 73  |d digitiser plus|
00005d20  20 63 6f 6c 6f 75 72 20  62 6f 61 72 64 20 64 6f  | colour board do|
00005d30  65 73 6e 27 74 20 75 73  65 20 74 68 65 20 73 74  |esn't use the st|
00005d40  61 6e 64 61 72 64 20 70  61 6c 65 74 74 65 29 2e  |andard palette).|
00005d50  0a 20 20 28 65 2e 67 2e  20 22 63 68 61 6e 67 65  |.  (e.g. "change|
00005d60  66 73 69 20 69 6e 20 6f  75 74 20 31 33 70 22 20  |fsi in out 13p" |
00005d70  66 6f 72 20 61 20 63 6f  6c 6f 75 72 65 64 20 57  |for a coloured W|
00005d80  61 74 66 6f 72 64 20 70  69 63 74 75 72 65 29 0a  |atford picture).|
00005d90  0a 4f 72 20 63 6f 6e 76  65 72 74 20 61 20 63 6f  |.Or convert a co|
00005da0  6c 6f 75 72 20 70 69 63  74 75 72 65 20 74 6f 20  |lour picture to |
00005db0  73 6f 6d 65 74 68 69 6e  67 20 79 6f 75 20 63 61  |something you ca|
00005dc0  6e 20 73 65 65 20 6f 6e  20 79 6f 75 72 20 68 69  |n see on your hi|
00005dd0  67 68 20 72 65 73 20 6d  6f 6e 6f 0a 6d 6f 6e 69  |gh res mono.moni|
00005de0  74 6f 72 2e 0a 20 20 28  65 2e 67 2e 20 22 63 68  |tor..  (e.g. "ch|
00005df0  61 6e 67 65 66 73 69 20  69 6e 20 6f 75 74 20 31  |angefsi in out 1|
00005e00  38 20 2d 73 68 61 72 70  65 6e 20 2d 69 6e 66 6f  |8 -sharpen -info|
00005e10  22 29 0a 0a 4f 72 20 63  6f 6e 76 65 72 74 20 61  |")..Or convert a|
00005e20  20 6c 61 72 67 65 20 6d  6f 6e 6f 63 68 72 6f 6d  | large monochrom|
00005e30  65 20 70 69 63 74 75 72  65 20 28 66 72 6f 6d 20  |e picture (from |
00005e40  61 20 73 63 61 6e 6e 65  72 2c 20 73 61 79 29 20  |a scanner, say) |
00005e50  74 6f 20 73 6f 6d 65 74  68 69 6e 67 0a 77 68 69  |to something.whi|
00005e60  63 68 20 63 61 6e 20 62  65 20 73 65 65 6e 2e 0a  |ch can be seen..|
00005e70  20 20 28 65 2e 67 2e 20  22 63 68 61 6e 67 65 66  |  (e.g. "changef|
00005e80  73 69 20 69 6e 20 6f 75  74 20 32 30 74 20 31 3a  |si in out 20t 1:|
00005e90  34 20 2d 67 61 6d 6d 61  22 29 0a 0a 4f 72 20 63  |4 -gamma")..Or c|
00005ea0  6f 6e 76 65 72 74 20 61  20 63 6f 6c 6f 75 72 20  |onvert a colour |
00005eb0  70 69 63 74 75 72 65 20  74 6f 20 67 72 65 79 20  |picture to grey |
00005ec0  73 63 61 6c 65 20 66 6f  72 20 74 68 65 20 64 65  |scale for the de|
00005ed0  73 6b 74 6f 70 2e 0a 20  20 28 65 2e 67 2e 20 22  |sktop..  (e.g. "|
00005ee0  63 68 61 6e 67 65 66 73  69 20 69 6e 20 6f 75 74  |changefsi in out|
00005ef0  20 32 30 22 29 0a 0a 4f  72 20 63 68 61 6e 67 65  | 20")..Or change|
00005f00  20 61 20 35 31 32 20 62  79 20 34 38 30 20 69 6d  | a 512 by 480 im|
00005f10  61 67 65 20 74 6f 20 73  74 61 6e 64 61 72 64 20  |age to standard |
00005f20  66 6f 72 6d 61 74 20 61  6e 64 20 61 73 70 65 63  |format and aspec|
00005f30  74 20 72 61 74 69 6f 0a  20 20 28 65 2e 67 2e 20  |t ratio.  (e.g. |
00005f40  22 63 68 61 6e 67 65 66  73 69 20 69 6e 20 6f 75  |"changefsi in ou|
00005f50  74 20 31 35 20 36 34 30  3a 35 31 32 20 35 31 32  |t 15 640:512 512|
00005f60  3a 34 38 30 22 29 0a 20  20 28 6f 72 20 22 63 68  |:480").  (or "ch|
00005f70  61 6e 67 65 66 73 69 20  69 6e 20 6f 75 74 20 3d  |angefsi in out =|
00005f80  20 2d 72 61 6e 67 65 22  29 0a 0a 4f 72 20 63 68  | -range")..Or ch|
00005f90  61 6e 67 65 20 74 6f 20  64 69 67 69 74 61 6c 20  |ange to digital |
00005fa0  72 2c 20 67 2c 20 62 0a  20 20 28 65 2e 67 2e 20  |r, g, b.  (e.g. |
00005fb0  22 63 68 61 6e 67 65 66  73 69 20 69 6e 20 6f 75  |"changefsi in ou|
00005fc0  74 20 32 30 64 20 2d 73  68 61 72 70 65 6e 31 36  |t 20d -sharpen16|
00005fd0  22 29 0a 0a 4f 72 20 63  6f 6e 76 65 72 74 20 61  |")..Or convert a|
00005fe0  20 70 69 63 74 75 72 65  20 66 6f 72 20 70 72 69  | picture for pri|
00005ff0  6e 74 69 6e 67 20 6f 6e  20 61 20 33 30 30 64 70  |nting on a 300dp|
00006000  69 20 6c 61 73 65 72 2e  0a 20 20 28 65 2e 67 2e  |i laser..  (e.g.|
00006010  20 22 63 68 61 6e 67 65  66 73 69 20 69 6e 20 6f  | "changefsi in o|
00006020  75 74 20 31 38 63 20 33  30 30 3a 39 30 20 2d 73  |ut 18c 300:90 -s|
00006030  68 61 72 70 65 6e 22 29  0a 0a 41 6e 64 20 6d 61  |harpen")..And ma|
00006040  6e 79 20 6d 6f 72 65 20  75 73 65 73 20 73 75 63  |ny more uses suc|
00006050  68 20 61 73 20 6d 61 6b  69 6e 67 20 6d 69 6e 69  |h as making mini|
00006060  61 74 75 72 65 73 20 6f  66 20 70 69 63 74 75 72  |atures of pictur|
00006070  65 73 2c 20 61 6e 69 6d  61 74 65 64 20 73 65 71  |es, animated seq|
00006080  75 65 6e 63 65 73 20 6f  66 0a 70 69 63 74 75 72  |uences of.pictur|
00006090  65 73 20 63 68 61 6e 67  69 6e 67 20 73 69 7a 65  |es changing size|
000060a0  20 28 6f 72 20 73 68 61  72 70 6e 65 73 73 21 29  | (or sharpness!)|
000060b0  2c 20 63 6f 6e 76 65 72  74 69 6e 67 20 41 72 74  |, converting Art|
000060c0  69 73 61 6e 20 70 69 63  74 75 72 65 73 20 74 6f  |isan pictures to|
000060d0  20 74 68 65 0a 64 65 73  6b 74 6f 70 20 28 74 72  | the.desktop (tr|
000060e0  79 20 6c 6f 6f 6b 69 6e  67 20 61 74 20 74 68 65  |y looking at the|
000060f0  20 41 72 74 69 73 61 6e  20 47 61 72 64 65 6e 20  | Artisan Garden |
00006100  77 69 74 68 20 74 68 65  20 64 65 73 6b 74 6f 70  |with the desktop|
00006110  20 69 6e 20 32 35 36 20  63 6f 6c 6f 75 72 73 20  | in 256 colours |
00006120  61 6e 64 0a 43 68 61 6e  67 65 46 53 49 27 73 20  |and.ChangeFSI's |
00006130  76 65 72 73 69 6f 6e 20  2d 20 74 68 65 20 73 74  |version - the st|
00006140  72 69 70 65 73 20 6f 6e  20 74 68 65 20 6c 61 77  |ripes on the law|
00006150  6e 20 76 61 6e 69 73 68  20 77 69 74 68 20 74 68  |n vanish with th|
00006160  65 20 73 74 61 6e 64 61  72 64 0a 76 65 72 73 69  |e standard.versi|
00006170  6f 6e 29 2e 20 4f 62 76  69 6f 75 73 6c 79 20 79  |on). Obviously y|
00006180  6f 75 20 77 69 6c 6c 20  6e 65 65 64 20 74 6f 20  |ou will need to |
00006190  68 61 76 65 20 63 61 70  74 75 72 65 64 20 69 6e  |have captured in|
000061a0  70 75 74 20 61 73 20 61  20 73 70 72 69 74 65 20  |put as a sprite |
000061b0  66 69 72 73 74 21 0a 55  73 69 6e 67 20 6d 6f 72  |first!.Using mor|
000061c0  65 20 70 69 78 65 6c 73  20 70 65 72 20 69 6e 63  |e pixels per inc|
000061d0  68 20 63 61 6e 20 69 6d  70 72 6f 76 65 20 74 68  |h can improve th|
000061e0  65 20 71 75 61 6c 69 74  79 20 6f 66 20 74 68 65  |e quality of the|
000061f0  20 72 65 73 75 6c 74 2c  20 70 61 72 74 69 63 75  | result, particu|
00006200  6c 61 72 6c 79 0a 63 6f  6e 76 65 72 74 69 6e 67  |larly.converting|
00006210  20 74 6f 20 6d 75 6c 74  69 73 79 6e 63 20 6d 6f  | to multisync mo|
00006220  64 65 73 2e 0a 0a 4e 6f  74 65 20 74 68 61 74 2c  |des...Note that,|
00006230  20 66 6f 72 20 61 6c 6c  20 77 6f 72 6b 20 77 69  | for all work wi|
00006240  74 68 20 43 68 61 6e 67  65 46 53 49 2c 20 69 74  |th ChangeFSI, it|
00006250  20 69 73 20 61 20 67 6f  6f 64 20 69 64 65 61 20  | is a good idea |
00006260  74 6f 20 73 74 61 72 74  20 66 72 6f 6d 20 74 68  |to start from th|
00006270  65 0a 75 6e 70 72 6f 63  65 73 73 65 64 20 69 6e  |e.unprocessed in|
00006280  70 75 74 20 65 61 63 68  20 74 69 6d 65 20 61 6e  |put each time an|
00006290  64 20 64 6f 20 65 76 65  72 79 74 68 69 6e 67 20  |d do everything |
000062a0  69 6e 20 6f 6e 65 20 70  61 73 73 20 28 72 61 74  |in one pass (rat|
000062b0  68 65 72 20 74 68 61 6e  20 75 73 69 6e 67 0a 74  |her than using.t|
000062c0  68 65 20 70 72 6f 67 72  61 6d 20 73 65 76 65 72  |he program sever|
000062d0  61 6c 20 74 69 6d 65 73  20 77 69 74 68 20 73 69  |al times with si|
000062e0  6d 70 6c 65 20 61 72 67  75 6d 65 6e 74 73 29 2e  |mple arguments).|
000062f0  20 49 74 20 69 73 20 6e  6f 74 20 61 20 67 6f 6f  | It is not a goo|
00006300  64 20 69 64 65 61 20 74  6f 0a 73 68 61 72 70 65  |d idea to.sharpe|
00006310  6e 20 61 20 64 69 74 68  65 72 65 64 20 69 6d 61  |n a dithered ima|
00006320  67 65 20 28 75 6e 6c 65  73 73 20 69 74 20 68 61  |ge (unless it ha|
00006330  73 20 62 65 65 6e 20 73  68 72 75 6e 6b 29 2e 0a  |s been shrunk)..|
00006340  0a 2a 2a 2a 20 49 74 20  69 73 20 61 20 76 65 72  |.*** It is a ver|
00006350  79 20 67 6f 6f 64 20 69  64 65 61 20 74 6f 20 6b  |y good idea to k|
00006360  65 65 70 20 74 68 65 20  68 69 67 68 65 73 74 20  |eep the highest |
00006370  72 65 73 6f 6c 75 74 69  6f 6e 20 6d 61 73 74 65  |resolution maste|
00006380  72 20 74 68 61 74 20 79  6f 75 20 63 61 6e 0a 61  |r that you can.a|
00006390  66 66 6f 72 64 20 74 68  65 20 64 69 73 63 20 73  |fford the disc s|
000063a0  70 61 63 65 20 66 6f 72  2e 2e 2e 2e 0a 0a 54 68  |pace for......Th|
000063b0  65 20 43 68 61 6e 67 65  46 53 49 20 70 72 6f 67  |e ChangeFSI prog|
000063c0  72 61 6d 20 63 61 6e 20  61 6c 73 6f 20 63 6f 6e  |ram can also con|
000063d0  76 65 72 74 20 66 72 6f  6d 20 6e 6f 6e 20 52 49  |vert from non RI|
000063e0  53 43 20 4f 53 20 73 70  72 69 74 65 20 66 6f 72  |SC OS sprite for|
000063f0  6d 61 74 73 20 77 68 69  6c 65 0a 64 6f 69 6e 67  |mats while.doing|
00006400  20 61 6c 6c 20 6f 66 20  74 68 65 20 61 62 6f 76  | all of the abov|
00006410  65 20 70 72 6f 63 65 73  73 69 6e 67 2e 20 43 68  |e processing. Ch|
00006420  61 6e 67 65 46 53 49 20  77 69 6c 6c 20 77 6f 72  |angeFSI will wor|
00006430  6b 20 6f 75 74 20 77 68  61 74 20 74 68 65 20 66  |k out what the f|
00006440  6f 72 6d 61 74 20 69 73  0a 61 75 74 6f 6d 61 74  |ormat is.automat|
00006450  69 63 61 6c 6c 79 2e 20  46 6f 72 20 6e 61 74 69  |ically. For nati|
00006460  76 65 20 52 49 53 43 20  4f 53 20 66 6f 72 6d 61  |ve RISC OS forma|
00006470  74 73 2c 20 69 74 20 75  73 65 73 20 74 68 65 20  |ts, it uses the |
00006480  66 69 6c 65 74 79 70 65  20 61 6e 64 20 74 68 65  |filetype and the|
00006490  72 65 20 63 61 6e 0a 62  65 20 6e 6f 20 63 6f 6e  |re can.be no con|
000064a0  66 75 73 69 6f 6e 2e 20  46 6f 72 20 61 6c 69 65  |fusion. For alie|
000064b0  6e 20 66 6f 72 6d 61 74  73 2c 20 69 74 20 66 69  |n formats, it fi|
000064c0  72 73 74 20 74 72 69 65  73 20 6c 6f 6f 6b 69 6e  |rst tries lookin|
000064d0  67 20 66 6f 72 20 70 61  72 74 69 63 75 6c 61 72  |g for particular|
000064e0  0a 69 64 65 6e 74 69 66  79 69 6e 67 20 69 6e 66  |.identifying inf|
000064f0  6f 72 6d 61 74 69 6f 6e  20 69 6e 73 69 64 65 20  |ormation inside |
00006500  74 68 65 20 66 69 6c 65  20 61 6e 64 20 74 68 65  |the file and the|
00006510  6e 20 28 69 66 20 74 68  69 73 20 66 61 69 6c 73  |n (if this fails|
00006520  20 74 6f 20 68 61 76 65  0a 69 64 65 6e 74 69 66  | to have.identif|
00006530  69 65 64 20 61 20 66 6f  72 6d 61 74 29 20 74 72  |ied a format) tr|
00006540  69 65 73 20 75 73 69 6e  67 20 74 68 65 20 66 69  |ies using the fi|
00006550  6c 65 20 6e 61 6d 65 20  69 74 73 65 6c 66 2e 20  |le name itself. |
00006560  53 65 65 20 74 68 65 20  64 65 74 61 69 6c 73 20  |See the details |
00006570  62 65 6c 6f 77 3a 0a 0a  54 68 65 20 52 49 53 43  |below:..The RISC|
00006580  20 4f 53 20 73 70 72 69  74 65 20 66 6f 72 6d 61  | OS sprite forma|
00006590  74 0a 20 43 6f 6e 74 61  69 6e 73 20 31 2c 20 32  |t. Contains 1, 2|
000065a0  2c 20 34 20 6f 72 20 38  20 62 69 74 73 20 70 65  |, 4 or 8 bits pe|
000065b0  72 20 70 69 78 65 6c 20  77 69 74 68 20 61 20 6d  |r pixel with a m|
000065c0  6f 64 69 66 69 63 61 74  69 6f 6e 20 70 61 6c 65  |odification pale|
000065d0  74 74 65 20 6f 66 20 75  70 20 74 6f 0a 20 31 36  |tte of up to. 16|
000065e0  20 65 6e 74 72 69 65 73  3b 20 61 6e 79 20 6e 75  | entries; any nu|
000065f0  6d 62 65 72 20 6f 66 20  70 69 78 65 6c 73 20 77  |mber of pixels w|
00006600  69 64 65 20 61 6e 64 20  68 69 67 68 20 75 6e 63  |ide and high unc|
00006610  6f 6d 70 72 65 73 73 65  64 2e 20 44 65 74 61 69  |ompressed. Detai|
00006620  6c 73 20 61 72 65 20 69  6e 0a 20 41 63 6f 72 6e  |ls are in. Acorn|
00006630  27 73 20 50 72 6f 67 72  61 6d 6d 65 72 27 73 20  |'s Programmer's |
00006640  52 65 66 65 72 65 6e 63  65 20 4d 61 6e 75 61 6c  |Reference Manual|
00006650  2e 0a 20 2b 20 52 65 63  6f 67 6e 69 73 65 64 20  |.. + Recognised |
00006660  62 79 20 66 69 6c 65 20  74 79 70 65 20 46 46 39  |by file type FF9|
00006670  20 28 61 20 70 61 69 6e  74 20 62 72 75 73 68 20  | (a paint brush |
00006680  61 6e 64 20 68 6f 75 73  65 20 69 63 6f 6e 29 0a  |and house icon).|
00006690  20 2d 20 44 65 74 61 69  6c 73 20 6f 66 20 68 6f  | - Details of ho|
000066a0  77 20 6d 61 6e 79 20 62  69 74 73 20 70 65 72 20  |w many bits per |
000066b0  70 69 78 65 6c 20 61 6e  64 20 74 68 65 20 70 69  |pixel and the pi|
000066c0  78 65 6c 20 73 69 7a 65  20 61 72 65 20 6f 62 74  |xel size are obt|
000066d0  61 69 6e 65 64 20 66 72  6f 6d 0a 20 20 20 74 68  |ained from.   th|
000066e0  65 20 6f 70 65 72 61 74  69 6e 67 20 73 79 73 74  |e operating syst|
000066f0  65 6d 20 28 72 61 74 68  65 72 20 74 68 61 6e 20  |em (rather than |
00006700  62 65 69 6e 67 20 69 6e  20 74 68 65 20 66 69 6c  |being in the fil|
00006710  65 29 20 66 72 6f 6d 20  74 68 65 20 22 4d 4f 44  |e) from the "MOD|
00006720  45 22 0a 20 20 20 6e 75  6d 62 65 72 2e 20 4d 6f  |E".   number. Mo|
00006730  64 65 20 65 78 74 65 6e  73 69 6f 6e 73 20 63 61  |de extensions ca|
00006740  6e 20 72 65 73 75 6c 74  20 69 6e 20 61 20 73 6f  |n result in a so|
00006750  75 72 63 65 20 69 6d 61  67 65 20 63 6f 6e 74 61  |urce image conta|
00006760  69 6e 69 6e 67 20 61 20  4d 4f 44 45 0a 20 20 20  |ining a MODE.   |
00006770  6e 75 6d 62 65 72 20 77  68 69 63 68 20 79 6f 75  |number which you|
00006780  72 20 63 6f 6d 70 75 74  65 72 20 64 6f 65 73 20  |r computer does |
00006790  6e 6f 74 20 75 6e 64 65  72 73 74 61 6e 64 2e 0a  |not understand..|
000067a0  20 2d 20 4d 61 73 6b 20  69 6e 66 6f 72 6d 61 74  | - Mask informat|
000067b0  69 6f 6e 20 69 67 6e 6f  72 65 64 0a 20 2d 20 4c  |ion ignored. - L|
000067c0  65 66 74 68 61 6e 64 20  77 61 73 74 61 67 65 20  |efthand wastage |
000067d0  69 67 6e 6f 72 65 64 0a  0a 54 68 65 20 6e 65 77  |ignored..The new|
000067e0  20 52 49 53 43 20 4f 53  20 73 70 72 69 74 65 20  | RISC OS sprite |
000067f0  66 6f 72 6d 61 74 0a 20  43 6f 6e 74 61 69 6e 73  |format. Contains|
00006800  20 31 2c 20 32 2c 20 34  2c 20 38 2c 20 31 36 20  | 1, 2, 4, 8, 16 |
00006810  6f 72 20 33 32 20 62 69  74 73 20 70 65 72 20 70  |or 32 bits per p|
00006820  69 78 65 6c 2e 0a 20 2b  20 52 65 63 6f 67 6e 69  |ixel.. + Recogni|
00006830  73 65 64 20 62 79 20 66  69 6c 65 20 74 79 70 65  |sed by file type|
00006840  20 46 46 39 0a 20 2b 20  6e 6f 20 70 72 6f 62 6c  | FF9. + no probl|
00006850  65 6d 20 77 69 74 68 20  6d 6f 64 65 20 65 78 74  |em with mode ext|
00006860  65 6e 73 69 6f 6e 73 3a  20 69 6e 66 6f 72 6d 61  |ensions: informa|
00006870  74 69 6f 6e 20 69 73 20  63 6f 64 65 64 20 69 6e  |tion is coded in|
00006880  74 6f 20 74 68 65 20 66  6f 72 6d 61 74 0a 20 2d  |to the format. -|
00006890  20 4d 61 73 6b 20 69 6e  66 6f 72 6d 61 74 69 6f  | Mask informatio|
000068a0  6e 20 69 67 6e 6f 72 65  64 0a 0a 4b 6f 64 61 6b  |n ignored..Kodak|
000068b0  20 50 68 6f 74 6f 43 44  0a 20 32 34 20 62 69 74  | PhotoCD. 24 bit|
000068c0  20 70 65 72 20 70 69 78  65 6c 20 69 6d 61 67 65  | per pixel image|
000068d0  73 20 61 74 20 76 61 72  69 6f 75 73 20 72 65 73  |s at various res|
000068e0  6f 6c 75 74 69 6f 6e 73  0a 20 2b 20 52 65 63 6f  |olutions. + Reco|
000068f0  67 6e 69 73 65 64 20 62  79 20 66 69 6c 65 20 74  |gnised by file t|
00006900  79 70 65 20 42 45 38 0a  20 2d 20 53 65 74 20 43  |ype BE8. - Set C|
00006910  68 61 6e 67 65 46 53 49  24 50 43 44 49 6e 64 65  |hangeFSI$PCDInde|
00006920  78 20 74 6f 20 72 65 61  64 20 72 65 73 6f 6c 75  |x to read resolu|
00006930  74 69 6f 6e 73 20 6f 74  68 65 72 20 74 68 61 6e  |tions other than|
00006940  20 62 61 73 65 20 28 3d  33 29 0a 0a 54 68 65 20  | base (=3)..The |
00006950  41 72 56 69 73 20 66 6f  72 6d 61 74 20 5b 6f 66  |ArVis format [of|
00006960  20 41 72 56 69 73 20 4d  75 6c 74 69 6d 65 64 69  | ArVis Multimedi|
00006970  61 5d 0a 20 43 6f 6e 74  61 69 6e 73 20 35 20 62  |a]. Contains 5 b|
00006980  69 74 73 20 6f 66 20 72  65 64 2c 20 67 72 65 65  |its of red, gree|
00006990  6e 20 61 6e 64 20 62 6c  75 65 20 69 6e 66 6f 72  |n and blue infor|
000069a0  6d 61 74 69 6f 6e 20 65  6e 63 6f 64 65 64 20 69  |mation encoded i|
000069b0  6e 74 6f 20 74 77 6f 20  52 49 53 43 20 4f 53 0a  |nto two RISC OS.|
000069c0  20 73 70 72 69 74 65 73  20 22 48 49 50 2e 3c 66  | sprites "HIP.<f|
000069d0  69 6c 65 6e 61 6d 65 3e  22 20 61 6e 64 20 22 4c  |ilename>" and "L|
000069e0  4f 50 2e 3c 66 69 6c 65  6e 61 6d 65 3e 22 20 63  |OP.<filename>" c|
000069f0  6f 6d 70 72 69 73 69 6e  67 20 61 20 36 34 30 20  |omprising a 640 |
00006a00  70 69 78 65 6c 20 77 69  64 65 0a 20 61 6e 64 20  |pixel wide. and |
00006a10  32 35 36 20 6c 69 6e 65  20 74 61 6c 6c 20 69 6d  |256 line tall im|
00006a20  61 67 65 20 77 69 74 68  20 70 69 78 65 6c 73 20  |age with pixels |
00006a30  73 69 7a 65 64 20 31 3a  32 2e 20 44 65 74 61 69  |sized 1:2. Detai|
00006a40  6c 73 20 66 72 6f 6d 20  41 72 56 69 73 20 4d 75  |ls from ArVis Mu|
00006a50  6c 74 69 6d 65 64 69 61  0a 20 2d 20 52 65 63 6f  |ltimedia. - Reco|
00006a60  67 6e 69 73 65 64 20 62  79 20 70 72 6f 76 69 64  |gnised by provid|
00006a70  69 6e 67 20 74 68 65 20  48 49 50 2e 3c 66 69 6c  |ing the HIP.<fil|
00006a80  65 6e 61 6d 65 3e 20 28  77 68 69 63 68 20 6d 75  |ename> (which mu|
00006a90  73 74 20 62 65 20 6f 66  20 66 69 6c 65 20 74 79  |st be of file ty|
00006aa0  70 65 20 46 46 39 29 0a  20 2d 20 55 6e 63 6f 6d  |pe FF9). - Uncom|
00006ab0  70 72 65 73 73 65 64 20  28 69 6e 64 65 65 64 20  |pressed (indeed |
00006ac0  72 65 70 72 65 73 65 6e  74 73 20 31 36 20 62 69  |represents 16 bi|
00006ad0  74 73 20 69 6e 73 74 65  61 64 20 6f 66 20 31 35  |ts instead of 15|
00006ae0  29 2e 0a 0a 54 68 65 20  50 69 6e 65 61 70 70 6c  |)...The Pineappl|
00006af0  65 20 63 6f 6c 6f 75 72  20 64 69 67 69 74 69 73  |e colour digitis|
00006b00  65 72 20 66 6f 72 6d 61  74 20 28 6f 66 20 50 69  |er format (of Pi|
00006b10  6e 65 61 70 70 6c 65 20  53 6f 66 74 77 61 72 65  |neapple Software|
00006b20  29 0a 20 43 6f 6e 74 61  69 6e 73 20 36 20 62 69  |). Contains 6 bi|
00006b30  74 73 20 6f 66 20 67 72  65 65 6e 2c 20 35 20 62  |ts of green, 5 b|
00006b40  69 74 73 20 6f 66 20 72  65 64 20 61 6e 64 20 62  |its of red and b|
00006b50  6c 75 65 20 69 6e 66 6f  72 6d 61 74 69 6f 6e 20  |lue information |
00006b60  66 69 6c 65 64 20 61 73  20 61 0a 20 73 69 6e 67  |filed as a. sing|
00006b70  6c 65 20 64 61 74 61 20  66 69 6c 65 20 73 74 61  |le data file sta|
00006b80  72 74 69 6e 67 20 22 46  53 49 66 69 6c 65 22 20  |rting "FSIfile" |
00006b90  63 6f 6d 70 72 69 73 69  6e 67 20 61 20 35 31 32  |comprising a 512|
00006ba0  20 70 69 78 65 6c 20 77  69 64 65 20 61 6e 64 20  | pixel wide and |
00006bb0  32 35 36 0a 20 6c 69 6e  65 20 74 61 6c 6c 20 69  |256. line tall i|
00006bc0  6d 61 67 65 20 77 69 74  68 20 70 69 78 65 6c 73  |mage with pixels|
00006bd0  20 73 69 7a 65 64 20 31  3a 32 2e 0a 20 2d 20 52  | sized 1:2.. - R|
00006be0  65 63 6f 67 6e 69 73 65  64 20 62 79 20 22 46 53  |ecognised by "FS|
00006bf0  49 66 69 6c 65 22 20 69  6e 20 74 68 65 20 66 69  |Ifile" in the fi|
00006c00  6c 65 20 28 77 68 69 63  68 20 63 61 6e 20 62 65  |le (which can be|
00006c10  20 61 6e 79 20 74 79 70  65 29 0a 20 2d 20 55 6e  | any type). - Un|
00006c20  63 6f 6d 70 72 65 73 73  65 64 0a 0a 54 68 65 20  |compressed..The |
00006c30  57 61 74 66 6f 72 64 20  56 69 64 65 6f 20 44 69  |Watford Video Di|
00006c40  67 69 74 69 73 65 72 20  22 70 69 63 74 75 72 65  |gitiser "picture|
00006c50  22 20 66 6f 72 6d 61 74  0a 20 43 6f 6e 74 61 69  |" format. Contai|
00006c60  6e 73 20 61 20 72 75 6e  20 6c 65 6e 67 74 68 20  |ns a run length |
00006c70  65 6e 63 6f 64 65 64 20  36 34 20 67 72 65 79 20  |encoded 64 grey |
00006c80  6c 65 76 65 6c 20 35 31  32 20 70 69 78 65 6c 20  |level 512 pixel |
00006c90  77 69 64 65 2c 20 32 35  36 20 6c 69 6e 65 20 69  |wide, 256 line i|
00006ca0  6d 61 67 65 2c 0a 20 77  69 74 68 20 70 69 78 65  |mage,. with pixe|
00006cb0  6c 73 20 73 69 7a 65 64  20 31 3a 32 2e 20 44 65  |ls sized 1:2. De|
00006cc0  74 61 69 6c 73 20 66 72  6f 6d 20 57 61 74 66 6f  |tails from Watfo|
00006cd0  72 64 20 45 6c 65 63 74  72 6f 6e 69 63 73 20 4c  |rd Electronics L|
00006ce0  74 64 2e 0a 20 2b 20 52  65 63 6f 67 6e 69 73 65  |td.. + Recognise|
00006cf0  64 20 62 79 20 66 69 6c  65 20 74 79 70 65 20 44  |d by file type D|
00006d00  46 41 20 28 61 20 73 6d  61 6c 6c 20 67 72 65 79  |FA (a small grey|
00006d10  20 70 69 63 74 75 72 65  20 6f 66 20 53 74 65 76  | picture of Stev|
00006d20  69 65 20 4e 69 63 6b 73  29 0a 20 2d 20 57 61 72  |ie Nicks). - War|
00006d30  6e 69 6e 67 3a 20 64 6f  6e 27 74 20 66 6f 72 67  |ning: don't forg|
00006d40  65 74 20 74 6f 20 73 61  76 65 20 74 68 65 20 70  |et to save the p|
00006d50  69 63 74 75 72 65 73 20  69 6e 20 2a 75 6e 2d 64  |ictures in *un-d|
00006d60  69 74 68 65 72 65 64 2a  20 73 74 61 74 65 21 0a  |ithered* state!.|
00006d70  20 57 68 65 6e 20 75 73  65 64 20 77 69 74 68 20  | When used with |
00006d80  61 20 63 6f 6c 6f 75 72  20 63 6f 6e 76 65 72 74  |a colour convert|
00006d90  65 72 2c 20 43 68 61 6e  67 65 46 53 49 20 63 61  |er, ChangeFSI ca|
00006da0  6e 20 72 65 61 64 20 74  68 72 65 65 20 63 6f 6c  |n read three col|
00006db0  6f 75 72 0a 20 73 65 70  61 72 61 74 69 6f 6e 73  |our. separations|
00006dc0  20 73 74 6f 72 65 64 20  69 6e 20 61 20 64 69 72  | stored in a dir|
00006dd0  65 63 74 6f 72 79 20 6f  66 20 73 65 70 61 72 61  |ectory of separa|
00006de0  74 65 20 22 72 65 64 22  2c 20 22 67 72 65 65 6e  |te "red", "green|
00006df0  22 20 61 6e 64 20 22 62  6c 75 65 22 0a 20 66 69  |" and "blue". fi|
00006e00  6c 65 73 2e 20 42 65 77  61 72 65 20 6f 66 20 61  |les. Beware of a|
00006e10  75 74 6f 2d 67 61 69 6e  2f 63 6f 6e 74 72 61 73  |uto-gain/contras|
00006e20  74 20 77 68 65 6e 20 75  73 69 6e 67 20 73 75 63  |t when using suc|
00006e30  68 20 69 6e 66 6f 72 6d  61 74 69 6f 6e 21 0a 0a  |h information!..|
00006e40  54 68 65 20 50 72 6f 41  72 74 69 73 61 6e 20 63  |The ProArtisan c|
00006e50  6f 6d 70 72 65 73 73 65  64 20 70 69 63 74 75 72  |ompressed pictur|
00006e60  65 20 66 69 6c 65 20 66  6f 72 6d 61 74 0a 20 43  |e file format. C|
00006e70  6f 6e 74 61 69 6e 73 20  61 20 28 6d 69 6c 64 6c  |ontains a (mildl|
00006e80  79 29 20 63 6f 6d 70 72  65 73 73 65 64 20 4d 4f  |y) compressed MO|
00006e90  44 45 20 31 35 20 28 36  34 30 20 62 79 20 32 35  |DE 15 (640 by 25|
00006ea0  36 20 62 79 20 32 35 36  20 63 6f 6c 6f 75 72 73  |6 by 256 colours|
00006eb0  29 20 70 69 63 74 75 72  65 2e 0a 20 44 65 74 61  |) picture.. Deta|
00006ec0  69 6c 73 20 66 72 6f 6d  20 43 6c 61 72 65 73 2e  |ils from Clares.|
00006ed0  0a 20 2b 20 52 65 63 6f  67 6e 69 73 65 64 20 62  |. + Recognised b|
00006ee0  79 20 66 69 6c 65 20 74  79 70 65 20 44 45 32 20  |y file type DE2 |
00006ef0  28 61 20 62 65 69 67 65  20 6d 6f 6e 69 74 6f 72  |(a beige monitor|
00006f00  20 69 6e 20 61 20 67 72  65 79 20 73 75 72 72 6f  | in a grey surro|
00006f10  75 6e 64 29 0a 0a 54 68  65 20 54 69 6d 65 53 74  |und)..The TimeSt|
00006f20  65 70 20 73 61 74 65 6c  6c 69 74 65 20 69 6d 61  |ep satellite ima|
00006f30  67 65 20 66 6f 72 6d 61  74 0a 20 54 68 69 73 20  |ge format. This |
00006f40  67 69 76 65 73 20 61 6e  20 75 6e 63 6f 6d 70 72  |gives an uncompr|
00006f50  65 73 73 65 64 20 38 30  30 20 62 79 20 38 30 30  |essed 800 by 800|
00006f60  20 77 69 74 68 20 32 35  36 20 67 72 65 79 20 6c  | with 256 grey l|
00006f70  65 76 65 6c 73 2e 0a 20  2b 20 52 65 63 6f 67 6e  |evels.. + Recogn|
00006f80  69 73 65 64 20 62 79 20  66 69 6c 65 20 74 79 70  |ised by file typ|
00006f90  65 20 37 41 30 20 28 69  63 6f 6e 20 6e 65 76 65  |e 7A0 (icon neve|
00006fa0  72 20 73 65 65 6e 29 0a  20 2d 20 4e 6f 20 72 65  |r seen). - No re|
00006fb0  73 6f 6c 75 74 69 6f 6e  20 73 70 65 63 69 66 69  |solution specifi|
00006fc0  65 64 2c 20 65 71 75 61  6c 20 74 6f 20 6d 6f 64  |ed, equal to mod|
00006fd0  65 20 32 37 20 61 73 73  75 6d 65 64 0a 20 2d 20  |e 27 assumed. - |
00006fe0  44 6f 63 75 6d 65 6e 74  61 74 69 6f 6e 20 6e 65  |Documentation ne|
00006ff0  76 65 72 20 73 65 65 6e  2e 20 41 6e 20 65 78 74  |ver seen. An ext|
00007000  72 61 20 68 65 61 64 65  72 20 66 69 6c 65 20 3c  |ra header file <|
00007010  6e 61 6d 65 3e 21 20 69  73 20 6e 6f 74 20 75 6e  |name>! is not un|
00007020  64 65 72 73 74 6f 6f 64  0a 20 20 20 61 74 20 61  |derstood.   at a|
00007030  6c 6c 2e 2e 2e 2e 2e 0a  0a 43 43 49 52 36 30 31  |ll.......CCIR601|
00007040  20 34 3a 32 3a 32 20 69  6d 61 67 65 73 0a 20 43  | 4:2:2 images. C|
00007050  6f 6e 74 61 69 6e 20 37  32 30 20 70 69 78 65 6c  |ontain 720 pixel|
00007060  73 20 62 79 20 32 38 38  20 72 6f 77 73 20 28 50  |s by 288 rows (P|
00007070  41 4c 29 20 5b 32 34 33  20 72 6f 77 73 20 4e 54  |AL) [243 rows NT|
00007080  53 43 5d 20 59 55 56 20  63 6f 64 65 64 20 77 69  |SC] YUV coded wi|
00007090  74 68 0a 20 70 69 78 65  6c 73 20 73 69 7a 65 64  |th. pixels sized|
000070a0  20 31 3a 32 2e 0a 20 2b  20 52 65 63 6f 67 6e 69  | 1:2.. + Recogni|
000070b0  73 65 64 20 62 79 20 66  69 6c 65 20 74 79 70 65  |sed by file type|
000070c0  20 36 30 31 0a 20 2d 20  6f 6e 65 20 66 69 65 6c  | 601. - one fiel|
000070d0  64 20 6f 6e 6c 79 0a 0a  41 6e 6f 74 68 65 72 20  |d only..Another |
000070e0  54 69 6d 65 53 74 65 70  20 73 61 74 65 6c 6c 69  |TimeStep satelli|
000070f0  74 65 20 69 6d 61 67 65  20 66 6f 72 6d 61 74 0a  |te image format.|
00007100  20 47 69 76 69 6e 67 20  61 6e 20 75 6e 63 6f 6d  | Giving an uncom|
00007110  70 72 65 73 73 65 64 20  31 32 38 20 70 69 78 65  |pressed 128 pixe|
00007120  6c 73 20 77 69 64 65 20  62 79 20 32 35 36 20 6c  |ls wide by 256 l|
00007130  69 6e 65 73 20 77 69 74  68 20 32 35 36 20 67 72  |ines with 256 gr|
00007140  65 79 20 6c 65 76 65 6c  73 2c 0a 20 70 69 78 65  |ey levels,. pixe|
00007150  6c 73 20 73 69 7a 65 64  20 32 3a 31 2e 20 55 73  |ls sized 2:1. Us|
00007160  65 64 20 62 79 20 54 69  6d 65 53 74 65 70 27 73  |ed by TimeStep's|
00007170  20 21 49 6d 50 72 6f 63  65 73 73 20 61 70 70 6c  | !ImProcess appl|
00007180  69 63 61 74 69 6f 6e 2e  0a 20 2b 20 52 65 63 6f  |ication.. + Reco|
00007190  67 6e 69 73 65 64 20 62  79 20 66 69 6c 65 20 74  |gnised by file t|
000071a0  79 70 65 20 33 30 30 20  28 22 69 22 20 69 6e 20  |ype 300 ("i" in |
000071b0  61 20 64 6f 63 75 6d 65  6e 74 20 66 72 61 6d 65  |a document frame|
000071c0  29 0a 20 2d 20 44 6f 63  75 6d 65 6e 74 61 74 69  |). - Documentati|
000071d0  6f 6e 20 6e 65 76 65 72  20 73 65 65 6e 2e 0a 20  |on never seen.. |
000071e0  2d 20 41 20 62 69 74 20  63 6f 61 72 73 65 0a 20  |- A bit coarse. |
000071f0  54 68 65 20 67 72 65 79  20 6c 65 76 65 6c 73 20  |The grey levels |
00007200  72 65 70 72 65 73 65 6e  74 20 69 6e 74 65 6e 73  |represent intens|
00007210  69 74 79 20 69 6e 20 76  61 72 69 6f 75 73 20 64  |ity in various d|
00007220  69 66 66 65 72 65 6e 74  20 77 61 76 65 20 62 61  |ifferent wave ba|
00007230  6e 64 73 2e 20 42 79 0a  20 6e 61 6d 69 6e 67 20  |nds. By. naming |
00007240  66 69 6c 65 73 20 22 72  65 64 22 2c 20 22 67 72  |files "red", "gr|
00007250  65 65 6e 22 20 61 6e 64  20 22 62 6c 75 65 22 20  |een" and "blue" |
00007260  61 6e 64 20 68 61 6e 64  69 6e 67 20 43 68 61 6e  |and handing Chan|
00007270  67 65 46 53 49 20 74 68  65 20 64 69 72 65 63 74  |geFSI the direct|
00007280  6f 72 79 2c 0a 20 79 6f  75 20 63 61 6e 20 70 72  |ory,. you can pr|
00007290  6f 64 75 63 65 20 61 20  66 61 6c 73 65 20 63 6f  |oduce a false co|
000072a0  6c 6f 75 72 20 69 6d 61  67 65 2e 20 48 6f 75 72  |lour image. Hour|
000072b0  73 20 6f 66 20 65 78 70  65 72 69 6d 65 6e 74 61  |s of experimenta|
000072c0  74 69 6f 6e 20 63 61 6e  20 70 72 6f 64 75 63 65  |tion can produce|
000072d0  0a 20 61 6e 20 61 6c 6d  6f 73 74 20 72 65 61 73  |. an almost reas|
000072e0  6f 6e 61 62 6c 65 20 70  69 63 74 75 72 65 2e 2e  |onable picture..|
000072f0  2e 0a 0a 54 68 65 20 41  49 4d 20 61 6e 64 20 57  |...The AIM and W|
00007300  69 6c 64 20 56 69 73 69  6f 6e 20 56 31 30 20 66  |ild Vision V10 f|
00007310  6f 72 6d 61 74 0a 20 54  68 69 73 20 70 72 6f 76  |ormat. This prov|
00007320  69 64 65 73 20 61 6e 20  75 6e 63 6f 6d 70 72 65  |ides an uncompre|
00007330  73 73 65 64 20 32 35 36  20 62 79 20 32 35 36 20  |ssed 256 by 256 |
00007340  69 6d 61 67 65 20 77 69  74 68 20 32 35 36 20 67  |image with 256 g|
00007350  72 65 79 20 6c 65 76 65  6c 73 2e 20 44 65 74 61  |rey levels. Deta|
00007360  69 6c 73 0a 20 66 72 6f  6d 20 44 65 6c 66 74 20  |ils. from Delft |
00007370  55 6e 69 76 65 72 73 69  74 79 20 6f 66 20 54 65  |University of Te|
00007380  63 68 6e 6f 6c 6f 67 79  20 61 6e 64 20 45 43 44  |chnology and ECD|
00007390  20 43 6f 6d 70 75 74 65  72 73 20 44 65 6c 66 74  | Computers Delft|
000073a0  20 42 2e 56 2e 0a 20 2b  20 52 65 63 6f 67 6e 69  | B.V.. + Recogni|
000073b0  73 65 64 20 62 79 20 66  69 6c 65 20 74 79 70 65  |sed by file type|
000073c0  20 30 30 34 20 28 61 20  70 69 63 74 75 72 65 20  | 004 (a picture |
000073d0  6f 66 20 27 54 72 75 69  27 20 77 69 74 68 20 22  |of 'Trui' with "|
000073e0  54 55 22 20 69 6e 20 62  6c 75 65 29 0a 20 2b 20  |TU" in blue). + |
000073f0  43 68 61 6e 67 65 46 53  49 20 63 61 6e 20 77 72  |ChangeFSI can wr|
00007400  69 74 65 20 74 6f 20 74  68 69 73 20 66 6f 72 6d  |ite to this form|
00007410  61 74 20 28 73 70 65 63  69 66 79 20 22 61 69 6d  |at (specify "aim|
00007420  22 20 69 6e 20 74 68 65  20 6d 6f 64 65 20 70 6f  |" in the mode po|
00007430  73 69 74 69 6f 6e 29 0a  20 20 20 61 6e 64 20 73  |sition).   and s|
00007440  70 65 63 69 66 79 20 3d  20 69 6e 20 74 68 65 20  |pecify = in the |
00007450  73 69 7a 69 6e 67 20 74  6f 20 67 65 74 20 61 20  |sizing to get a |
00007460  32 35 36 20 62 79 20 32  35 36 20 6f 75 74 70 75  |256 by 256 outpu|
00007470  74 20 28 6f 74 68 65 72  77 69 73 65 20 69 74 20  |t (otherwise it |
00007480  77 69 6c 6c 0a 20 20 20  62 65 20 74 68 65 20 73  |will.   be the s|
00007490  61 6d 65 20 73 69 7a 65  20 61 73 20 74 68 65 20  |ame size as the |
000074a0  73 6f 75 72 63 65 20 69  6d 61 67 65 29 0a 20 2d  |source image). -|
000074b0  20 4e 6f 20 72 65 73 6f  6c 75 74 69 6f 6e 20 73  | No resolution s|
000074c0  70 65 63 69 66 69 65 64  2c 20 65 71 75 61 6c 20  |pecified, equal |
000074d0  74 6f 20 6d 6f 64 65 20  32 37 20 61 73 73 75 6d  |to mode 27 assum|
000074e0  65 64 0a 20 2d 20 54 68  65 20 61 73 73 6f 63 69  |ed. - The associ|
000074f0  61 74 65 64 20 66 69 6c  65 20 3c 6e 61 6d 65 3e  |ated file <name>|
00007500  2b 20 28 66 69 6c 65 20  74 79 70 65 20 30 31 30  |+ (file type 010|
00007510  29 20 77 68 69 63 68 20  63 6f 6e 74 61 69 6e 73  |) which contains|
00007520  20 61 64 64 69 74 69 6f  6e 61 6c 0a 20 20 20 69  | additional.   i|
00007530  6e 66 6f 72 6d 61 74 69  6f 6e 20 69 73 20 69 67  |nformation is ig|
00007540  6e 6f 72 65 64 20 62 79  20 43 68 61 6e 67 65 46  |nored by ChangeF|
00007550  53 49 2e 0a 20 54 68 65  20 67 72 65 79 20 6c 65  |SI.. The grey le|
00007560  76 65 6c 73 20 6d 61 79  20 72 65 70 72 65 73 65  |vels may represe|
00007570  6e 74 20 69 6e 74 65 6e  73 69 74 79 20 69 6e 20  |nt intensity in |
00007580  76 61 72 69 6f 75 73 20  64 69 66 66 65 72 65 6e  |various differen|
00007590  74 20 77 61 76 65 20 62  61 6e 64 73 2e 20 42 79  |t wave bands. By|
000075a0  0a 20 6e 61 6d 69 6e 67  20 66 69 6c 65 73 20 22  |. naming files "|
000075b0  72 65 64 22 2c 20 22 67  72 65 65 6e 22 20 61 6e  |red", "green" an|
000075c0  64 20 22 62 6c 75 65 22  20 61 6e 64 20 68 61 6e  |d "blue" and han|
000075d0  64 69 6e 67 20 43 68 61  6e 67 65 46 53 49 20 74  |ding ChangeFSI t|
000075e0  68 65 20 64 69 72 65 63  74 6f 72 79 2c 0a 20 79  |he directory,. y|
000075f0  6f 75 20 63 61 6e 20 70  72 6f 64 75 63 65 20 61  |ou can produce a|
00007600  20 66 61 6c 73 65 20 63  6f 6c 6f 75 72 20 69 6d  | false colour im|
00007610  61 67 65 2e 20 48 6f 75  72 73 20 6f 66 20 65 78  |age. Hours of ex|
00007620  70 65 72 69 6d 65 6e 74  61 74 69 6f 6e 20 63 61  |perimentation ca|
00007630  6e 20 70 72 6f 64 75 63  65 0a 20 61 6e 20 61 6c  |n produce. an al|
00007640  6d 6f 73 74 20 72 65 61  73 6f 6e 61 62 6c 65 20  |most reasonable |
00007650  70 69 63 74 75 72 65 2e  2e 2e 0a 0a 54 68 65 20  |picture.....The |
00007660  57 69 6c 64 20 56 69 73  69 6f 6e 20 56 31 32 20  |Wild Vision V12 |
00007670  66 6f 72 6d 61 74 0a 20  54 68 69 73 20 70 72 6f  |format. This pro|
00007680  76 69 64 65 73 20 61 6e  20 75 6e 63 6f 6d 70 72  |vides an uncompr|
00007690  65 73 73 65 64 20 35 31  32 20 62 79 20 35 31 32  |essed 512 by 512|
000076a0  20 69 6d 61 67 65 20 77  69 74 68 20 32 35 36 20  | image with 256 |
000076b0  67 72 65 79 20 6c 65 76  65 6c 73 2e 0a 20 2b 20  |grey levels.. + |
000076c0  52 65 63 6f 67 6e 69 73  65 64 20 62 79 20 66 69  |Recognised by fi|
000076d0  6c 65 20 74 79 70 65 20  30 30 36 0a 20 2d 20 4e  |le type 006. - N|
000076e0  6f 20 72 65 73 6f 6c 75  74 69 6f 6e 20 73 70 65  |o resolution spe|
000076f0  63 69 66 69 65 64 2c 20  65 71 75 61 6c 20 74 6f  |cified, equal to|
00007700  20 6d 6f 64 65 20 32 37  20 61 73 73 75 6d 65 64  | mode 27 assumed|
00007710  0a 0a 54 68 65 20 57 69  6c 64 20 56 69 73 69 6f  |..The Wild Visio|
00007720  6e 20 56 39 20 61 6e 64  20 53 6e 61 70 53 68 6f  |n V9 and SnapSho|
00007730  74 20 66 6f 72 6d 61 74  73 0a 20 54 68 69 73 20  |t formats. This |
00007740  70 72 6f 76 69 64 65 73  20 61 6e 20 75 6e 63 6f  |provides an unco|
00007750  6d 70 72 65 73 73 65 64  20 35 31 32 20 62 79 20  |mpressed 512 by |
00007760  32 35 36 20 69 6d 61 67  65 20 77 69 74 68 20 34  |256 image with 4|
00007770  20 62 69 74 73 20 6f 66  20 72 65 64 2c 20 67 72  | bits of red, gr|
00007780  65 65 6e 0a 20 61 6e 64  20 62 6c 75 65 2c 20 70  |een. and blue, p|
00007790  69 78 65 6c 73 20 73 69  7a 65 64 20 31 3a 32 2e  |ixels sized 1:2.|
000077a0  0a 20 2b 20 52 65 63 6f  67 6e 69 73 65 64 20 62  |. + Recognised b|
000077b0  79 20 22 4d 65 72 63 53  6f 66 74 22 20 6f 72 20  |y "MercSoft" or |
000077c0  22 53 6e 61 70 53 68 6f  74 22 20 68 65 61 64 65  |"SnapShot" heade|
000077d0  72 0a 20 2b 20 4e 6f 20  66 69 6c 65 20 74 79 70  |r. + No file typ|
000077e0  65 20 6e 65 65 64 65 64  0a 0a 54 68 65 20 21 54  |e needed..The !T|
000077f0  72 61 6e 73 6c 61 74 6f  72 20 43 6c 65 61 72 20  |ranslator Clear |
00007800  66 6f 72 6d 61 74 0a 20  54 68 69 73 20 70 72 6f  |format. This pro|
00007810  76 69 64 65 73 20 31 2c  20 32 2c 20 34 2c 20 38  |vides 1, 2, 4, 8|
00007820  20 61 6e 64 20 32 34 20  62 69 74 73 20 70 65 72  | and 24 bits per|
00007830  20 70 69 78 65 6c 2e 0a  20 2b 20 52 65 63 6f 67  | pixel.. + Recog|
00007840  6e 69 73 65 64 20 62 79  20 66 69 6c 65 20 74 79  |nised by file ty|
00007850  70 65 20 36 39 30 0a 20  2d 20 75 6e 63 6f 6d 70  |pe 690. - uncomp|
00007860  72 65 73 73 65 64 2c 20  65 73 70 65 63 69 61 6c  |ressed, especial|
00007870  6c 79 20 66 6f 72 20 3c  38 20 62 69 74 73 20 70  |ly for <8 bits p|
00007880  65 72 20 70 69 78 65 6c  20 77 68 69 63 68 20 69  |er pixel which i|
00007890  73 20 72 65 63 6f 72 64  65 64 20 61 74 20 6f 6e  |s recorded at on|
000078a0  65 0a 20 20 20 62 79 74  65 20 70 65 72 20 70 69  |e.   byte per pi|
000078b0  78 65 6c 2e 0a 20 2d 20  4e 6f 20 72 65 73 6f 6c  |xel.. - No resol|
000078c0  75 74 69 6f 6e 20 73 70  65 63 69 66 69 65 64 2c  |ution specified,|
000078d0  20 65 71 75 61 6c 20 74  6f 20 6d 6f 64 65 20 32  | equal to mode 2|
000078e0  37 20 61 73 73 75 6d 65  64 0a 0a 54 68 65 20 41  |7 assumed..The A|
000078f0  74 61 72 69 20 53 54 20  22 44 65 67 61 73 22 20  |tari ST "Degas" |
00007900  66 6f 72 6d 61 74 0a 20  31 2c 20 32 20 6f 72 20  |format. 1, 2 or |
00007910  34 20 62 69 74 73 20 70  65 72 20 70 69 78 65 6c  |4 bits per pixel|
00007920  2c 20 63 6c 65 61 72 20  6f 72 20 72 75 6e 20 6c  |, clear or run l|
00007930  65 6e 67 74 68 20 65 6e  63 6f 64 65 64 2e 20 52  |ength encoded. R|
00007940  49 53 43 20 4f 53 20 66  69 6c 65 20 74 79 70 65  |ISC OS file type|
00007950  20 62 79 0a 20 4a 6f 68  6e 20 4b 6f 72 74 69 6e  | by. John Kortin|
00007960  6b 20 6f 66 20 21 54 72  61 6e 73 6c 61 74 6f 72  |k of !Translator|
00007970  2e 0a 20 2b 20 52 65 63  6f 67 6e 69 73 65 64 20  |.. + Recognised |
00007980  62 79 20 66 69 6c 65 20  74 79 70 65 20 36 39 31  |by file type 691|
00007990  0a 20 2d 20 4e 6f 20 64  6f 63 75 6d 65 6e 74 61  |. - No documenta|
000079a0  74 69 6f 6e 20 61 6e 64  20 6f 6e 6c 79 20 35 20  |tion and only 5 |
000079b0  69 6d 61 67 65 73 20 72  65 61 64 0a 20 2d 20 4e  |images read. - N|
000079c0  6f 20 72 65 73 6f 6c 75  74 69 6f 6e 20 73 70 65  |o resolution spe|
000079d0  63 69 66 69 65 64 2c 20  65 71 75 61 6c 20 74 6f  |cified, equal to|
000079e0  20 6d 6f 64 65 20 32 37  20 61 73 73 75 6d 65 64  | mode 27 assumed|
000079f0  0a 0a 3e 3e 20 41 6c 6c  20 74 68 65 20 66 69 6c  |..>> All the fil|
00007a00  65 20 66 6f 72 6d 61 74  73 20 73 6f 20 66 61 72  |e formats so far|
00007a10  20 68 61 76 65 20 62 65  65 6e 20 64 65 73 69 67  | have been desig|
00007a20  6e 65 64 20 6f 6e 20 52  49 53 43 20 4f 53 20 28  |ned on RISC OS (|
00007a30  6f 72 20 41 72 74 68 75  72 29 20 61 6e 64 0a 72  |or Arthur) and.r|
00007a40  65 63 6f 67 6e 69 74 69  6f 6e 20 6f 66 20 74 68  |ecognition of th|
00007a50  65 20 66 6f 72 6d 61 74  20 69 73 20 64 65 66 69  |e format is defi|
00007a60  6e 65 64 20 62 79 20 66  69 6c 65 20 74 79 70 65  |ned by file type|
00007a70  2c 20 74 68 65 20 66 69  6c 65 73 20 61 72 72 69  |, the files arri|
00007a80  76 65 20 6f 6e 20 52 49  53 43 0a 4f 53 20 66 6c  |ve on RISC.OS fl|
00007a90  6f 70 70 79 20 64 69 73  63 73 2c 20 61 6e 64 20  |oppy discs, and |
00007aa0  74 68 65 20 6f 72 69 67  69 6e 61 74 6f 72 73 20  |the originators |
00007ab0  6c 69 76 65 20 69 6e 20  74 68 65 20 73 61 6d 65  |live in the same|
00007ac0  20 74 69 6d 65 20 7a 6f  6e 65 2e 20 46 6f 72 20  | time zone. For |
00007ad0  74 68 65 0a 66 6f 6c 6c  6f 77 69 6e 67 20 66 6f  |the.following fo|
00007ae0  72 6d 61 74 73 20 6d 61  6e 79 20 6f 66 20 74 68  |rmats many of th|
00007af0  65 73 65 20 74 68 69 6e  67 73 20 61 72 65 20 6e  |ese things are n|
00007b00  6f 74 20 74 72 75 65 2e  2e 2e 20 57 68 69 63 68  |ot true... Which|
00007b10  20 6d 61 6b 65 73 20 69  74 20 6d 6f 72 65 0a 64  | makes it more.d|
00007b20  69 66 66 69 63 75 6c 74  20 74 6f 20 67 75 61 72  |ifficult to guar|
00007b30  61 6e 74 65 65 20 74 68  61 74 20 43 68 61 6e 67  |antee that Chang|
00007b40  65 46 53 49 20 77 69 6c  6c 20 62 65 20 61 62 6c  |eFSI will be abl|
00007b50  65 20 74 6f 20 72 65 61  64 20 74 68 65 20 66 69  |e to read the fi|
00007b60  6c 65 2e 0a 0a 54 68 65  20 4d 69 6c 6c 69 70 65  |le...The Millipe|
00007b70  64 65 20 50 72 69 73 6d  61 20 66 6f 72 6d 61 74  |de Prisma format|
00007b80  20 28 75 73 65 64 20 62  79 20 43 61 64 53 6f 66  | (used by CadSof|
00007b90  74 20 61 6c 73 6f 29 0a  20 54 68 65 20 4d 69 6c  |t also). The Mil|
00007ba0  6c 69 70 65 64 65 20 50  72 69 73 6d 61 20 33 20  |lipede Prisma 3 |
00007bb0  69 73 20 61 20 37 36 38  20 70 69 78 65 6c 73 20  |is a 768 pixels |
00007bc0  77 69 64 65 20 62 79 20  35 37 34 20 6c 69 6e 65  |wide by 574 line|
00007bd0  20 69 6e 74 65 72 6c 61  63 65 64 20 64 69 73 70  | interlaced disp|
00007be0  6c 61 79 0a 20 62 6f 61  72 64 20 66 6f 72 20 74  |lay. board for t|
00007bf0  68 65 20 41 72 63 68 69  6d 65 64 65 73 20 61 6e  |he Archimedes an|
00007c00  64 20 42 42 43 20 4d 69  63 72 6f 63 6f 6d 70 75  |d BBC Microcompu|
00007c10  74 65 72 2e 20 49 74 20  61 6c 6c 6f 77 73 20 75  |ter. It allows u|
00007c20  73 65 20 6f 66 20 32 35  36 0a 20 63 6f 6c 6f 75  |se of 256. colou|
00007c30  72 73 20 66 72 6f 6d 20  32 5e 32 34 2e 20 46 69  |rs from 2^24. Fi|
00007c40  6c 65 73 20 6d 61 79 20  62 65 20 73 74 6f 72 65  |les may be store|
00007c50  64 20 75 6e 63 6f 6d 70  72 65 73 73 65 64 20 28  |d uncompressed (|
00007c60  34 33 32 4b 42 79 74 65  73 21 29 20 6f 72 20 72  |432KBytes!) or r|
00007c70  75 6e 0a 20 6c 65 6e 67  74 68 20 65 6e 63 6f 64  |un. length encod|
00007c80  65 64 2e 20 4d 6f 72 65  20 64 65 74 61 69 6c 73  |ed. More details|
00007c90  20 66 72 6f 6d 20 43 61  64 53 6f 66 74 20 6f 72  | from CadSoft or|
00007ca0  20 4d 69 6c 6c 69 70 65  64 65 20 45 6c 65 63 74  | Millipede Elect|
00007cb0  72 6f 6e 69 63 20 47 72  61 70 68 69 63 73 2e 0a  |ronic Graphics..|
00007cc0  20 2b 20 52 65 63 6f 67  6e 69 73 65 64 20 62 79  | + Recognised by|
00007cd0  20 22 4d 49 4c 4c 49 50  45 44 45 22 20 61 74 20  | "MILLIPEDE" at |
00007ce0  6f 66 66 73 65 74 20 31  36 20 69 6e 20 74 68 65  |offset 16 in the|
00007cf0  20 66 69 6c 65 0a 20 2d  20 4e 6f 20 72 65 73 6f  | file. - No reso|
00007d00  6c 75 74 69 6f 6e 20 73  70 65 63 69 66 69 65 64  |lution specified|
00007d10  2c 20 65 71 75 61 6c 20  74 6f 20 6d 6f 64 65 20  |, equal to mode |
00007d20  32 37 20 61 73 73 75 6d  65 64 0a 20 2d 20 73 6c  |27 assumed. - sl|
00007d30  6f 77 69 73 68 20 74 6f  20 72 65 61 64 20 74 68  |owish to read th|
00007d40  65 20 63 6f 6d 70 72 65  73 73 65 64 20 66 6f 72  |e compressed for|
00007d50  6d 61 74 73 0a 20 2d 20  73 63 61 6c 69 6e 67 20  |mats. - scaling |
00007d60  74 68 65 20 70 69 63 74  75 72 65 20 75 73 69 6e  |the picture usin|
00007d70  67 20 3d 20 63 61 6e 20  62 65 20 70 6f 6f 72 20  |g = can be poor |
00007d80  73 69 6e 63 65 20 35 37  34 20 6c 69 6e 65 73 20  |since 574 lines |
00007d90  64 6f 6e 27 74 20 72 65  6c 61 74 65 20 76 65 72  |don't relate ver|
00007da0  79 0a 20 20 20 77 65 6c  6c 20 74 6f 20 35 31 32  |y.   well to 512|
00007db0  20 6f 72 20 32 35 36 2e  20 55 73 65 20 2d 69 6e  | or 256. Use -in|
00007dc0  66 6f 20 74 6f 20 64 69  73 70 6c 61 79 20 74 68  |fo to display th|
00007dd0  65 20 73 63 61 6c 65 20  72 61 74 69 6f 73 2e 0a  |e scale ratios..|
00007de0  0a 54 68 65 20 41 6c 64  75 73 2f 4d 69 63 72 6f  |.The Aldus/Micro|
00007df0  53 6f 66 74 20 54 49 46  46 20 66 6f 72 6d 61 74  |Soft TIFF format|
00007e00  20 28 61 6c 73 6f 20 66  69 6c 65 74 79 70 65 20  | (also filetype |
00007e10  46 46 30 20 69 73 20 61  73 73 69 67 6e 65 64 20  |FF0 is assigned |
00007e20  74 6f 20 54 49 46 46 29  0a 20 46 72 65 71 75 65  |to TIFF). Freque|
00007e30  6e 74 6c 79 20 75 73 65  64 20 62 79 20 73 63 61  |ntly used by sca|
00007e40  6e 6e 65 72 73 2c 20 54  49 46 46 20 69 73 20 61  |nners, TIFF is a|
00007e50  20 63 6f 6d 6d 6f 6e 20  69 6e 74 65 72 63 68 61  | common intercha|
00007e60  6e 67 65 20 66 6f 72 6d  61 74 20 66 6f 72 0a 20  |nge format for. |
00007e70  67 72 61 70 68 69 63 73  20 69 6d 61 67 65 73 20  |graphics images |
00007e80  6f 6e 20 74 68 65 20 4d  61 63 20 61 6e 64 20 50  |on the Mac and P|
00007e90  43 20 28 70 61 72 74 69  63 75 6c 61 72 6c 79 20  |C (particularly |
00007ea0  44 54 50 20 61 6e 64 20  57 69 6e 64 6f 77 73 29  |DTP and Windows)|
00007eb0  2e 20 49 74 0a 20 70 72  6f 76 69 64 65 73 20 61  |. It. provides a|
00007ec0  6e 20 61 72 62 69 74 72  61 72 79 20 6e 75 6d 62  |n arbitrary numb|
00007ed0  65 72 20 6f 66 20 62 69  74 73 20 70 65 72 20 70  |er of bits per p|
00007ee0  69 78 65 6c 2c 20 73 69  7a 65 20 65 74 63 20 75  |ixel, size etc u|
00007ef0  73 69 6e 67 20 61 20 6e  75 6d 65 72 69 63 20 74  |sing a numeric t|
00007f00  61 67 0a 20 73 63 68 65  6d 65 20 61 6c 6c 6f 77  |ag. scheme allow|
00007f10  69 6e 67 20 6e 65 77 20  69 6e 66 6f 72 6d 61 74  |ing new informat|
00007f20  69 6f 6e 20 74 6f 20 62  65 20 69 6e 74 72 6f 64  |ion to be introd|
00007f30  75 63 65 64 20 77 69 74  68 6f 75 74 20 75 70 73  |uced without ups|
00007f40  65 74 74 69 6e 67 20 65  78 69 73 74 69 6e 67 0a  |etting existing.|
00007f50  20 70 72 6f 67 72 61 6d  73 2e 20 54 68 65 20 66  | programs. The f|
00007f60  6f 72 6d 61 74 20 6d 61  79 20 62 65 20 63 6f 6d  |ormat may be com|
00007f70  70 72 65 73 73 65 64 20  28 69 6e 20 35 20 64 69  |pressed (in 5 di|
00007f80  66 66 65 72 65 6e 74 20  77 61 79 73 20 61 74 20  |fferent ways at |
00007f90  70 72 65 73 65 6e 74 29  2e 0a 20 44 65 74 61 69  |present).. Detai|
00007fa0  6c 73 20 66 72 6f 6d 20  41 6c 64 75 73 20 55 4b  |ls from Aldus UK|
00007fb0  2c 20 4d 69 63 72 6f 53  6f 66 74 2c 20 48 65 77  |, MicroSoft, Hew|
00007fc0  6c 65 74 74 20 50 61 63  6b 61 72 64 2e 2e 2e 0a  |lett Packard....|
00007fd0  20 2b 20 52 65 63 6f 67  6e 69 73 65 64 20 62 79  | + Recognised by|
00007fe0  20 66 69 6c 65 20 74 79  70 65 20 46 46 30 0a 20  | file type FF0. |
00007ff0  2b 20 52 65 63 6f 67 6e  69 73 65 64 20 62 79 20  |+ Recognised by |
00008000  22 49 49 22 20 70 6c 75  73 20 74 68 65 20 31 36  |"II" plus the 16|
00008010  20 62 69 74 20 6e 75 6d  62 65 72 20 34 32 20 61  | bit number 42 a|
00008020  74 20 74 68 65 20 73 74  61 72 74 20 6f 66 20 74  |t the start of t|
00008030  68 65 20 66 69 6c 65 20  66 6f 72 0a 20 20 20 6c  |he file for.   l|
00008040  69 74 74 6c 65 20 65 6e  64 69 61 6e 20 6d 61 63  |ittle endian mac|
00008050  68 69 6e 65 73 20 28 69  78 38 36 2c 20 41 52 4d  |hines (ix86, ARM|
00008060  2c 20 56 41 58 2e 2e 2e  29 0a 20 2b 20 52 65 63  |, VAX...). + Rec|
00008070  6f 67 6e 69 73 65 64 20  62 79 20 22 4d 4d 22 20  |ognised by "MM" |
00008080  70 6c 75 73 20 74 68 65  20 31 36 20 62 69 74 20  |plus the 16 bit |
00008090  6e 75 6d 62 65 72 20 34  32 20 61 74 20 74 68 65  |number 42 at the|
000080a0  20 73 74 61 72 74 20 6f  66 20 74 68 65 20 66 69  | start of the fi|
000080b0  6c 65 20 66 6f 72 0a 20  20 20 62 69 67 20 65 6e  |le for.   big en|
000080c0  64 69 61 6e 20 6d 61 63  68 69 6e 65 73 20 28 4d  |dian machines (M|
000080d0  36 38 30 78 30 2e 2e 2e  29 0a 20 2b 20 43 61 6e  |680x0...). + Can|
000080e0  20 72 65 61 64 20 50 61  63 6b 42 69 74 73 20 69  | read PackBits i|
000080f0  6d 61 67 65 73 20 61 6e  64 20 4c 5a 57 20 63 6f  |mages and LZW co|
00008100  6d 70 72 65 73 73 65 64  20 66 6f 72 6d 73 20 28  |mpressed forms (|
00008110  61 74 20 6c 65 61 73 74  20 74 68 65 20 33 20 69  |at least the 3 i|
00008120  74 73 0a 20 20 20 73 65  65 6e 20 73 6f 20 66 61  |ts.   seen so fa|
00008130  72 2e 2e 2e 29 0a 20 2d  20 43 61 6e 6e 6f 74 20  |r...). - Cannot |
00008140  72 65 61 64 20 70 72 65  64 69 63 74 6f 72 20 63  |read predictor c|
00008150  6f 6d 70 72 65 73 73 65  64 20 4c 5a 57 20 69 6d  |ompressed LZW im|
00008160  61 67 65 73 2e 0a 20 2d  20 53 6f 20 66 61 72 20  |ages.. - So far |
00008170  43 68 61 6e 67 65 46 53  49 20 68 61 73 20 6f 6e  |ChangeFSI has on|
00008180  6c 79 20 64 6f 6e 65 20  31 2c 20 34 2c 20 38 20  |ly done 1, 4, 8 |
00008190  61 6e 64 20 32 34 20 62  69 74 20 69 6d 61 67 65  |and 24 bit image|
000081a0  73 2e 0a 20 20 20 49 74  20 63 61 6e 27 74 20 72  |s..   It can't r|
000081b0  65 61 64 20 22 70 6c 61  6e 61 72 22 20 69 6d 61  |ead "planar" ima|
000081c0  67 65 73 20 6f 72 20 43  43 49 54 54 20 63 6f 6d  |ges or CCITT com|
000081d0  70 72 65 73 73 65 64 20  66 6f 72 6d 73 2e 0a 20  |pressed forms.. |
000081e0  2d 20 53 6f 6d 65 20 54  49 46 46 20 69 6d 61 67  |- Some TIFF imag|
000081f0  65 73 20 68 61 76 65 20  69 6e 63 6f 72 72 65 63  |es have incorrec|
00008200  74 20 70 69 78 65 6c 20  73 69 7a 65 73 3a 20 75  |t pixel sizes: u|
00008210  73 65 20 2d 6e 6f 73 69  7a 65 20 69 66 20 74 68  |se -nosize if th|
00008220  69 73 20 69 73 0a 20 20  20 74 72 75 65 2e 20 49  |is is.   true. I|
00008230  66 20 6e 6f 20 70 69 78  65 6c 20 73 69 7a 65 20  |f no pixel size |
00008240  69 73 20 73 70 65 63 69  66 69 65 64 2c 20 43 68  |is specified, Ch|
00008250  61 6e 67 65 46 53 49 20  61 73 73 75 6d 65 73 20  |angeFSI assumes |
00008260  6d 6f 64 65 20 32 37 20  73 69 7a 65 2e 0a 20 2b  |mode 27 size.. +|
00008270  20 54 49 46 46 20 69 73  20 61 20 74 72 61 64 65  | TIFF is a trade|
00008280  6d 61 72 6b 20 6f 66 20  41 6c 64 75 73 20 43 6f  |mark of Aldus Co|
00008290  72 70 6f 72 61 74 69 6f  6e 0a 0a 54 68 65 20 43  |rporation..The C|
000082a0  6f 6d 70 75 53 65 72 76  65 20 47 49 46 20 66 6f  |ompuServe GIF fo|
000082b0  72 6d 61 74 0a 20 55 73  65 64 20 66 6f 72 20 77  |rmat. Used for w|
000082c0  69 64 65 20 61 72 65 61  20 6e 65 74 77 6f 72 6b  |ide area network|
000082d0  20 74 72 61 6e 73 66 65  72 20 6f 66 20 69 6d 61  | transfer of ima|
000082e0  67 65 73 2e 20 49 74 20  70 72 6f 76 69 64 65 73  |ges. It provides|
000082f0  20 61 6e 20 4c 5a 57 0a  20 63 6f 6d 70 72 65 73  | an LZW. compres|
00008300  73 65 64 20 75 70 20 74  6f 20 32 35 36 20 63 6f  |sed up to 256 co|
00008310  6c 6f 75 72 73 20 66 72  6f 6d 20 32 5e 32 34 20  |lours from 2^24 |
00008320  61 72 62 69 74 72 61 72  79 20 73 69 7a 65 64 20  |arbitrary sized |
00008330  69 6d 61 67 65 2e 20 44  65 74 61 69 6c 73 20 66  |image. Details f|
00008340  72 6f 6d 0a 20 43 6f 6d  70 75 53 65 72 76 65 20  |rom. CompuServe |
00008350  28 55 53 41 29 20 5b 6f  72 20 75 73 65 6e 65 74  |(USA) [or usenet|
00008360  5d 0a 20 2b 20 52 65 63  6f 67 6e 69 73 65 64 20  |]. + Recognised |
00008370  62 79 20 22 47 49 46 38  37 61 22 20 61 74 20 74  |by "GIF87a" at t|
00008380  68 65 20 73 74 61 72 74  20 6f 66 20 74 68 65 20  |he start of the |
00008390  66 69 6c 65 0a 20 2b 20  4c 5a 57 20 63 6f 6d 70  |file. + LZW comp|
000083a0  72 65 73 73 69 6f 6e 20  69 73 20 65 66 66 69 63  |ression is effic|
000083b0  69 65 6e 74 20 65 76 65  6e 20 66 6f 72 20 64 69  |ient even for di|
000083c0  74 68 65 72 65 64 20 69  6d 61 67 65 73 0a 20 2b  |thered images. +|
000083d0  20 43 68 61 6e 67 65 46  53 49 20 63 61 6e 20 64  | ChangeFSI can d|
000083e0  65 63 6f 6d 70 72 65 73  73 20 4c 5a 57 20 71 75  |ecompress LZW qu|
000083f0  69 63 6b 6c 79 0a 20 2d  20 4e 6f 20 72 65 73 6f  |ickly. - No reso|
00008400  6c 75 74 69 6f 6e 20 73  70 65 63 69 66 69 65 64  |lution specified|
00008410  2c 20 65 71 75 61 6c 20  74 6f 20 6d 6f 64 65 20  |, equal to mode |
00008420  32 37 20 61 73 73 75 6d  65 64 0a 20 2d 20 6d 61  |27 assumed. - ma|
00008430  6e 79 20 6c 6f 77 20 71  75 61 6c 69 74 79 20 69  |ny low quality i|
00008440  6d 61 67 65 73 20 61 72  6f 75 6e 64 20 66 72 6f  |mages around fro|
00008450  6d 20 50 43 73 0a 0a 54  68 65 20 45 6c 65 63 74  |m PCs..The Elect|
00008460  72 6f 6e 69 63 20 41 72  74 73 20 49 46 46 20 49  |ronic Arts IFF I|
00008470  4c 42 4d 20 66 6f 72 6d  61 74 0a 20 50 72 6f 76  |LBM format. Prov|
00008480  69 64 65 73 20 61 6e 20  61 72 62 69 74 72 61 72  |ides an arbitrar|
00008490  79 20 73 69 7a 65 64 20  69 6d 61 67 65 20 77 69  |y sized image wi|
000084a0  74 68 20 75 70 20 74 6f  20 34 30 39 36 20 63 6f  |th up to 4096 co|
000084b0  6c 6f 75 72 73 20 73 6f  6d 65 74 69 6d 65 73 20  |lours sometimes |
000084c0  72 75 6e 0a 20 6c 65 6e  67 74 68 20 65 6e 63 6f  |run. length enco|
000084d0  64 65 64 2e 20 43 68 61  6e 67 65 46 53 49 20 75  |ded. ChangeFSI u|
000084e0  6e 64 65 72 73 74 61 6e  64 73 20 74 68 65 20 67  |nderstands the g|
000084f0  65 6e 65 72 69 63 20 66  6f 72 6d 61 74 20 61 6e  |eneric format an|
00008500  64 20 61 6c 73 6f 20 74  68 65 0a 20 73 70 65 63  |d also the. spec|
00008510  69 61 6c 20 41 6d 69 67  61 20 66 6f 72 6d 61 74  |ial Amiga format|
00008520  20 66 6f 72 20 22 48 41  4d 22 20 61 6e 64 20 22  | for "HAM" and "|
00008530  48 61 6c 66 2d 62 72 69  67 68 74 22 20 69 6d 61  |Half-bright" ima|
00008540  67 65 73 2e 0a 20 2b 20  52 65 63 6f 67 6e 69 73  |ges.. + Recognis|
00008550  65 64 20 62 79 20 22 46  4f 52 4d 22 20 61 73 20  |ed by "FORM" as |
00008560  74 68 65 20 66 69 72 73  74 20 66 6f 75 72 20 63  |the first four c|
00008570  68 61 72 61 63 74 65 72  73 20 61 6e 64 20 22 49  |haracters and "I|
00008580  4c 42 4d 22 20 61 73 0a  20 20 20 63 68 61 72 61  |LBM" as.   chara|
00008590  63 74 65 72 73 20 38 20  74 6f 20 31 31 0a 20 2d  |cters 8 to 11. -|
000085a0  20 4f 6e 6c 79 20 70 69  78 65 6c 20 61 73 70 65  | Only pixel aspe|
000085b0  63 74 20 72 61 74 69 6f  20 73 70 65 63 69 66 69  |ct ratio specifi|
000085c0  65 64 2c 20 6e 6f 74 20  69 74 73 20 73 69 7a 65  |ed, not its size|
000085d0  20 28 61 6e 64 20 74 68  65 6e 20 73 6f 6d 65 74  | (and then somet|
000085e0  69 6d 65 73 0a 20 20 20  69 6e 63 6f 72 72 65 63  |imes.   incorrec|
000085f0  74 6c 79 29 3a 20 75 73  65 20 2d 6e 6f 73 69 7a  |tly): use -nosiz|
00008600  65 20 2a 61 6e 64 2a 20  61 20 73 69 7a 65 20 63  |e *and* a size c|
00008610  68 61 6e 67 65 20 28 61  3a 62 29 20 69 66 20 69  |hange (a:b) if i|
00008620  74 73 20 77 72 6f 6e 67  0a 20 2d 20 69 6d 61 67  |ts wrong. - imag|
00008630  65 73 20 6f 66 74 65 6e  20 73 6d 61 6c 6c 0a 20  |es often small. |
00008640  2d 20 64 6f 65 73 6e 27  74 20 75 6e 64 65 72 73  |- doesn't unders|
00008650  74 61 6e 64 20 41 6d 69  67 61 20 22 68 69 72 65  |tand Amiga "hire|
00008660  73 22 0a 20 2d 20 63 61  6e 27 74 20 63 6f 6e 76  |s". - can't conv|
00008670  65 72 74 20 48 41 4d 20  70 69 63 74 75 72 65 73  |ert HAM pictures|
00008680  20 64 69 72 65 63 74 6c  79 20 74 6f 20 6d 6f 6e  | directly to mon|
00008690  6f 63 68 72 6f 6d 65 0a  0a 54 68 65 20 4d 69 63  |ochrome..The Mic|
000086a0  72 6f 53 6f 66 74 20 57  69 6e 64 6f 77 73 20 33  |roSoft Windows 3|
000086b0  20 2e 42 4d 50 20 66 6f  72 6d 61 74 0a 20 55 73  | .BMP format. Us|
000086c0  65 64 20 62 79 20 4d 69  63 72 6f 53 6f 66 74 20  |ed by MicroSoft |
000086d0  69 6e 20 57 69 6e 64 6f  77 73 20 33 20 61 6e 64  |in Windows 3 and|
000086e0  20 50 61 69 6e 74 42 72  75 73 68 20 66 6f 72 20  | PaintBrush for |
000086f0  57 69 6e 64 6f 77 73 20  33 2e 20 50 72 6f 76 69  |Windows 3. Provi|
00008700  64 65 73 20 61 6e 0a 20  61 72 62 69 74 72 61 72  |des an. arbitrar|
00008710  79 20 73 69 7a 65 64 20  69 6d 61 67 65 20 61 6e  |y sized image an|
00008720  64 20 31 2c 20 34 20 6f  72 20 38 20 62 69 74 73  |d 1, 4 or 8 bits|
00008730  20 70 65 72 20 70 69 78  65 6c 2e 20 55 6e 63 6f  | per pixel. Unco|
00008740  6d 70 72 65 73 73 65 64  2e 0a 20 2b 20 52 65 63  |mpressed.. + Rec|
00008750  6f 67 6e 69 73 65 64 20  62 79 20 22 42 4d 22 20  |ognised by "BM" |
00008760  61 73 20 74 68 65 20 66  69 72 73 74 20 74 77 6f  |as the first two|
00008770  20 63 68 61 72 61 63 74  65 72 73 0a 20 2d 20 4e  | characters. - N|
00008780  6f 20 72 65 73 6f 6c 75  74 69 6f 6e 20 73 70 65  |o resolution spe|
00008790  63 69 66 69 65 64 2c 20  65 71 75 61 6c 20 74 6f  |cified, equal to|
000087a0  20 6d 6f 64 65 20 32 37  20 61 73 73 75 6d 65 64  | mode 27 assumed|
000087b0  0a 20 2d 20 64 6f 63 75  6d 65 6e 74 61 74 69 6f  |. - documentatio|
000087c0  6e 20 6e 65 76 65 72 20  73 65 65 6e 20 2d 20 37  |n never seen - 7|
000087d0  20 66 69 6c 65 73 20 65  78 61 6d 69 6e 65 64 20  | files examined |
000087e0  61 6e 64 20 69 6e 74 65  6c 6c 69 67 65 6e 74 20  |and intelligent |
000087f0  67 75 65 73 73 65 73 20  6d 61 64 65 21 0a 0a 54  |guesses made!..T|
00008800  68 65 20 44 69 67 69 74  61 6c 20 52 65 73 65 61  |he Digital Resea|
00008810  72 63 68 20 47 45 4d 20  2e 49 4d 47 20 66 6f 72  |rch GEM .IMG for|
00008820  6d 61 74 0a 20 55 73 65  64 20 62 79 20 47 45 4d  |mat. Used by GEM|
00008830  20 28 61 6e 64 20 47 45  4d 20 50 61 69 6e 74 29  | (and GEM Paint)|
00008840  20 6f 6e 20 62 6f 74 68  20 50 43 20 61 6e 64 20  | on both PC and |
00008850  41 74 61 72 69 20 53 54  2e 20 50 72 6f 76 69 64  |Atari ST. Provid|
00008860  65 73 20 61 6e 20 61 72  62 69 74 72 61 72 79 0a  |es an arbitrary.|
00008870  20 73 69 7a 65 64 20 69  6d 61 67 65 20 61 6e 64  | sized image and|
00008880  20 6e 75 6d 62 65 72 20  6f 66 20 62 69 74 73 20  | number of bits |
00008890  70 65 72 20 70 69 78 65  6c 20 28 74 68 6f 75 67  |per pixel (thoug|
000088a0  68 20 69 74 73 20 6f 6e  6c 79 20 75 73 75 61 6c  |h its only usual|
000088b0  6c 79 20 75 73 65 64 20  77 69 74 68 0a 20 75 70  |ly used with. up|
000088c0  20 74 6f 20 35 20 62 69  74 73 20 70 65 72 20 70  | to 5 bits per p|
000088d0  69 78 65 6c 29 20 61 6e  64 20 70 69 78 65 6c 20  |ixel) and pixel |
000088e0  73 69 7a 65 2e 20 43 6f  6d 70 72 65 73 73 65 64  |size. Compressed|
000088f0  20 62 79 20 72 75 6e 20  6c 65 6e 67 74 68 20 65  | by run length e|
00008900  6e 63 6f 64 69 6e 67 0a  20 61 6e 64 20 6c 69 6e  |ncoding. and lin|
00008910  65 20 72 65 70 65 61 74  73 2e 0a 20 2d 20 52 65  |e repeats.. - Re|
00008920  63 6f 67 6e 69 73 65 64  20 62 79 20 30 30 20 30  |cognised by 00 0|
00008930  31 20 30 30 20 30 38 20  61 73 20 74 68 65 20 66  |1 00 08 as the f|
00008940  69 72 73 74 20 66 6f 75  72 20 62 79 74 65 73 20  |irst four bytes |
00008950  28 22 76 65 72 73 69 6f  6e 20 31 2c 20 68 65 61  |("version 1, hea|
00008960  64 65 72 0a 20 20 20 6c  65 6e 67 74 68 20 38 22  |der.   length 8"|
00008970  29 20 6f 72 20 62 79 20  22 49 4d 47 22 20 61 73  |) or by "IMG" as|
00008980  20 74 68 65 20 6e 61 6d  65 20 6f 66 20 74 68 65  | the name of the|
00008990  20 64 69 72 65 63 74 6f  72 79 20 74 68 65 20 66  | directory the f|
000089a0  69 6c 65 20 69 73 20 69  6e 2e 0a 20 2d 20 50 6c  |ile is in.. - Pl|
000089b0  61 6e 61 72 20 66 69 6c  65 20 66 6f 72 6d 61 74  |anar file format|
000089c0  20 73 6c 6f 77 20 74 6f  20 72 65 61 64 0a 20 2d  | slow to read. -|
000089d0  20 50 61 6c 65 74 74 65  20 6e 6f 74 20 73 70 65  | Palette not spe|
000089e0  63 69 66 69 65 64 3a 20  43 68 61 6e 67 65 46 53  |cified: ChangeFS|
000089f0  49 20 61 73 73 75 6d 65  73 20 6c 69 6e 65 61 72  |I assumes linear|
00008a00  20 73 68 61 64 65 73 20  6f 66 20 67 72 65 79 2e  | shades of grey.|
00008a10  20 59 6f 75 20 6d 69 67  68 74 0a 20 20 20 6e 65  | You might.   ne|
00008a20  65 64 20 74 6f 20 75 73  65 20 2d 69 6e 76 65 72  |ed to use -inver|
00008a30  74 20 69 66 20 74 68 65  20 69 6d 61 67 65 20 69  |t if the image i|
00008a40  73 20 61 20 6e 65 67 61  74 69 76 65 0a 20 2d 20  |s a negative. - |
00008a50  54 68 65 20 73 69 7a 65  20 6f 66 20 61 20 70 69  |The size of a pi|
00008a60  78 65 6c 20 69 73 20 73  70 65 63 69 66 69 65 64  |xel is specified|
00008a70  20 69 6e 20 6d 69 63 72  6f 6e 73 2e 20 54 68 65  | in microns. The|
00008a80  20 73 74 61 6e 64 61 72  64 20 52 49 53 43 20 4f  | standard RISC O|
00008a90  53 20 39 30 0a 20 20 20  70 69 78 65 6c 73 20 70  |S 90.   pixels p|
00008aa0  65 72 20 69 6e 63 68 20  74 72 61 6e 73 6c 61 74  |er inch translat|
00008ab0  65 73 20 74 6f 20 28 31  2f 39 30 2a 32 2e 35 34  |es to (1/90*2.54|
00008ac0  2a 31 30 2c 30 30 30 29  20 6d 69 63 72 6f 6e 73  |*10,000) microns|
00008ad0  20 2d 20 32 38 32 2e 20  28 75 73 65 0a 20 20 20  | - 282. (use.   |
00008ae0  2d 69 6e 66 6f 20 74 6f  20 67 65 74 20 69 6e 66  |-info to get inf|
00008af0  6f 72 6d 61 74 69 6f 6e  20 61 62 6f 75 74 20 74  |ormation about t|
00008b00  68 65 20 73 63 61 6c 69  6e 67 2c 20 2d 6e 6f 73  |he scaling, -nos|
00008b10  69 7a 65 20 74 6f 20 73  74 6f 70 20 69 74 29 0a  |ize to stop it).|
00008b20  20 2d 20 44 6f 63 75 6d  65 6e 74 61 74 69 6f 6e  | - Documentation|
00008b30  20 66 72 6f 6d 20 74 68  65 20 22 53 54 20 57 6f  | from the "ST Wo|
00008b40  72 6c 64 22 20 6d 61 67  61 7a 69 6e 65 27 73 20  |rld" magazine's |
00008b50  63 6c 69 6e 69 63 2e 0a  0a 41 6e 20 75 6e 6b 6e  |clinic...An unkn|
00008b60  6f 77 6e 20 50 43 20 2e  50 49 43 20 66 6f 72 6d  |own PC .PIC form|
00008b70  61 74 0a 20 55 73 65 64  20 66 6f 72 20 73 6f 6d  |at. Used for som|
00008b80  65 20 56 47 41 20 64 65  6d 6f 73 2c 20 74 68 65  |e VGA demos, the|
00008b90  20 66 6f 72 6d 61 74 20  70 72 6f 76 69 64 65 73  | format provides|
00008ba0  20 61 6e 20 75 6e 63 6f  6d 70 72 65 73 73 65 64  | an uncompressed|
00008bb0  20 33 32 30 20 62 79 20  32 30 30 20 62 79 0a 20  | 320 by 200 by. |
00008bc0  32 35 36 20 63 6f 6c 6f  75 72 20 28 66 72 6f 6d  |256 colour (from|
00008bd0  20 32 5e 32 34 29 20 56  47 41 20 73 63 72 65 65  | 2^24) VGA scree|
00008be0  6e 20 64 75 6d 70 2e 0a  20 2b 20 52 65 63 6f 67  |n dump.. + Recog|
00008bf0  6e 69 73 65 64 20 62 79  20 22 41 56 5f 56 4f 22  |nised by "AV_VO"|
00008c00  20 61 73 20 74 68 65 20  66 69 72 73 74 20 66 69  | as the first fi|
00008c10  76 65 20 62 79 74 65 73  20 69 6e 20 74 68 65 20  |ve bytes in the |
00008c20  66 69 6c 65 0a 20 2d 20  44 6f 63 75 6d 65 6e 74  |file. - Document|
00008c30  61 74 69 6f 6e 20 6e 65  76 65 72 20 73 65 65 6e  |ation never seen|
00008c40  0a 20 2d 20 50 69 78 65  6c 20 73 69 7a 65 20 61  |. - Pixel size a|
00008c50  73 73 75 6d 65 64 20 74  68 65 20 73 61 6d 65 20  |ssumed the same |
00008c60  61 73 20 4d 4f 44 45 20  31 33 20 28 34 35 20 70  |as MODE 13 (45 p|
00008c70  69 78 65 6c 73 20 70 65  72 20 69 6e 63 68 29 2e  |ixels per inch).|
00008c80  0a 0a 54 68 65 20 4d 61  63 50 61 69 6e 74 20 66  |..The MacPaint f|
00008c90  6f 72 6d 61 74 0a 20 50  72 6f 76 69 64 65 73 20  |ormat. Provides |
00008ca0  61 20 35 37 36 20 62 79  20 37 32 30 20 62 69 74  |a 576 by 720 bit|
00008cb0  6d 61 70 2c 20 72 75 6e  20 6c 65 6e 67 74 68 20  |map, run length |
00008cc0  63 6f 64 65 64 20 62 79  20 74 68 65 20 4d 61 63  |coded by the Mac|
00008cd0  27 73 20 22 50 61 63 6b  42 69 74 73 22 0a 20 61  |'s "PackBits". a|
00008ce0  6c 67 6f 72 69 74 68 6d  20 28 72 65 70 65 61 74  |lgorithm (repeat|
00008cf0  65 64 20 62 79 74 65 73  29 2e 0a 20 2d 20 52 65  |ed bytes).. - Re|
00008d00  63 6f 67 6e 69 73 65 64  20 62 79 20 22 50 4e 54  |cognised by "PNT|
00008d10  47 22 20 61 74 20 70 6f  73 69 74 69 6f 6e 20 36  |G" at position 6|
00008d20  35 20 69 6e 20 74 68 65  20 66 69 6c 65 2e 20 54  |5 in the file. T|
00008d30  68 69 73 20 6d 61 79 20  6f 6e 6c 79 20 72 65 6c  |his may only rel|
00008d40  61 74 65 20 74 6f 0a 20  20 20 66 69 6c 65 73 20  |ate to.   files |
00008d50  77 68 69 63 68 20 68 61  76 65 20 62 65 65 6e 20  |which have been |
00008d60  74 68 72 6f 75 67 68 20  61 20 70 72 6f 67 72 61  |through a progra|
00008d70  6d 20 63 61 6c 6c 65 64  20 22 4d 61 63 46 69 78  |m called "MacFix|
00008d80  22 2e 20 44 61 74 61 20  61 73 73 75 6d 65 64 20  |". Data assumed |
00008d90  74 6f 0a 20 20 20 73 74  61 72 74 20 61 74 20 70  |to.   start at p|
00008da0  6f 73 69 74 69 6f 6e 20  31 32 38 20 69 6e 20 74  |osition 128 in t|
00008db0  68 65 20 66 69 6c 65 2e  20 48 65 61 64 65 72 20  |he file. Header |
00008dc0  69 67 6e 6f 72 65 64 2e  0a 20 2d 20 4e 6f 20 72  |ignored.. - No r|
00008dd0  65 73 6f 6c 75 74 69 6f  6e 20 73 70 65 63 69 66  |esolution specif|
00008de0  69 65 64 2c 20 65 71 75  61 6c 20 74 6f 20 6d 6f  |ied, equal to mo|
00008df0  64 65 20 32 35 20 61 73  73 75 6d 65 64 0a 0a 54  |de 25 assumed..T|
00008e00  68 65 20 4d 61 63 20 50  49 43 54 32 20 66 6f 72  |he Mac PICT2 for|
00008e10  6d 61 74 20 28 50 49 43  54 20 65 78 74 65 6e 64  |mat (PICT extend|
00008e20  65 64 20 76 65 72 73 69  6f 6e 20 32 29 0a 20 50  |ed version 2). P|
00008e30  72 6f 76 69 64 65 73 20  61 6e 20 61 72 62 69 74  |rovides an arbit|
00008e40  61 72 79 20 73 69 7a 65  20 70 61 63 6b 65 64 20  |ary size packed |
00008e50  70 69 63 74 75 72 65 2c  20 72 75 6e 20 6c 65 6e  |picture, run len|
00008e60  67 74 68 20 63 6f 64 65  64 20 62 79 20 74 68 65  |gth coded by the|
00008e70  20 4d 61 63 27 73 0a 20  22 50 61 63 6b 42 69 74  | Mac's. "PackBit|
00008e80  73 22 20 61 6c 67 6f 72  69 74 68 6d 20 28 72 65  |s" algorithm (re|
00008e90  70 65 61 74 65 64 20 62  79 74 65 73 29 2e 0a 20  |peated bytes).. |
00008ea0  2b 20 52 65 63 6f 67 6e  69 73 65 64 20 62 79 20  |+ Recognised by |
00008eb0  6c 6f 6f 6b 69 6e 67 20  66 6f 72 20 74 68 65 20  |looking for the |
00008ec0  50 49 43 54 20 68 65 61  64 65 72 20 61 74 20 70  |PICT header at p|
00008ed0  6f 73 69 74 69 6f 6e 20  35 31 34 20 69 6e 20 74  |osition 514 in t|
00008ee0  68 65 20 66 69 6c 65 2e  0a 20 20 20 54 68 65 20  |he file..   The |
00008ef0  68 65 61 64 65 72 20 69  73 20 30 30 20 31 31 20  |header is 00 11 |
00008f00  30 32 20 46 46 20 30 43  20 30 30 20 46 46 20 46  |02 FF 0C 00 FF F|
00008f10  45 2e 0a 20 2d 20 44 6f  63 75 6d 65 6e 74 61 74  |E.. - Documentat|
00008f20  69 6f 6e 20 61 76 61 69  6c 61 62 6c 65 20 62 75  |ion available bu|
00008f30  74 20 6d 6f 73 74 6c 79  20 75 73 65 6c 65 73 73  |t mostly useless|
00008f40  20 28 69 74 20 61 73 73  75 6d 65 73 20 79 6f 75  | (it assumes you|
00008f50  20 61 72 65 20 61 62 6f  75 74 20 74 6f 0a 20 20  | are about to.  |
00008f60  20 63 61 6c 6c 20 51 75  69 63 6b 44 72 61 77 20  | call QuickDraw |
00008f70  72 6f 75 74 69 6e 65 73  20 2d 20 22 4e 6f 74 65  |routines - "Note|
00008f80  3a 20 66 6f 72 20 6d 61  78 69 6d 75 6d 20 73 61  |: for maximum sa|
00008f90  66 65 74 79 20 61 6e 64  20 63 6f 6e 76 65 6e 69  |fety and conveni|
00008fa0  65 6e 63 65 2c 20 6c 65  74 0a 20 20 20 51 75 69  |ence, let.   Qui|
00008fb0  63 6b 44 72 61 77 20 67  65 6e 65 72 61 74 65 20  |ckDraw generate |
00008fc0  61 6e 64 20 69 6e 74 65  72 70 72 65 74 20 79 6f  |and interpret yo|
00008fd0  75 72 20 70 69 63 74 75  72 65 73 2e 22 20 41 70  |ur pictures." Ap|
00008fe0  70 6c 65 20 66 61 69 6c  20 74 6f 20 64 65 73 63  |ple fail to desc|
00008ff0  72 69 62 65 0a 20 20 20  74 68 65 20 50 61 63 6b  |ribe.   the Pack|
00009000  42 69 74 73 20 61 6c 67  6f 72 69 74 68 6d 20 69  |Bits algorithm i|
00009010  6e 20 49 6e 73 69 64 65  20 4d 61 63 2e 2e 2e 29  |n Inside Mac...)|
00009020  0a 20 2d 20 50 49 43 54  20 69 73 20 74 68 65 20  |. - PICT is the |
00009030  6c 6f 6f 73 65 20 65 71  75 69 76 61 6c 65 6e 74  |loose equivalent|
00009040  20 6f 66 20 52 49 53 43  20 4f 53 20 44 72 61 77  | of RISC OS Draw|
00009050  20 66 69 6c 65 20 66 6f  72 6d 61 74 2c 20 62 75  | file format, bu|
00009060  74 20 77 69 74 68 6f 75  74 0a 20 20 20 74 68 65  |t without.   the|
00009070  20 65 78 70 6c 69 63 69  74 20 73 69 7a 69 6e 67  | explicit sizing|
00009080  20 6f 66 20 6f 62 6a 65  63 74 73 20 2d 20 66 6f  | of objects - fo|
00009090  72 20 50 49 43 54 2c 20  69 66 20 74 68 65 72 65  |r PICT, if there|
000090a0  20 69 73 20 61 6e 20 6f  62 6a 65 63 74 20 74 68  | is an object th|
000090b0  61 74 0a 20 20 20 79 6f  75 20 64 6f 6e 27 74 20  |at.   you don't |
000090c0  75 6e 64 65 72 73 74 61  6e 64 2c 20 74 68 65 72  |understand, ther|
000090d0  65 27 73 20 6e 6f 20 77  61 79 20 6f 66 20 73 6b  |e's no way of sk|
000090e0  69 70 70 69 6e 67 20 69  74 20 28 77 68 65 72 65  |ipping it (where|
000090f0  61 73 20 66 6f 72 20 44  72 61 77 2c 0a 20 20 20  |as for Draw,.   |
00009100  74 68 65 20 73 69 7a 65  20 6f 66 20 74 68 65 20  |the size of the |
00009110  6f 62 6a 65 63 74 20 69  73 20 73 70 65 63 69 66  |object is specif|
00009120  69 65 64 20 69 6e 20 61  6e 20 6f 62 6a 65 63 74  |ied in an object|
00009130  20 69 6e 64 65 70 2e 20  77 61 79 29 2e 20 41 70  | indep. way). Ap|
00009140  70 6c 65 0a 20 20 20 70  72 65 73 65 6e 74 20 61  |ple.   present a|
00009150  20 6c 61 72 67 65 20 74  61 62 6c 65 20 6f 66 20  | large table of |
00009160  74 68 65 20 73 69 7a 65  73 20 6f 66 20 74 68 65  |the sizes of the|
00009170  20 6f 62 6a 65 63 74 73  20 28 30 30 30 30 20 2d  | objects (0000 -|
00009180  20 46 46 46 46 29 20 77  68 69 63 68 20 69 73 0a  | FFFF) which is.|
00009190  20 20 20 6e 6f 74 20 69  6e 20 43 68 61 6e 67 65  |   not in Change|
000091a0  46 53 49 2e 20 43 6f 6e  73 65 71 75 65 6e 74 6c  |FSI. Consequentl|
000091b0  79 2c 20 69 66 20 43 68  61 6e 67 65 46 53 49 20  |y, if ChangeFSI |
000091c0  66 69 6e 64 73 20 61 6e  20 6f 62 6a 65 63 74 20  |finds an object |
000091d0  69 74 20 64 6f 65 73 6e  27 74 0a 20 20 20 6b 6e  |it doesn't.   kn|
000091e0  6f 77 20 61 62 6f 75 74  20 62 65 66 6f 72 65 20  |ow about before |
000091f0  74 68 65 20 70 69 63 74  75 72 65 2c 20 69 74 20  |the picture, it |
00009200  73 74 6f 70 73 2e 2e 2e  0a 20 2d 20 4f 6e 6c 79  |stops.... - Only|
00009210  20 50 61 63 6b 42 69 74  73 52 65 63 74 20 28 30  | PackBitsRect (0|
00009220  30 39 38 29 20 28 38 62  70 70 29 20 61 6e 64 20  |098) (8bpp) and |
00009230  44 69 72 65 63 74 42 69  74 73 52 65 63 74 20 28  |DirectBitsRect (|
00009240  30 30 39 41 29 20 28 32  34 2f 33 32 20 62 70 70  |009A) (24/32 bpp|
00009250  29 20 61 72 65 0a 20 20  20 61 6c 6c 6f 77 65 64  |) are.   allowed|
00009260  2e 0a 20 2b 20 43 68 61  6e 67 65 46 53 49 20 74  |.. + ChangeFSI t|
00009270  72 69 65 73 20 74 6f 20  73 6b 69 70 20 61 20 43  |ries to skip a C|
00009280  6c 69 70 20 28 30 30 30  31 29 20 72 65 67 69 6f  |lip (0001) regio|
00009290  6e 20 69 66 20 69 74 20  65 6e 63 6f 75 6e 74 65  |n if it encounte|
000092a0  72 73 20 69 74 2c 20 73  69 6e 63 65 20 69 74 0a  |rs it, since it.|
000092b0  20 20 20 69 73 20 68 61  72 64 20 74 6f 20 67 65  |   is hard to ge|
000092c0  74 20 74 68 65 20 4d 61  63 20 4f 53 20 74 6f 20  |t the Mac OS to |
000092d0  6d 61 6b 65 20 50 49 43  54 20 66 69 6c 65 73 20  |make PICT files |
000092e0  77 69 74 68 6f 75 74 20  61 20 63 6c 69 70 20 6f  |without a clip o|
000092f0  70 63 6f 64 65 20 69 6e  20 74 68 65 6d 2e 0a 20  |pcode in them.. |
00009300  2b 20 73 69 7a 65 20 6f  66 20 70 69 78 65 6c 20  |+ size of pixel |
00009310  73 70 65 63 69 66 69 65  64 2e 0a 20 2d 20 4f 6e  |specified.. - On|
00009320  6c 79 20 33 20 70 69 63  74 75 72 65 73 20 72 65  |ly 3 pictures re|
00009330  61 64 20 2d 20 73 69 6e  63 65 20 74 68 65 20 66  |ad - since the f|
00009340  6f 72 6d 61 74 20 69 73  20 76 65 72 79 20 63 6f  |ormat is very co|
00009350  6d 70 6c 69 63 61 74 65  64 20 28 65 2e 67 2e 20  |mplicated (e.g. |
00009360  74 68 65 20 73 69 7a 65  0a 20 20 20 6f 66 20 74  |the size.   of t|
00009370  68 69 6e 67 73 20 63 68  61 6e 67 65 20 69 66 20  |hings change if |
00009380  3e 32 35 30 20 72 6f 77  73 20 69 6e 20 74 68 65  |>250 rows in the|
00009390  20 70 69 63 74 75 72 65  21 29 20 74 68 69 73 20  | picture!) this |
000093a0  69 73 20 6e 6f 20 67 75  61 72 65 6e 74 65 65 20  |is no guarentee |
000093b0  74 68 61 74 0a 20 20 20  61 6e 79 74 68 69 6e 67  |that.   anything|
000093c0  20 65 6c 73 65 20 77 69  6c 6c 20 62 65 20 72 69  | else will be ri|
000093d0  67 68 74 2e 0a 0a 54 68  65 20 5a 53 6f 66 74 20  |ght...The ZSoft |
000093e0  2e 50 43 58 20 66 6f 72  6d 61 74 0a 20 55 73 65  |.PCX format. Use|
000093f0  64 20 62 79 20 50 43 20  50 61 69 6e 74 62 72 75  |d by PC Paintbru|
00009400  73 68 2e 20 55 73 75 61  6c 6c 79 20 61 20 34 20  |sh. Usually a 4 |
00009410  62 69 74 20 70 65 72 20  70 69 78 65 6c 20 69 6d  |bit per pixel im|
00009420  61 67 65 20 28 43 47 41  2c 20 45 47 41 2c 20 56  |age (CGA, EGA, V|
00009430  47 41 29 20 62 75 74 0a  20 63 61 6e 20 62 65 20  |GA) but. can be |
00009440  31 2d 38 20 62 69 74 73  20 70 65 72 20 70 69 78  |1-8 bits per pix|
00009450  65 6c 2e 0a 20 2d 20 52  65 63 6f 67 6e 69 73 65  |el.. - Recognise|
00009460  64 20 62 79 20 31 30 2c  5b 30 2c 32 2c 33 2c 34  |d by 10,[0,2,3,4|
00009470  2c 35 5d 2c 31 20 61 74  20 73 74 61 72 74 20 6f  |,5],1 at start o|
00009480  66 20 66 69 6c 65 2e 20  4f 72 20 62 79 20 6e 61  |f file. Or by na|
00009490  6d 65 20 50 43 58 2e 3c  66 6f 6f 3e 2e 20 4f 72  |me PCX.<foo>. Or|
000094a0  0a 20 20 20 62 79 20 74  79 70 65 20 26 36 39 37  |.   by type &697|
000094b0  2e 0a 20 2b 20 49 6e 74  65 6c 6c 69 67 65 6e 74  |.. + Intelligent|
000094c0  20 63 68 65 63 6b 20 66  6f 72 20 72 65 73 6f 6c  | check for resol|
000094d0  75 74 69 6f 6e 20 6f 66  20 74 68 65 20 44 41 43  |ution of the DAC|
000094e0  73 20 6f 6e 20 74 68 65  20 50 43 20 63 61 72 64  |s on the PC card|
000094f0  2e 20 55 73 65 20 2d 69  6e 66 6f 20 74 6f 0a 20  |. Use -info to. |
00009500  20 20 66 69 6e 64 20 6f  75 74 20 77 68 61 74 20  |  find out what |
00009510  43 68 61 6e 67 65 46 53  49 20 74 68 69 6e 6b 73  |ChangeFSI thinks|
00009520  20 69 74 20 69 73 2e 0a  20 2b 20 50 69 78 65 6c  | it is.. + Pixel|
00009530  20 73 69 7a 65 20 69 6e  66 6f 72 6d 61 74 69 6f  | size informatio|
00009540  6e 20 72 65 61 64 2e 20  59 6f 75 20 6d 61 79 20  |n read. You may |
00009550  6e 65 65 64 20 74 6f 20  73 74 6f 70 20 74 68 65  |need to stop the|
00009560  20 73 63 61 6c 69 6e 67  20 77 69 74 68 0a 20 20  | scaling with.  |
00009570  20 2d 6e 6f 73 69 7a 65  2c 20 73 69 6e 63 65 20  | -nosize, since |
00009580  69 74 73 20 6f 66 74 65  6e 20 77 72 6f 6e 67 2e  |its often wrong.|
00009590  0a 0a 54 68 65 20 52 49  58 20 53 6f 66 74 77 6f  |..The RIX Softwo|
000095a0  72 6b 73 20 43 6f 6c 6f  52 49 58 20 66 6f 72 6d  |rks ColoRIX form|
000095b0  61 74 0a 20 55 73 65 64  20 62 79 20 56 47 41 20  |at. Used by VGA |
000095c0  50 61 69 6e 74 2c 20 69  6d 61 67 65 20 65 78 74  |Paint, image ext|
000095d0  65 6e 73 69 6f 6e 20 2e  53 43 45 20 2e 2e 20 2e  |ension .SCE .. .|
000095e0  53 43 58 2e 20 34 20 6f  72 20 38 20 62 69 74 73  |SCX. 4 or 8 bits|
000095f0  20 70 65 72 20 70 69 78  65 6c 2e 0a 20 2d 20 52  | per pixel.. - R|
00009600  65 63 6f 67 6e 69 73 65  64 20 62 79 20 22 52 49  |ecognised by "RI|
00009610  58 33 22 20 61 74 20 73  74 61 72 74 20 6f 66 20  |X3" at start of |
00009620  66 69 6c 65 0a 20 2d 20  44 6f 63 75 6d 65 6e 74  |file. - Document|
00009630  61 74 69 6f 6e 20 6e 65  76 65 72 20 73 65 65 6e  |ation never seen|
00009640  0a 20 2d 20 4f 6e 6c 79  20 35 20 66 69 6c 65 73  |. - Only 5 files|
00009650  20 72 65 61 64 3a 20 43  68 61 6e 67 65 46 53 49  | read: ChangeFSI|
00009660  20 63 68 65 63 6b 73 20  74 6f 20 73 65 65 20 69  | checks to see i|
00009670  66 20 74 68 65 20 68 65  61 64 65 72 20 69 73 20  |f the header is |
00009680  74 68 65 20 73 61 6d 65  0a 20 20 20 61 73 20 74  |the same.   as t|
00009690  68 65 73 65 20 66 69 6c  65 73 20 61 6e 64 20 63  |hese files and c|
000096a0  6f 6d 70 6c 61 69 6e 73  20 6f 74 68 65 72 77 69  |omplains otherwi|
000096b0  73 65 2e 0a 20 2d 20 4e  6f 20 72 65 73 6f 6c 75  |se.. - No resolu|
000096c0  74 69 6f 6e 20 73 70 65  63 69 66 69 65 64 2c 20  |tion specified, |
000096d0  65 71 75 61 6c 20 74 6f  20 6d 6f 64 65 20 32 37  |equal to mode 27|
000096e0  20 61 73 73 75 6d 65 64  0a 0a 54 68 65 20 53 75  | assumed..The Su|
000096f0  6e 20 22 70 69 78 72 65  63 74 22 20 66 6f 72 6d  |n "pixrect" form|
00009700  61 74 0a 20 55 73 65 64  20 75 6e 64 65 72 20 53  |at. Used under S|
00009710  75 6e 4f 53 20 61 6e 64  20 61 6c 73 6f 20 75 6e  |unOS and also un|
00009720  64 65 72 20 58 31 31 2e  20 43 6f 6d 6d 6f 6e 6c  |der X11. Commonl|
00009730  79 20 31 20 6f 72 20 38  20 62 69 74 73 20 70 65  |y 1 or 8 bits pe|
00009740  72 20 70 69 78 65 6c 2c  20 62 75 74 20 75 70 0a  |r pixel, but up.|
00009750  20 74 6f 20 32 34 20 62  69 74 73 20 70 65 72 20  | to 24 bits per |
00009760  70 69 78 65 6c 20 63 61  6e 20 62 65 20 66 6f 75  |pixel can be fou|
00009770  6e 64 20 28 73 65 65 20  74 68 65 20 53 75 6e 20  |nd (see the Sun |
00009780  4e 65 57 53 20 72 65 6c  65 61 73 65 20 74 61 70  |NeWS release tap|
00009790  65 21 29 2e 0a 20 2b 20  52 65 63 6f 67 6e 69 73  |e!).. + Recognis|
000097a0  65 64 20 62 79 20 26 35  39 41 35 35 41 39 35 20  |ed by &59A55A95 |
000097b0  61 74 20 74 68 65 20 73  74 61 72 74 20 6f 66 20  |at the start of |
000097c0  74 68 65 20 66 69 6c 65  2e 0a 20 2d 20 4e 6f 20  |the file.. - No |
000097d0  72 65 73 6f 6c 75 74 69  6f 6e 20 73 70 65 63 69  |resolution speci|
000097e0  66 69 65 64 2c 20 65 71  75 61 6c 20 74 6f 20 6d  |fied, equal to m|
000097f0  6f 64 65 20 32 37 20 61  73 73 75 6d 65 64 0a 20  |ode 27 assumed. |
00009800  2d 20 53 75 6e 20 64 69  64 6e 27 74 20 73 70 65  |- Sun didn't spe|
00009810  63 69 66 79 20 74 68 65  20 70 69 78 65 6c 20 6f  |cify the pixel o|
00009820  72 64 65 72 69 6e 67 20  6f 66 20 32 34 20 62 69  |rdering of 24 bi|
00009830  74 20 70 65 72 20 70 69  78 65 6c 20 69 6d 61 67  |t per pixel imag|
00009840  65 73 3a 20 6d 61 6e 79  0a 20 20 20 61 73 73 75  |es: many.   assu|
00009850  6d 65 20 52 47 42 20 77  68 65 6e 20 69 74 20 77  |me RGB when it w|
00009860  61 73 20 61 63 74 75 61  6c 6c 79 20 42 47 52 2e  |as actually BGR.|
00009870  20 43 68 61 6e 67 65 20  62 79 74 65 20 26 31 37  | Change byte &17|
00009880  20 69 6e 20 74 68 65 20  53 75 6e 0a 20 20 20 72  | in the Sun.   r|
00009890  61 73 74 65 72 66 69 6c  65 20 62 65 74 77 65 65  |asterfile betwee|
000098a0  6e 20 31 20 61 6e 64 20  33 20 69 66 20 79 6f 75  |n 1 and 3 if you|
000098b0  20 68 61 76 65 20 61 20  70 72 6f 62 6c 65 6d 2e  | have a problem.|
000098c0  0a 0a 54 68 65 20 22 70  62 6d 22 20 27 70 6f 72  |..The "pbm" 'por|
000098d0  74 61 62 6c 65 20 62 69  74 6d 61 70 27 20 66 69  |table bitmap' fi|
000098e0  6c 65 20 66 6f 72 6d 61  74 0a 20 55 73 65 64 20  |le format. Used |
000098f0  62 79 20 74 68 65 20 22  50 42 4d 2d 50 4c 55 53  |by the "PBM-PLUS|
00009900  22 20 74 6f 6f 6c 6b 69  74 20 28 6d 61 69 6e 6c  |" toolkit (mainl|
00009910  79 20 55 6e 69 78 29 20  62 79 20 4a 65 66 20 50  |y Unix) by Jef P|
00009920  6f 73 6b 61 6e 7a 65 72  2e 20 31 2d 32 34 20 62  |oskanzer. 1-24 b|
00009930  69 74 73 0a 20 70 65 72  20 70 69 78 65 6c 20 28  |its. per pixel (|
00009940  6d 6f 72 65 20 63 61 6e  20 62 65 20 73 70 65 63  |more can be spec|
00009950  69 66 69 65 64 20 69 6e  20 74 68 65 20 66 6f 72  |ified in the for|
00009960  6d 61 74 20 62 75 74 20  43 68 61 6e 67 65 46 53  |mat but ChangeFS|
00009970  49 20 63 61 6e 6e 6f 74  20 72 65 61 64 0a 20 74  |I cannot read. t|
00009980  68 65 6d 29 2e 20 43 68  61 6e 67 65 46 53 49 20  |hem). ChangeFSI |
00009990  63 61 6e 20 6f 6e 6c 79  20 72 65 61 64 20 74 68  |can only read th|
000099a0  65 20 22 52 41 57 42 49  54 53 22 20 66 6f 72 6d  |e "RAWBITS" form|
000099b0  61 74 73 20 28 69 74 20  63 61 6e 20 77 72 69 74  |ats (it can writ|
000099c0  65 20 61 6c 6c 20 6f 66  0a 20 74 68 65 20 70 62  |e all of. the pb|
000099d0  6d 20 66 6f 72 6d 61 74  73 29 2e 0a 20 2b 20 52  |m formats).. + R|
000099e0  65 63 6f 67 6e 69 73 65  64 20 62 79 20 50 34 2f  |ecognised by P4/|
000099f0  50 35 2f 50 36 20 61 74  20 73 74 61 72 74 20 6f  |P5/P6 at start o|
00009a00  66 20 66 69 6c 65 2e 0a  20 2b 20 57 72 69 74 61  |f file.. + Writa|
00009a10  62 6c 65 20 62 79 20 43  68 61 6e 67 65 46 53 49  |ble by ChangeFSI|
00009a20  0a 20 2d 20 4e 6f 20 72  65 73 6f 6c 75 74 69 6f  |. - No resolutio|
00009a30  6e 20 73 70 65 63 69 66  69 65 64 2c 20 65 71 75  |n specified, equ|
00009a40  61 6c 20 74 6f 20 6d 6f  64 65 20 32 37 20 61 73  |al to mode 27 as|
00009a50  73 75 6d 65 64 0a 0a 54  68 65 20 55 4e 49 58 20  |sumed..The UNIX |
00009a60  22 72 6c 65 22 20 66 6f  72 6d 61 74 0a 20 55 73  |"rle" format. Us|
00009a70  65 64 20 62 79 20 61 20  70 72 6f 67 72 61 6d 20  |ed by a program |
00009a80  63 61 6c 6c 65 64 20 22  73 76 66 62 22 20 74 6f  |called "svfb" to|
00009a90  20 73 61 76 65 20 74 68  65 20 63 6f 6e 74 65 6e  | save the conten|
00009aa0  74 73 20 6f 66 20 6c 61  72 67 65 20 66 72 61 6d  |ts of large fram|
00009ab0  65 0a 20 62 75 66 66 65  72 73 2c 20 63 68 65 63  |e. buffers, chec|
00009ac0  6b 65 64 20 77 69 74 68  20 66 6f 75 72 20 69 6d  |ked with four im|
00009ad0  61 67 65 73 20 61 74 20  32 34 20 62 69 74 73 20  |ages at 24 bits |
00009ae0  70 65 72 20 70 69 78 65  6c 2e 0a 20 2b 20 52 65  |per pixel.. + Re|
00009af0  63 6f 67 6e 69 73 65 64  20 62 79 20 26 43 43 35  |cognised by &CC5|
00009b00  32 20 61 74 20 74 68 65  20 73 74 61 72 74 20 6f  |2 at the start o|
00009b10  66 20 74 68 65 20 66 69  6c 65 2e 0a 20 2d 20 4e  |f the file.. - N|
00009b20  6f 20 72 65 73 6f 6c 75  74 69 6f 6e 20 73 70 65  |o resolution spe|
00009b30  63 69 66 69 65 64 2c 20  65 71 75 61 6c 20 74 6f  |cified, equal to|
00009b40  20 6d 6f 64 65 20 32 37  20 61 73 73 75 6d 65 64  | mode 27 assumed|
00009b50  0a 0a 54 68 65 20 54 72  75 65 56 69 73 69 6f 6e  |..The TrueVision|
00009b60  20 54 61 72 67 61 20 66  6f 72 6d 61 74 0a 20 55  | Targa format. U|
00009b70  73 65 64 20 62 79 20 54  72 75 65 56 69 73 69 6f  |sed by TrueVisio|
00009b80  6e 20 66 6f 72 20 56 69  73 74 61 20 62 6f 61 72  |n for Vista boar|
00009b90  64 73 2e 20 55 70 20 74  6f 20 33 32 20 62 69 74  |ds. Up to 32 bit|
00009ba0  73 20 70 65 72 20 70 69  78 65 6c 2e 0a 20 2d 20  |s per pixel.. - |
00009bb0  52 65 63 6f 67 6e 69 73  65 64 20 62 79 20 73 75  |Recognised by su|
00009bc0  66 66 69 78 20 5f 54 47  41 20 6f 72 20 5f 56 44  |ffix _TGA or _VD|
00009bd0  41 20 6f 6e 20 74 68 65  20 6e 61 6d 65 2e 20 4f  |A on the name. O|
00009be0  72 20 62 79 20 74 79 70  65 20 26 36 39 64 2e 0a  |r by type &69d..|
00009bf0  20 2d 20 4f 6e 6c 79 20  75 6e 63 6f 6d 70 72 65  | - Only uncompre|
00009c00  73 73 65 64 20 66 6f 72  6d 61 74 73 20 72 65 61  |ssed formats rea|
00009c10  64 61 62 6c 65 2e 0a 20  2d 20 4f 6e 6c 79 20 38  |dable.. - Only 8|
00009c20  20 61 6e 64 20 31 36 20  62 69 74 20 70 65 72 20  | and 16 bit per |
00009c30  70 69 78 65 6c 20 66 6f  72 6d 61 74 73 20 74 65  |pixel formats te|
00009c40  73 74 65 64 2e 0a 0a 54  68 65 20 22 46 6c 65 78  |sted...The "Flex|
00009c50  69 62 6c 65 20 49 6d 61  67 65 20 54 72 61 6e 73  |ible Image Trans|
00009c60  70 6f 72 74 20 53 79 73  74 65 6d 22 20 28 46 49  |port System" (FI|
00009c70  54 53 29 20 66 6f 72 6d  61 74 0a 20 55 73 65 64  |TS) format. Used|
00009c80  20 66 6f 72 20 61 73 74  72 6f 6e 6f 6d 69 63 61  | for astronomica|
00009c90  6c 20 64 61 74 61 2e 20  55 70 20 74 6f 20 31 36  |l data. Up to 16|
00009ca0  20 62 69 74 73 20 70 65  72 20 70 69 78 65 6c 20  | bits per pixel |
00009cb0  63 6f 6d 70 6f 6e 65 6e  74 2e 0a 20 2b 20 52 65  |component.. + Re|
00009cc0  63 6f 67 6e 69 73 65 64  20 62 79 20 22 53 49 4d  |cognised by "SIM|
00009cd0  50 4c 45 22 20 61 74 20  74 68 65 20 73 74 61 72  |PLE" at the star|
00009ce0  74 20 6f 66 20 74 68 65  20 66 69 6c 65 2e 0a 20  |t of the file.. |
00009cf0  2d 20 4f 6e 6c 79 20 38  20 61 6e 64 20 31 36 20  |- Only 8 and 16 |
00009d00  62 69 74 20 70 65 72 20  70 69 78 65 6c 20 63 6f  |bit per pixel co|
00009d10  6d 70 6f 6e 65 6e 74 20  66 6f 72 6d 61 74 73 20  |mponent formats |
00009d20  74 65 73 74 65 64 2e 0a  20 2d 20 4f 6e 6c 79 20  |tested.. - Only |
00009d30  74 77 6f 20 66 69 6c 65  73 20 65 76 65 72 20 73  |two files ever s|
00009d40  65 65 6e 21 0a 20 2d 20  4e 6f 20 72 65 73 6f 6c  |een!. - No resol|
00009d50  75 74 69 6f 6e 20 73 70  65 63 69 66 69 65 64 2c  |ution specified,|
00009d60  20 65 71 75 61 6c 20 74  6f 20 6d 6f 64 65 20 32  | equal to mode 2|
00009d70  37 20 61 73 73 75 6d 65  64 0a 0a 54 68 65 20 49  |7 assumed..The I|
00009d80  72 6c 61 6d 20 69 6e 73  74 72 75 6d 65 6e 74 73  |rlam instruments|
00009d90  20 63 6f 6c 6f 75 72 20  73 63 61 6e 6e 65 72 20  | colour scanner |
00009da0  66 6f 72 6d 61 74 0a 20  32 34 20 62 69 74 20 70  |format. 24 bit p|
00009db0  65 72 20 70 69 78 65 6c  20 66 72 6f 6d 20 63 6f  |er pixel from co|
00009dc0  6c 6f 75 72 20 73 63 61  6e 6e 65 72 2e 0a 20 2b  |lour scanner.. +|
00009dd0  20 52 65 63 6f 67 6e 69  73 65 64 20 62 79 20 49  | Recognised by I|
00009de0  72 6c 61 6d 20 32 34 20  61 74 20 74 68 65 20 73  |rlam 24 at the s|
00009df0  74 61 72 74 20 6f 66 20  74 68 65 20 66 69 6c 65  |tart of the file|
00009e00  2e 0a 20 2b 20 57 72 69  74 61 62 6c 65 20 62 79  |.. + Writable by|
00009e10  20 43 68 61 6e 67 65 46  53 49 0a 20 2d 20 4e 6f  | ChangeFSI. - No|
00009e20  20 72 65 73 6f 6c 75 74  69 6f 6e 20 73 70 65 63  | resolution spec|
00009e30  69 66 69 65 64 2c 20 65  71 75 61 6c 20 74 6f 20  |ified, equal to |
00009e40  6d 6f 64 65 20 32 37 20  61 73 73 75 6d 65 64 0a  |mode 27 assumed.|
00009e50  20 2d 20 6d 61 79 20 6e  65 65 64 20 67 61 6d 6d  | - may need gamm|
00009e60  61 20 63 6f 72 72 65 63  74 69 6f 6e 0a 0a 54 68  |a correction..Th|
00009e70  65 20 49 72 6c 61 6d 20  69 6e 73 74 72 75 6d 65  |e Irlam instrume|
00009e80  6e 74 73 20 59 55 56 20  34 31 31 20 63 6f 6c 6f  |nts YUV 411 colo|
00009e90  75 72 20 76 69 64 65 6f  20 66 6f 72 6d 61 74 0a  |ur video format.|
00009ea0  20 37 20 62 69 74 73 20  59 2c 20 75 70 20 74 6f  | 7 bits Y, up to|
00009eb0  20 37 20 62 69 74 73 20  55 20 61 6e 64 20 56 2e  | 7 bits U and V.|
00009ec0  0a 20 2b 20 52 65 63 6f  67 6e 69 73 65 64 20 62  |. + Recognised b|
00009ed0  79 20 49 72 6c 61 6d 20  59 55 56 20 34 31 31 20  |y Irlam YUV 411 |
00009ee0  61 74 20 74 68 65 20 73  74 61 72 74 20 6f 66 20  |at the start of |
00009ef0  74 68 65 20 66 69 6c 65  0a 20 2d 20 6e 6f 20 72  |the file. - no r|
00009f00  65 73 6f 6c 75 74 69 6f  6e 20 73 70 65 63 69 66  |esolution specif|
00009f10  69 65 64 2c 20 65 71 75  61 6c 20 74 6f 20 6d 6f  |ied, equal to mo|
00009f20  64 65 20 32 37 20 61 73  73 75 6d 65 64 0a 0a 54  |de 27 assumed..T|
00009f30  68 65 20 4a 50 45 47 20  27 4a 46 49 46 27 20 46  |he JPEG 'JFIF' F|
00009f40  69 6c 65 20 49 6e 74 65  72 63 68 61 6e 67 65 20  |ile Interchange |
00009f50  46 6f 72 6d 61 74 0a 20  55 70 20 74 6f 20 32 34  |Format. Up to 24|
00009f60  20 62 69 74 73 20 52 2c  47 2c 42 2c 20 63 6f 6d  | bits R,G,B, com|
00009f70  70 72 65 73 73 65 64 20  62 79 20 74 68 65 20 4a  |pressed by the J|
00009f80  50 45 47 20 63 6f 6d 70  72 65 73 73 69 6f 6e 20  |PEG compression |
00009f90  73 79 73 74 65 6d 2e 0a  20 2b 20 52 65 63 6f 67  |system.. + Recog|
00009fa0  6e 69 73 65 64 20 62 79  20 4a 46 49 46 20 61 74  |nised by JFIF at|
00009fb0  20 70 6f 73 69 74 69 6f  6e 20 36 20 69 6e 20 74  | position 6 in t|
00009fc0  68 65 20 66 69 6c 65 20  28 79 6f 75 20 6d 61 79  |he file (you may|
00009fd0  20 68 61 76 65 20 74 6f  0a 20 20 20 63 75 74 20  | have to.   cut |
00009fe0  68 65 61 64 65 72 73 20  6f 66 66 20 66 69 6c 65  |headers off file|
00009ff0  73 2c 20 70 61 72 74 69  63 75 6c 61 72 6c 79 20  |s, particularly |
0000a000  69 66 20 74 68 65 79 20  61 72 65 20 66 72 6f 6d  |if they are from|
0000a010  20 4d 61 63 73 29 2e 0a  20 2b 20 4f 66 74 65 6e  | Macs).. + Often|
0000a020  20 68 69 67 68 6c 79 20  63 6f 6d 70 72 65 73 73  | highly compress|
0000a030  65 64 0a 20 2b 20 49 66  20 43 68 61 6e 67 65 46  |ed. + If ChangeF|
0000a040  53 49 24 43 61 63 68 65  20 69 73 20 6c 61 72 67  |SI$Cache is larg|
0000a050  65 20 65 6e 6f 75 67 68  20 28 62 69 67 67 65 72  |e enough (bigger|
0000a060  20 74 68 61 6e 20 74 68  65 20 66 69 6c 65 29 2c  | than the file),|
0000a070  20 74 68 65 6e 20 68 69  67 68 0a 20 20 20 73 70  | then high.   sp|
0000a080  65 65 64 20 72 6f 75 74  69 6e 65 73 20 61 72 65  |eed routines are|
0000a090  20 75 73 65 64 20 74 6f  20 64 65 63 6f 6d 70 72  | used to decompr|
0000a0a0  65 73 73 2e 20 4f 74 68  65 72 77 69 73 65 3a 0a  |ess. Otherwise:.|
0000a0b0  20 2d 20 43 68 61 6e 67  65 46 53 49 20 63 61 6c  | - ChangeFSI cal|
0000a0c0  6c 73 20 61 20 64 6a 70  65 67 20 72 6f 75 74 69  |ls a djpeg routi|
0000a0d0  6e 65 2e 20 54 68 69 73  20 63 61 6e 20 62 65 20  |ne. This can be |
0000a0e0  6f 6e 20 74 68 65 20 52  75 6e 24 50 61 74 68 2c  |on the Run$Path,|
0000a0f0  20 69 6d 70 6c 65 6d 65  6e 74 65 64 0a 20 20 20  | implemented.   |
0000a100  61 73 20 61 6e 20 41 6c  69 61 73 20 28 69 6e 20  |as an Alias (in |
0000a110  77 68 69 63 68 20 63 61  73 65 20 69 74 20 2a 6d  |which case it *m|
0000a120  75 73 74 2a 20 75 73 65  20 57 69 6d 70 54 61 73  |ust* use WimpTas|
0000a130  6b 20 74 6f 20 73 74 61  72 74 29 20 6f 72 20 66  |k to start) or f|
0000a140  6f 75 6e 64 0a 20 20 20  69 6e 73 69 64 65 20 43  |ound.   inside C|
0000a150  68 61 6e 67 65 46 53 49  24 44 69 72 20 69 66 20  |hangeFSI$Dir if |
0000a160  61 6c 6c 20 65 6c 73 65  20 66 61 69 6c 73 2e 20  |all else fails. |
0000a170  63 6a 70 65 67 20 28 74  68 65 20 63 6f 6d 70 72  |cjpeg (the compr|
0000a180  65 73 73 6f 72 29 20 69  73 20 61 6c 73 6f 0a 20  |essor) is also. |
0000a190  20 20 61 76 61 69 6c 61  62 6c 65 20 69 6e 73 69  |  available insi|
0000a1a0  64 65 20 43 68 61 6e 67  65 46 53 49 24 44 69 72  |de ChangeFSI$Dir|
0000a1b0  20 2d 20 79 6f 75 20 77  69 6c 6c 20 6e 65 65 64  | - you will need|
0000a1c0  20 74 6f 20 63 6f 6e 76  65 72 74 20 74 68 65 20  | to convert the |
0000a1d0  69 6d 61 67 65 20 74 6f  0a 20 20 20 50 36 20 66  |image to.   P6 f|
0000a1e0  6f 72 6d 61 74 20 62 65  66 6f 72 65 20 69 74 20  |ormat before it |
0000a1f0  63 61 6e 20 62 65 20 63  6f 6d 70 72 65 73 73 65  |can be compresse|
0000a200  64 2e 20 44 6a 70 65 67  20 61 6e 64 20 63 6a 70  |d. Djpeg and cjp|
0000a210  65 67 20 61 72 65 20 62  79 20 74 68 65 0a 20 20  |eg are by the.  |
0000a220  20 50 44 20 4a 50 45 47  20 67 72 6f 75 70 2e 0a  | PD JPEG group..|
0000a230  20 2d 20 2e 2e 2e 20 61  6e 64 20 74 68 65 72 65  | - ... and there|
0000a240  66 6f 72 65 20 73 6c 6f  77 2e 20 4e 65 65 64 73  |fore slow. Needs|
0000a250  20 61 20 6c 6f 74 20 6f  66 20 73 70 61 63 65 20  | a lot of space |
0000a260  69 6e 20 3c 57 69 6d 70  24 53 63 72 61 70 3e 2e  |in <Wimp$Scrap>.|
0000a270  0a 20 2d 20 6e 6f 20 72  65 73 6f 6c 75 74 69 6f  |. - no resolutio|
0000a280  6e 20 73 70 65 63 69 66  69 65 64 2c 20 65 71 75  |n specified, equ|
0000a290  61 6c 20 74 6f 20 6d 6f  64 65 20 32 37 20 61 73  |al to mode 27 as|
0000a2a0  73 75 6d 65 64 0a 0a 3e  3e 20 54 68 65 20 66 6f  |sumed..>> The fo|
0000a2b0  6c 6c 6f 77 69 6e 67 20  66 69 6c 65 20 66 6f 72  |llowing file for|
0000a2c0  6d 61 74 73 20 61 72 65  20 6f 6e 6c 79 20 72 65  |mats are only re|
0000a2d0  63 6f 67 6e 69 73 65 64  20 62 79 20 74 68 65 69  |cognised by thei|
0000a2e0  72 20 6e 61 6d 65 73 2e  0a 0a 41 6e 20 75 6e 6b  |r names...An unk|
0000a2f0  6e 6f 77 6e 20 50 43 20  2e 44 53 50 20 66 6f 72  |nown PC .DSP for|
0000a300  6d 61 74 0a 20 45 78 70  65 72 69 6d 65 6e 74 61  |mat. Experimenta|
0000a310  6c 6c 79 20 64 65 74 65  72 6d 69 6e 65 64 20 74  |lly determined t|
0000a320  68 61 74 20 69 74 20 68  6f 6c 64 73 20 61 20 36  |hat it holds a 6|
0000a330  34 30 20 62 79 20 33 35  30 20 45 47 41 20 70 69  |40 by 350 EGA pi|
0000a340  63 74 75 72 65 20 61 74  20 34 20 62 69 74 73 0a  |cture at 4 bits.|
0000a350  20 70 65 72 20 70 69 78  65 6c 2e 20 43 68 61 6e  | per pixel. Chan|
0000a360  67 65 46 53 49 20 22 6b  6e 6f 77 73 22 20 74 68  |geFSI "knows" th|
0000a370  65 20 64 65 66 61 75 6c  74 20 45 47 41 20 70 61  |e default EGA pa|
0000a380  6c 65 74 74 65 20 28 66  72 6f 6d 20 49 42 4d 20  |lette (from IBM |
0000a390  6c 69 74 65 72 61 74 75  72 65 29 2e 0a 20 2d 20  |literature).. - |
0000a3a0  52 65 63 6f 67 6e 69 73  65 64 20 62 79 20 62 65  |Recognised by be|
0000a3b0  69 6e 67 20 69 6e 20 61  20 64 69 72 65 63 74 6f  |ing in a directo|
0000a3c0  72 79 20 22 44 53 50 22  0a 20 2d 20 44 6f 63 75  |ry "DSP". - Docu|
0000a3d0  6d 65 6e 74 61 74 69 6f  6e 20 6e 65 76 65 72 20  |mentation never |
0000a3e0  73 65 65 6e 0a 20 2d 20  4e 6f 20 72 65 73 6f 6c  |seen. - No resol|
0000a3f0  75 74 69 6f 6e 20 73 70  65 63 69 66 69 65 64 2c  |ution specified,|
0000a400  20 65 71 75 61 6c 20 74  6f 20 6d 6f 64 65 20 32  | equal to mode 2|
0000a410  37 20 61 73 73 75 6d 65  64 0a 20 2d 20 4f 6e 6c  |7 assumed. - Onl|
0000a420  79 20 74 77 6f 20 65 78  61 6d 70 6c 65 73 20 72  |y two examples r|
0000a430  65 61 64 28 21 29 0a 0a  54 68 65 20 51 52 54 20  |ead(!)..The QRT |
0000a440  2e 72 61 77 20 66 6f 72  6d 61 74 0a 20 4f 75 74  |.raw format. Out|
0000a450  70 75 74 20 66 72 6f 6d  20 53 74 65 76 65 20 4b  |put from Steve K|
0000a460  6f 72 65 6e 27 73 20 70  75 62 6c 69 63 20 64 6f  |oren's public do|
0000a470  6d 61 69 6e 20 72 61 79  20 74 72 61 63 65 72 3a  |main ray tracer:|
0000a480  20 61 72 62 69 74 72 61  72 79 20 73 69 7a 65 20  | arbitrary size |
0000a490  69 6e 20 32 5e 32 34 0a  20 63 6f 6c 6f 75 72 73  |in 2^24. colours|
0000a4a0  2c 20 75 6e 63 6f 6d 70  72 65 73 73 65 64 2e 20  |, uncompressed. |
0000a4b0  44 6f 63 75 6d 65 6e 74  61 74 69 6f 6e 20 70 61  |Documentation pa|
0000a4c0  72 74 20 6f 66 20 51 52  54 2e 0a 20 2d 20 52 65  |rt of QRT.. - Re|
0000a4d0  63 6f 67 6e 69 73 65 64  20 62 79 20 74 68 65 20  |cognised by the |
0000a4e0  6e 61 6d 65 20 65 6e 64  69 6e 67 20 22 2e 52 61  |name ending ".Ra|
0000a4f0  77 22 2e 20 4f 72 20 62  79 20 74 79 70 65 20 26  |w". Or by type &|
0000a500  36 39 38 2e 0a 20 2d 20  4e 6f 20 72 65 73 6f 6c  |698.. - No resol|
0000a510  75 74 69 6f 6e 20 73 70  65 63 69 66 69 65 64 2c  |ution specified,|
0000a520  20 65 71 75 61 6c 20 74  6f 20 6d 6f 64 65 20 32  | equal to mode 2|
0000a530  37 20 61 73 73 75 6d 65  64 0a 0a 54 68 65 20 4d  |7 assumed..The M|
0000a540  54 56 20 70 69 63 2e 20  66 6f 72 6d 61 74 0a 20  |TV pic. format. |
0000a550  4f 75 74 70 75 74 20 66  72 6f 6d 20 4d 61 72 6b  |Output from Mark|
0000a560  20 54 65 72 72 65 6e 63  65 20 56 61 6e 64 65 57  | Terrence VandeW|
0000a570  65 74 74 65 72 69 6e 67  20 70 75 62 6c 69 63 20  |ettering public |
0000a580  64 6f 6d 61 69 6e 20 72  61 79 20 74 72 61 63 65  |domain ray trace|
0000a590  72 20 61 72 62 69 74 72  61 72 79 0a 20 73 69 7a  |r arbitrary. siz|
0000a5a0  65 20 69 6e 20 32 5e 32  34 20 63 6f 6c 6f 75 72  |e in 2^24 colour|
0000a5b0  73 2c 20 75 6e 63 6f 6d  70 72 65 73 73 65 64 2e  |s, uncompressed.|
0000a5c0  20 44 6f 63 75 6d 65 6e  74 61 74 69 6f 6e 20 70  | Documentation p|
0000a5d0  61 72 74 20 6f 66 20 4d  54 56 2e 20 41 6c 73 6f  |art of MTV. Also|
0000a5e0  20 75 73 65 64 20 62 79  0a 20 22 52 61 79 53 68  | used by. "RaySh|
0000a5f0  61 64 65 22 2e 0a 20 2d  20 52 65 63 6f 67 6e 69  |ade".. - Recogni|
0000a600  73 65 64 20 62 79 20 62  65 69 6e 67 20 69 6e 20  |sed by being in |
0000a610  61 20 64 69 72 65 63 74  6f 72 79 20 22 50 69 63  |a directory "Pic|
0000a620  2e 22 2e 20 4f 72 20 62  79 20 74 79 70 65 20 26  |.". Or by type &|
0000a630  36 39 39 2e 0a 20 2d 20  4e 6f 20 72 65 73 6f 6c  |699.. - No resol|
0000a640  75 74 69 6f 6e 20 73 70  65 63 69 66 69 65 64 2c  |ution specified,|
0000a650  20 65 71 75 61 6c 20 74  6f 20 6d 6f 64 65 20 32  | equal to mode 2|
0000a660  37 20 61 73 73 75 6d 65  64 0a 0a 54 68 65 20 52  |7 assumed..The R|
0000a670  54 20 69 6d 61 67 65 2e  20 66 6f 72 6d 61 74 0a  |T image. format.|
0000a680  20 4f 75 74 70 75 74 20  66 72 6f 6d 20 22 52 54  | Output from "RT|
0000a690  22 2c 20 61 20 70 72 69  76 61 74 65 20 72 61 79  |", a private ray|
0000a6a0  20 74 72 61 63 65 72 20  62 79 20 42 72 69 61 6e  | tracer by Brian|
0000a6b0  20 44 20 57 61 74 74 28  3f 29 20 61 72 62 69 74  | D Watt(?) arbit|
0000a6c0  72 61 72 79 20 73 69 7a  65 20 69 6e 0a 20 32 5e  |rary size in. 2^|
0000a6d0  32 34 20 63 6f 6c 6f 75  72 73 2c 20 72 75 6e 20  |24 colours, run |
0000a6e0  6c 65 6e 67 74 68 20 65  6e 63 6f 64 65 64 2e 0a  |length encoded..|
0000a6f0  20 2d 20 52 65 63 6f 67  6e 69 73 65 64 20 62 79  | - Recognised by|
0000a700  20 62 65 69 6e 67 20 69  6e 20 61 20 64 69 72 65  | being in a dire|
0000a710  63 74 6f 72 79 20 22 49  6d 61 67 65 2e 22 0a 20  |ctory "Image.". |
0000a720  2d 20 4e 6f 20 72 65 73  6f 6c 75 74 69 6f 6e 20  |- No resolution |
0000a730  73 70 65 63 69 66 69 65  64 2c 20 65 71 75 61 6c  |specified, equal|
0000a740  20 74 6f 20 6d 6f 64 65  20 32 37 20 61 73 73 75  | to mode 27 assu|
0000a750  6d 65 64 0a 0a 46 6f 72  20 6d 61 6e 79 20 6f 66  |med..For many of|
0000a760  20 74 68 65 73 65 20 66  6f 72 6d 61 74 73 2c 20  | these formats, |
0000a770  65 73 70 65 63 69 61 6c  6c 79 20 74 68 65 20 75  |especially the u|
0000a780  6e 63 6f 6d 70 72 65 73  73 65 64 20 6f 6e 65 73  |ncompressed ones|
0000a790  2c 20 73 65 74 74 69 6e  67 20 74 68 65 0a 76 61  |, setting the.va|
0000a7a0  72 69 61 62 6c 65 20 22  43 68 61 6e 67 65 46 53  |riable "ChangeFS|
0000a7b0  49 24 43 61 63 68 65 22  20 74 6f 20 74 68 65 20  |I$Cache" to the |
0000a7c0  6e 75 6d 62 65 72 20 6f  66 20 62 79 74 65 73 20  |number of bytes |
0000a7d0  6f 66 20 74 65 6d 70 6f  72 61 72 79 20 6d 65 6d  |of temporary mem|
0000a7e0  6f 72 79 20 79 6f 75 0a  77 69 73 68 20 74 68 65  |ory you.wish the|
0000a7f0  20 70 72 6f 67 72 61 6d  20 74 6f 20 75 73 65 20  | program to use |
0000a800  77 69 6c 6c 20 73 70 65  65 64 20 75 70 20 72 65  |will speed up re|
0000a810  61 64 69 6e 67 20 74 68  65 20 69 6e 66 6f 72 6d  |ading the inform|
0000a820  61 74 69 6f 6e 2e 20 54  68 65 20 64 65 66 61 75  |ation. The defau|
0000a830  6c 74 0a 69 73 20 34 39  31 35 32 20 62 79 74 65  |lt.is 49152 byte|
0000a840  73 2e 20 46 6f 72 20 65  78 61 6d 70 6c 65 20 22  |s. For example "|
0000a850  2a 73 65 74 20 43 68 61  6e 67 65 46 53 49 24 43  |*set ChangeFSI$C|
0000a860  61 63 68 65 20 38 30 6b  22 2e 20 46 6f 72 20 74  |ache 80k". For t|
0000a870  68 6f 73 65 20 77 6f 72  72 69 65 64 0a 61 62 6f  |hose worried.abo|
0000a880  75 74 20 73 70 65 65 64  2c 20 74 68 65 20 70 72  |ut speed, the pr|
0000a890  6f 67 72 61 6d 20 77 69  6c 6c 20 67 6f 20 66 61  |ogram will go fa|
0000a8a0  73 74 65 72 20 69 66 3a  0a 0a 20 2d 20 79 6f 75  |ster if:.. - you|
0000a8b0  20 75 73 65 20 2d 6e 6f  73 63 61 6c 65 20 61 6e  | use -noscale an|
0000a8c0  64 20 6b 65 65 70 20 31  3a 31 20 72 61 74 69 6f  |d keep 1:1 ratio|
0000a8d0  73 20 28 64 6f 6e 27 74  20 73 70 65 63 69 66 79  |s (don't specify|
0000a8e0  20 74 68 65 6d 29 0a 20  20 20 28 61 6c 74 68 6f  | them).   (altho|
0000a8f0  75 67 68 20 2d 6e 6f 73  69 7a 65 20 61 6e 64 20  |ugh -nosize and |
0000a900  31 3a 31 20 6f 72 20 31  3a 32 20 72 61 74 69 6f  |1:1 or 1:2 ratio|
0000a910  73 20 61 72 65 20 71 75  69 63 6b 2c 20 74 6f 6f  |s are quick, too|
0000a920  29 0a 20 2d 20 79 6f 75  20 64 6f 6e 27 74 20 6e  |). - you don't n|
0000a930  65 65 64 20 73 68 61 72  70 65 6e 69 6e 67 2c 20  |eed sharpening, |
0000a940  68 69 73 74 6f 67 72 61  6d 20 65 71 75 61 6c 69  |histogram equali|
0000a950  73 61 74 69 6f 6e 2c 20  72 61 6e 67 65 20 65 78  |sation, range ex|
0000a960  70 61 6e 73 69 6f 6e 0a  20 2d 20 79 6f 75 20 75  |pansion. - you u|
0000a970  73 65 20 6d 6f 6e 6f 63  68 72 6f 6d 65 20 28 65  |se monochrome (e|
0000a980  2e 67 2e 20 32 35 2c 20  32 36 2c 20 32 37 20 61  |.g. 25, 26, 27 a|
0000a990  6e 64 20 32 37 74 29 20  6d 6f 64 65 73 0a 0a 61  |nd 27t) modes..a|
0000a9a0  64 64 69 74 69 6f 6e 61  6c 6c 79 20 79 6f 75 20  |dditionally you |
0000a9b0  63 61 6e 20 64 69 73 61  62 6c 65 20 64 69 74 68  |can disable dith|
0000a9c0  65 72 69 6e 67 20 28 2d  6e 6f 64 69 74 68 65 72  |ering (-nodither|
0000a9d0  29 20 65 73 70 65 63 69  61 6c 6c 79 20 77 68 65  |) especially whe|
0000a9e0  6e 20 72 65 61 64 69 6e  67 0a 6d 6f 6e 6f 63 68  |n reading.monoch|
0000a9f0  72 6f 6d 65 20 73 6f 75  72 63 65 2e 0a 0a 59 6f  |rome source...Yo|
0000aa00  75 20 63 61 6e 20 61 76  6f 69 64 20 74 68 65 20  |u can avoid the |
0000aa10  70 72 6f 67 72 61 6d 20  63 68 61 6e 67 69 6e 67  |program changing|
0000aa20  20 6d 6f 64 65 20 62 79  20 70 75 74 74 69 6e 67  | mode by putting|
0000aa30  20 2d 6e 6f 6d 6f 64 65  20 6f 6e 20 74 68 65 20  | -nomode on the |
0000aa40  63 6f 6d 6d 61 6e 64 20  6c 69 6e 65 2e 0a 0a 56  |command line...V|
0000aa50  65 72 79 20 6c 61 72 67  65 20 6f 75 74 70 75 74  |ery large output|
0000aa60  20 66 69 6c 65 73 20 63  61 6e 20 62 65 20 62 75  | files can be bu|
0000aa70  69 6c 74 20 73 74 72 69  70 73 20 61 74 20 61 20  |ilt strips at a |
0000aa80  74 69 6d 65 20 61 6e 64  20 73 65 6e 74 20 64 69  |time and sent di|
0000aa90  72 65 63 74 6c 79 20 74  6f 20 64 69 73 6b 0a 75  |rectly to disk.u|
0000aaa0  73 69 6e 67 20 74 68 65  20 70 61 72 61 6d 65 74  |sing the paramet|
0000aab0  65 72 20 22 2d 6d 61 78  22 20 65 2e 67 3a 0a 0a  |er "-max" e.g:..|
0000aac0  20 20 43 68 61 6e 67 65  46 53 49 20 3c 69 6e 3e  |  ChangeFSI <in>|
0000aad0  20 3c 6f 75 74 3e 20 32  38 20 2d 6d 61 78 35 31  | <out> 28 -max51|
0000aae0  32 4b 0a 0a 77 69 6c 6c  20 63 6f 6e 76 65 72 74  |2K..will convert|
0000aaf0  20 74 68 65 20 66 69 6c  65 20 77 69 74 68 20 61  | the file with a|
0000ab00  20 6d 61 78 69 6d 75 6d  20 6f 66 20 35 31 32 4b  | maximum of 512K|
0000ab10  42 79 74 65 73 20 68 65  6c 64 20 69 6e 20 6d 65  |Bytes held in me|
0000ab20  6d 6f 72 79 2e 20 4f 70  74 69 6f 6e 73 20 32 35  |mory. Options 25|
0000ab30  74 2c 0a 2d 72 6f 74 61  74 65 20 61 6e 64 20 2d  |t,.-rotate and -|
0000ab40  76 66 6c 69 70 20 64 6f  6e 27 74 20 77 6f 72 6b  |vflip don't work|
0000ab50  20 77 68 65 6e 20 74 68  69 73 20 69 73 20 62 65  | when this is be|
0000ab60  69 6e 67 20 64 6f 6e 65  2e 0a 0a 57 6f 72 6b 20  |ing done...Work |
0000ab70  77 69 6c 6c 20 62 65 20  64 6f 6e 65 20 6f 6e 20  |will be done on |
0000ab80  6f 74 68 65 72 20 66 6f  72 6d 61 74 73 20 77 68  |other formats wh|
0000ab90  65 6e 20 61 6e 64 20 69  66 20 62 6f 74 68 20 69  |en and if both i|
0000aba0  6d 61 67 65 20 61 6e 64  20 64 6f 63 75 6d 65 6e  |mage and documen|
0000abb0  74 61 74 69 6f 6e 0a 61  72 72 69 76 65 20 6f 6e  |tation.arrive on|
0000abc0  20 6d 79 20 64 65 73 6b  2e 20 41 64 64 69 6e 67  | my desk. Adding|
0000abd0  20 61 20 6e 65 77 20 66  6f 72 6d 61 74 20 69 73  | a new format is|
0000abe0  20 61 20 6d 61 74 74 65  72 20 6f 66 20 28 61 29  | a matter of (a)|
0000abf0  20 70 75 74 74 69 6e 67  20 69 6e 20 61 75 74 6f  | putting in auto|
0000ac00  6d 61 74 69 63 0a 72 65  63 6f 67 6e 69 74 69 6f  |matic.recognitio|
0000ac10  6e 20 6f 66 20 74 68 65  20 66 6f 72 6d 61 74 20  |n of the format |
0000ac20  61 74 20 74 68 65 20 73  74 61 72 74 20 6f 66 20  |at the start of |
0000ac30  74 68 65 20 70 72 6f 67  72 61 6d 20 28 62 29 20  |the program (b) |
0000ac40  72 65 61 64 69 6e 67 20  74 68 65 20 73 69 7a 65  |reading the size|
0000ac50  20 6f 66 0a 74 68 65 20  69 6d 61 67 65 20 61 6e  | of.the image an|
0000ac60  64 20 74 68 65 20 63 6f  6c 6f 75 72 20 70 61 6c  |d the colour pal|
0000ac70  65 74 74 65 20 6d 61 70  70 69 6e 67 20 5b 69 6e  |ette mapping [in|
0000ac80  20 74 68 65 20 6e 65 78  74 20 73 65 63 74 69 6f  | the next sectio|
0000ac90  6e 20 6f 66 20 74 68 65  20 70 72 6f 67 72 61 6d  |n of the program|
0000aca0  5d 0a 28 63 29 20 77 72  69 74 69 6e 67 20 61 20  |].(c) writing a |
0000acb0  22 72 65 61 64 20 70 69  78 65 6c 20 72 6f 77 22  |"read pixel row"|
0000acc0  20 65 6c 65 6d 65 6e 74  20 69 6e 73 69 64 65 20  | element inside |
0000acd0  50 52 4f 43 69 70 72 6f  77 20 28 64 29 20 70 72  |PROCiprow (d) pr|
0000ace0  6f 76 69 64 69 6e 67 20  61 6e 20 65 6e 74 72 79  |oviding an entry|
0000acf0  0a 69 6e 20 50 52 4f 43  72 65 77 69 6e 64 2e 20  |.in PROCrewind. |
0000ad00  49 66 20 79 6f 75 20 77  72 69 74 65 20 61 20 6e  |If you write a n|
0000ad10  65 77 20 66 6f 72 6d 61  74 20 69 6e 74 65 72 66  |ew format interf|
0000ad20  61 63 65 2c 20 70 6c 65  61 73 65 20 73 65 6e 64  |ace, please send|
0000ad30  20 69 74 20 74 6f 20 6d  65 20 73 6f 0a 74 68 61  | it to me so.tha|
0000ad40  74 20 69 74 20 77 69 6c  6c 20 62 65 20 69 6e 63  |t it will be inc|
0000ad50  6c 75 64 65 64 20 69 6e  20 6c 61 74 65 72 20 76  |luded in later v|
0000ad60  65 72 73 69 6f 6e 73 2e  20 43 68 61 6e 67 65 46  |ersions. ChangeF|
0000ad70  53 49 20 68 61 73 20 61  6c 72 65 61 64 79 20 67  |SI has already g|
0000ad80  6f 74 20 63 6f 64 65 20  66 6f 72 0a 64 65 61 6c  |ot code for.deal|
0000ad90  69 6e 67 20 77 69 74 68  20 69 6d 61 67 65 73 20  |ing with images |
0000ada0  77 69 74 68 20 31 2c 20  32 2c 20 34 20 61 6e 64  |with 1, 2, 4 and|
0000adb0  20 38 20 62 69 74 73 20  70 65 72 20 70 69 78 65  | 8 bits per pixe|
0000adc0  6c 20 70 61 63 6b 65 64  20 69 6e 74 6f 20 62 79  |l packed into by|
0000add0  74 65 73 20 61 6e 64 20  66 6f 72 0a 69 6d 61 67  |tes and for.imag|
0000ade0  65 73 20 77 69 74 68 20  75 70 20 74 6f 20 38 20  |es with up to 8 |
0000adf0  62 69 74 20 70 6c 61 6e  65 73 2e 20 54 68 65 72  |bit planes. Ther|
0000ae00  65 20 69 73 20 73 75 70  70 6f 72 74 20 63 6f 64  |e is support cod|
0000ae10  65 20 66 6f 72 20 4c 5a  57 20 64 65 63 6f 6d 70  |e for LZW decomp|
0000ae20  72 65 73 73 69 6f 6e 20  61 6e 64 0a 4c 5a 57 20  |ression and.LZW |
0000ae30  64 65 63 6f 64 69 6e 67  2e 0a 0a 41 73 20 61 20  |decoding...As a |
0000ae40  73 70 65 63 69 61 6c 20  66 65 61 74 75 72 65 2c  |special feature,|
0000ae50  20 43 68 61 6e 67 65 46  53 49 20 77 69 6c 6c 20  | ChangeFSI will |
0000ae60  61 6c 73 6f 20 77 72 69  74 65 20 6f 75 74 20 32  |also write out 2|
0000ae70  35 36 20 67 72 65 79 20  6c 65 76 65 6c 20 66 69  |56 grey level fi|
0000ae80  6c 65 73 20 28 61 6c 74  65 72 0a 72 77 74 2c 20  |les (alter.rwt, |
0000ae90  67 77 74 20 61 6e 64 20  62 77 74 20 74 6f 20 67  |gwt and bwt to g|
0000aea0  65 74 20 32 35 36 20 6c  65 76 65 6c 20 63 6f 6c  |et 256 level col|
0000aeb0  6f 75 72 20 73 65 70 61  72 61 74 69 6f 6e 73 29  |our separations)|
0000aec0  20 69 6e 20 41 49 4d 20  66 6f 72 6d 61 74 2e 20  | in AIM format. |
0000aed0  54 68 69 73 20 69 73 0a  66 69 6c 65 20 74 79 70  |This is.file typ|
0000aee0  65 20 34 20 77 69 74 68  20 62 79 74 65 73 20 72  |e 4 with bytes r|
0000aef0  65 70 72 65 73 65 6e 74  69 6e 67 20 74 68 65 20  |epresenting the |
0000af00  67 72 65 79 20 6c 65 76  65 6c 2e 20 55 73 65 20  |grey level. Use |
0000af10  74 68 65 20 3d 20 6f 70  65 72 61 74 69 6f 6e 20  |the = operation |
0000af20  74 6f 0a 72 65 73 74 72  69 63 74 20 74 68 65 20  |to.restrict the |
0000af30  70 69 63 74 75 72 65 20  74 6f 20 32 35 36 78 32  |picture to 256x2|
0000af40  35 36 79 2c 20 6f 74 68  65 72 77 69 73 65 20 69  |56y, otherwise i|
0000af50  74 20 77 69 6c 6c 20 62  65 20 74 68 65 20 73 61  |t will be the sa|
0000af60  6d 65 20 73 69 7a 65 20  61 73 20 74 68 65 0a 69  |me size as the.i|
0000af70  6e 70 75 74 2e 20 53 70  65 63 69 66 79 20 22 61  |nput. Specify "a|
0000af80  69 6d 22 20 61 73 20 74  68 65 20 6d 6f 64 65 20  |im" as the mode |
0000af90  73 74 72 69 6e 67 20 74  6f 20 64 6f 20 74 68 69  |string to do thi|
0000afa0  73 2e 0a 0a 46 6f 72 20  70 6f 72 74 61 62 69 6c  |s...For portabil|
0000afb0  69 74 79 20 74 6f 20 6f  74 68 65 72 20 6d 61 63  |ity to other mac|
0000afc0  68 69 6e 65 73 2c 20 43  68 61 6e 67 65 46 53 49  |hines, ChangeFSI|
0000afd0  20 63 61 6e 20 77 72 69  74 65 20 6f 75 74 20 66  | can write out f|
0000afe0  69 6c 65 73 20 69 6e 20  22 70 62 6d 22 0a 66 6f  |iles in "pbm".fo|
0000aff0  72 6d 61 74 2e 20 54 68  65 72 65 20 61 72 65 20  |rmat. There are |
0000b000  33 20 74 79 70 65 73 20  6f 66 20 66 6f 72 6d 61  |3 types of forma|
0000b010  74 20 22 62 6c 61 63 6b  2f 77 68 69 74 65 22 20  |t "black/white" |
0000b020  28 70 62 6d 29 2c 20 22  67 72 65 79 22 20 28 70  |(pbm), "grey" (p|
0000b030  67 6d 29 20 61 6e 64 0a  22 63 6f 6c 6f 75 72 22  |gm) and."colour"|
0000b040  20 28 70 70 6d 29 20 77  69 74 68 20 70 75 72 65  | (ppm) with pure|
0000b050  20 41 53 43 49 49 20 61  6e 64 20 62 69 6e 61 72  | ASCII and binar|
0000b060  79 20 65 6e 63 6f 64 69  6e 67 73 20 6f 66 20 65  |y encodings of e|
0000b070  61 63 68 3a 0a 0a 41 53  43 49 49 20 20 20 20 20  |ach:..ASCII     |
0000b080  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000b090  20 20 20 20 20 20 20 20  20 20 20 20 20 20 42 69  |              Bi|
0000b0a0  6e 61 72 79 0a 70 31 20  20 20 20 20 20 20 20 22  |nary.p1        "|
0000b0b0  62 6c 61 63 6b 2f 77 68  69 74 65 22 20 28 6c 69  |black/white" (li|
0000b0c0  6b 65 20 6d 6f 64 65 20  31 38 29 20 20 70 34 20  |ke mode 18)  p4 |
0000b0d0  28 62 69 67 20 65 6e 64  69 61 6e 20 62 79 74 65  |(big endian byte|
0000b0e0  73 21 29 0a 70 32 20 20  20 20 20 20 20 20 22 67  |s!).p2        "g|
0000b0f0  72 65 79 22 20 28 6c 69  6b 65 20 6d 6f 64 65 20  |rey" (like mode |
0000b100  32 30 74 29 20 20 20 20  20 20 20 20 70 35 0a 70  |20t)        p5.p|
0000b110  33 20 20 20 20 20 20 20  20 22 74 72 75 65 20 63  |3        "true c|
0000b120  6f 6c 6f 75 72 22 20 20  20 20 20 20 20 20 20 20  |olour"          |
0000b130  20 20 20 20 20 20 20 70  36 0a 0a 46 69 6c 65 73  |       p6..Files|
0000b140  20 63 61 6e 20 62 65 20  72 65 61 64 20 77 69 74  | can be read wit|
0000b150  68 20 4a 65 66 20 50 6f  73 6b 61 6e 7a 65 72 27  |h Jef Poskanzer'|
0000b160  73 20 70 6f 72 74 61 62  6c 65 20 74 6f 6f 6c 6b  |s portable toolk|
0000b170  69 74 20 6f 6e 20 6f 74  68 65 72 20 6d 61 63 68  |it on other mach|
0000b180  69 6e 65 73 2e 20 54 68  65 0a 70 32 20 66 6f 72  |ines. The.p2 for|
0000b190  6d 61 74 20 69 73 20 65  61 73 69 6c 79 20 63 6f  |mat is easily co|
0000b1a0  6e 76 65 72 74 69 62 6c  65 20 62 79 20 70 72 6f  |nvertible by pro|
0000b1b0  67 72 61 6d 6d 65 72 73  3b 20 69 74 20 63 6f 6e  |grammers; it con|
0000b1c0  73 69 73 74 73 20 6f 66  3a 0a 0a 50 32 0a 23 20  |sists of:..P2.# |
0000b1d0  63 6f 6d 6d 65 6e 74 20  6c 69 6e 65 0a 78 73 69  |comment line.xsi|
0000b1e0  7a 65 20 79 73 69 7a 65  0a 6d 61 78 69 6d 75 6d  |ze ysize.maximum|
0000b1f0  5f 76 61 6c 75 65 0a 70  69 78 65 6c 5f 76 61 6c  |_value.pixel_val|
0000b200  75 65 20 3c 77 68 69 74  65 73 70 61 63 65 3e 20  |ue <whitespace> |
0000b210  70 69 78 65 6c 5f 76 61  6c 75 65 0a 0a 77 68 65  |pixel_value..whe|
0000b220  72 65 20 61 6c 6c 20 74  68 65 20 6e 75 6d 62 65  |re all the numbe|
0000b230  72 73 20 61 72 65 20 69  6e 20 64 65 63 69 6d 61  |rs are in decima|
0000b240  6c 20 28 41 53 43 49 49  29 2e 20 30 20 6d 65 61  |l (ASCII). 0 mea|
0000b250  6e 73 20 62 6c 61 63 6b  2c 20 6d 61 78 69 6d 75  |ns black, maximu|
0000b260  6d 5f 76 61 6c 75 65 20  28 3d 0a 31 35 29 20 6d  |m_value (=.15) m|
0000b270  65 61 6e 73 20 77 68 69  74 65 2e 20 54 68 65 20  |eans white. The |
0000b280  70 33 20 66 6f 72 6d 61  74 20 69 73 20 73 69 6d  |p3 format is sim|
0000b290  69 6c 61 72 20 77 69 74  68 20 72 2c 20 67 2c 20  |ilar with r, g, |
0000b2a0  62 20 74 72 69 70 6c 65  73 20 66 6f 72 20 65 61  |b triples for ea|
0000b2b0  63 68 20 70 69 78 65 6c  0a 76 61 6c 75 65 2e 20  |ch pixel.value. |
0000b2c0  54 68 65 20 6e 75 6d 62  65 72 20 6f 66 20 62 69  |The number of bi|
0000b2d0  74 73 20 70 65 72 20 63  6f 6d 70 6f 6e 65 6e 74  |ts per component|
0000b2e0  20 28 64 65 66 61 75 6c  74 20 38 29 20 63 61 6e  | (default 8) can|
0000b2f0  20 62 65 20 73 65 74 20  66 72 6f 6d 20 74 68 65  | be set from the|
0000b300  20 63 6f 6d 6d 61 6e 64  0a 6c 69 6e 65 20 77 69  | command.line wi|
0000b310  74 68 2c 20 66 6f 72 20  65 78 61 6d 70 6c 65 2c  |th, for example,|
0000b320  20 22 70 33 2c 34 22 20  66 6f 72 20 34 20 62 69  | "p3,4" for 4 bi|
0000b330  74 73 20 70 65 72 20 63  6f 6d 70 6f 6e 65 6e 74  |ts per component|
0000b340  2e 0a 0a 41 73 20 61 20  73 70 65 63 69 61 6c 20  |...As a special |
0000b350  70 61 63 6b 65 64 20 6f  75 74 70 75 74 20 66 6f  |packed output fo|
0000b360  72 6d 61 74 2c 20 22 50  31 35 22 20 68 61 73 20  |rmat, "P15" has |
0000b370  62 65 65 6e 20 69 6d 70  6c 65 6d 65 6e 74 65 64  |been implemented|
0000b380  2e 20 4f 75 74 70 75 74  20 69 73 20 62 69 6e 61  |. Output is bina|
0000b390  72 79 0a 70 69 78 65 6c  20 76 61 6c 75 65 73 2c  |ry.pixel values,|
0000b3a0  20 35 20 62 69 74 73 20  70 65 72 20 63 6f 6d 70  | 5 bits per comp|
0000b3b0  6f 6e 65 6e 74 2c 20 6c  69 74 74 6c 65 20 65 6e  |onent, little en|
0000b3c0  64 69 61 6e 20 52 47 42  20 6f 72 64 65 72 20 70  |dian RGB order p|
0000b3d0  61 63 6b 65 64 20 69 6e  74 6f 20 31 36 0a 62 69  |acked into 16.bi|
0000b3e0  74 73 2e 20 48 65 61 64  65 72 20 69 6e 66 6f 72  |ts. Header infor|
0000b3f0  6d 61 74 69 6f 6e 20 61  73 20 74 68 65 20 6f 74  |mation as the ot|
0000b400  68 65 72 20 70 20 66 6f  72 6d 61 74 73 2e 0a 0a  |her p formats...|
0000b410  46 69 6c 65 73 20 63 61  6e 20 62 65 20 77 72 69  |Files can be wri|
0000b420  74 74 65 6e 20 61 73 20  6e 65 77 20 52 49 53 43  |tten as new RISC|
0000b430  20 4f 53 20 73 70 72 69  74 65 73 20 75 73 69 6e  | OS sprites usin|
0000b440  67 20 53 31 36 20 61 6e  64 20 53 33 32 20 61 73  |g S16 and S32 as|
0000b450  20 74 68 65 20 66 6f 72  6d 61 74 73 2e 0a 54 68  | the formats..Th|
0000b460  65 20 78 20 61 6e 64 20  79 20 70 69 78 65 6c 73  |e x and y pixels|
0000b470  20 70 65 72 20 69 6e 63  68 20 61 72 65 20 67 69  | per inch are gi|
0000b480  76 65 6e 20 61 73 20 61  20 63 6f 6d 6d 61 20 73  |ven as a comma s|
0000b490  65 70 65 72 61 74 65 64  20 6c 69 73 74 20 2d 20  |eperated list - |
0000b4a0  61 20 31 36 20 62 69 74  20 6d 6f 64 65 0a 31 32  |a 16 bit mode.12|
0000b4b0  20 65 71 75 69 76 61 6c  65 6e 74 20 69 73 20 53  | equivalent is S|
0000b4c0  31 36 2c 39 30 2c 34 35  20 77 68 69 6c 65 20 61  |16,90,45 while a|
0000b4d0  20 33 32 20 62 69 74 20  6d 6f 64 65 20 32 38 20  | 32 bit mode 28 |
0000b4e0  65 71 75 69 76 61 6c 65  6e 74 20 69 73 20 53 33  |equivalent is S3|
0000b4f0  32 2c 39 30 2c 39 30 2e  0a 0a 43 68 61 6e 67 65  |2,90,90...Change|
0000b500  46 53 49 20 63 61 6e 20  77 72 69 74 65 20 49 72  |FSI can write Ir|
0000b510  6c 61 6d 20 66 6f 72 6d  61 74 20 69 6d 61 67 65  |lam format image|
0000b520  73 20 28 73 6f 6d 65 77  68 61 74 20 73 6c 6f 77  |s (somewhat slow|
0000b530  65 72 20 74 68 61 6e 20  70 36 20 69 6d 61 67 65  |er than p6 image|
0000b540  73 2e 2e 2e 29 2e 0a 0a  20 20 20 20 20 20 20 20  |s...)...        |
0000b550  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000b560  20 20 20 20 20 20 4f 75  74 70 75 74 20 73 75 6d  |      Output sum|
0000b570  6d 61 72 79 0a 20 20 20  20 20 20 20 20 20 20 20  |mary.           |
0000b580  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000b590  20 20 20 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |   =============|
0000b5a0  3d 0a 0a 23 20 63 6f 6c  73 20 20 20 43 6f 6c 6f  |=..# cols   Colo|
0000b5b0  75 72 20 43 75 62 65 20  20 42 69 74 73 20 75 73  |ur Cube  Bits us|
0000b5c0  65 64 20 20 43 6f 6e 73  69 73 74 65 6e 74 20 48  |ed  Consistent H|
0000b5d0  75 65 20 20 44 65 73 6b  74 6f 70 20 50 61 6c 65  |ue  Desktop Pale|
0000b5e0  74 74 65 20 20 4d 6f 64  65 26 53 75 66 66 69 78  |tte  Mode&Suffix|
0000b5f0  0a 0a 32 5e 32 34 20 20  20 20 20 20 20 20 20 20  |..2^24          |
0000b600  20 20 59 20 20 20 20 20  20 20 20 20 32 34 20 20  |  Y         24  |
0000b610  20 20 20 20 20 20 20 20  20 59 20 20 20 20 20 20  |         Y      |
0000b620  20 20 20 20 20 20 20 2d  20 20 20 20 20 20 20 20  |       -        |
0000b630  20 20 20 20 53 33 32 2c  20 70 33 20 6f 72 20 70  |    S32, p3 or p|
0000b640  36 20 6f 72 20 49 72 6c  61 6d 0a 32 5e 32 31 20  |6 or Irlam.2^21 |
0000b650  20 20 20 20 20 20 20 20  20 20 20 59 20 20 20 20  |           Y    |
0000b660  20 20 20 20 20 32 31 20  20 20 20 20 20 20 20 20  |     21         |
0000b670  20 20 59 20 20 20 20 20  20 20 20 20 20 20 20 20  |  Y             |
0000b680  2d 20 20 20 20 20 20 20  20 20 20 20 20 70 36 2c  |-            p6,|
0000b690  37 0a 32 5e 31 38 20 20  20 20 20 20 20 20 20 20  |7.2^18          |
0000b6a0  20 20 59 20 20 20 20 20  20 20 20 20 31 38 20 20  |  Y         18  |
0000b6b0  20 20 20 20 20 20 20 20  20 59 20 20 20 20 20 20  |         Y      |
0000b6c0  20 20 20 20 20 20 20 2d  20 20 20 20 20 20 20 20  |       -        |
0000b6d0  20 20 20 20 70 36 2c 36  0a 32 5e 31 35 20 20 20  |    p6,6.2^15   |
0000b6e0  20 20 20 20 20 20 20 20  20 59 20 20 20 20 20 20  |         Y      |
0000b6f0  20 20 20 31 35 20 20 20  20 20 20 20 20 20 20 20  |   15           |
0000b700  59 20 20 20 20 20 20 20  20 20 20 20 20 20 2d 20  |Y             - |
0000b710  20 20 20 20 20 20 20 20  20 20 20 53 31 36 2c 20  |           S16, |
0000b720  70 31 35 20 6f 72 20 70  36 2c 35 0a 32 5e 31 32  |p15 or p6,5.2^12|
0000b730  20 20 20 20 20 20 20 20  20 20 20 20 59 20 20 20  |            Y   |
0000b740  20 20 20 20 20 20 31 32  20 20 20 20 20 20 20 20  |      12        |
0000b750  20 20 20 59 20 20 20 20  20 20 20 20 20 20 20 20  |   Y            |
0000b760  20 2d 20 20 20 20 20 20  20 20 20 20 20 20 70 36  | -            p6|
0000b770  2c 34 0a 35 31 32 20 20  20 20 20 20 20 20 20 20  |,4.512          |
0000b780  20 20 20 59 20 20 20 20  20 20 20 20 20 20 39 20  |   Y          9 |
0000b790  20 20 20 20 20 20 20 20  20 20 59 20 20 20 20 20  |          Y     |
0000b7a0  20 20 20 20 20 20 20 20  2d 20 20 20 20 20 20 20  |        -       |
0000b7b0  20 20 20 20 20 70 36 2c  33 0a 32 35 36 20 67 72  |     p6,3.256 gr|
0000b7c0  65 79 20 20 20 20 20 20  20 20 6e 20 20 20 20 20  |ey        n     |
0000b7d0  20 20 20 20 20 38 20 20  20 20 20 20 20 20 20 20  |     8          |
0000b7e0  20 59 20 20 20 20 20 20  20 20 20 20 20 20 20 2d  | Y             -|
0000b7f0  20 20 20 20 20 20 20 20  20 20 20 20 61 69 6d 0a  |            aim.|
0000b800  32 35 36 20 67 72 65 79  20 20 20 20 20 20 20 20  |256 grey        |
0000b810  6e 20 20 20 20 20 20 20  20 20 20 38 20 20 20 20  |n          8    |
0000b820  20 20 20 20 20 20 20 59  20 20 20 20 20 20 20 20  |       Y        |
0000b830  20 20 20 20 20 2d 20 20  20 20 20 20 20 20 20 20  |     -          |
0000b840  20 20 32 38 64 0a 32 35  36 20 20 20 20 20 20 20  |  28d.256       |
0000b850  20 20 20 20 20 20 59 20  20 20 20 20 20 20 20 20  |      Y         |
0000b860  20 38 20 20 20 20 20 20  20 20 20 20 20 59 20 20  | 8           Y  |
0000b870  20 20 20 20 20 20 20 20  20 20 20 59 20 20 20 20  |           Y    |
0000b880  20 20 20 20 20 20 20 20  32 38 0a 32 35 36 20 20  |        28.256  |
0000b890  20 20 20 20 20 20 20 20  20 20 20 59 20 20 20 20  |           Y    |
0000b8a0  20 20 20 20 20 20 38 20  20 20 20 20 20 20 20 20  |      8         |
0000b8b0  20 20 59 20 20 20 20 20  20 20 20 20 20 20 20 20  |  Y             |
0000b8c0  59 20 20 20 20 20 20 20  20 20 20 20 20 32 38 72  |Y            28r|
0000b8d0  0a 31 36 20 67 72 65 79  20 20 20 20 20 20 20 20  |.16 grey        |
0000b8e0  20 6e 20 20 20 20 20 20  20 20 20 20 34 20 20 20  | n          4   |
0000b8f0  20 20 20 20 20 20 20 20  59 20 20 20 20 20 20 20  |        Y       |
0000b900  20 20 20 20 20 20 6e 20  20 20 20 20 20 20 20 20  |      n         |
0000b910  20 20 20 32 37 74 0a 31  36 20 67 72 65 79 20 20  |   27t.16 grey  |
0000b920  20 20 20 20 20 20 20 6e  20 20 20 20 20 20 20 20  |       n        |
0000b930  20 20 34 20 20 20 20 20  20 20 20 20 20 20 59 20  |  4           Y |
0000b940  20 20 20 20 20 20 20 20  20 20 20 20 6e 20 20 20  |            n   |
0000b950  20 20 20 20 20 20 20 20  20 70 32 20 6f 72 20 70  |         p2 or p|
0000b960  35 0a 38 20 67 72 65 79  20 20 20 20 20 20 20 20  |5.8 grey        |
0000b970  20 20 6e 20 20 20 20 20  20 20 20 20 20 33 20 20  |  n          3  |
0000b980  20 20 20 20 20 20 20 20  20 59 20 20 20 20 20 20  |         Y      |
0000b990  20 20 20 20 20 20 20 59  20 20 20 20 20 20 20 20  |       Y        |
0000b9a0  20 20 20 20 32 37 0a 31  36 20 20 20 20 20 20 20  |    27.16       |
0000b9b0  20 20 20 20 20 20 20 3f  20 20 20 20 20 20 20 20  |       ?        |
0000b9c0  20 20 34 20 20 20 20 20  20 20 20 20 20 20 3f 20  |  4           ? |
0000b9d0  20 20 20 20 20 20 20 20  20 20 20 20 59 20 20 20  |            Y   |
0000b9e0  20 20 20 20 20 20 20 20  20 32 37 72 0a 31 36 20  |         27r.16 |
0000b9f0  20 20 20 20 20 20 20 20  20 20 20 20 20 59 20 20  |             Y  |
0000ba00  20 20 20 20 20 20 20 20  33 20 20 20 20 20 20 20  |        3       |
0000ba10  20 20 20 20 59 20 20 20  20 20 20 20 20 20 20 20  |    Y           |
0000ba20  63 61 6e 20 62 65 20 20  20 20 20 20 20 20 20 32  |can be         2|
0000ba30  37 64 0a 34 20 67 72 65  79 20 20 20 20 20 20 20  |7d.4 grey       |
0000ba40  20 20 20 6e 20 20 20 20  20 20 20 20 20 20 32 20  |   n          2 |
0000ba50  20 20 20 20 20 20 20 20  20 20 59 20 20 20 20 20  |          Y     |
0000ba60  20 20 20 20 20 20 20 20  59 20 20 20 20 20 20 20  |        Y       |
0000ba70  20 20 20 20 20 32 36 0a  34 20 20 20 20 20 20 20  |     26.4       |
0000ba80  20 20 20 20 20 20 20 20  6e 20 20 20 20 20 20 20  |        n       |
0000ba90  20 20 20 32 20 20 20 20  20 20 20 20 20 20 20 6e  |   2           n|
0000baa0  20 20 20 20 20 20 20 20  20 20 20 20 20 6e 20 20  |             n  |
0000bab0  20 20 20 20 20 20 20 20  20 20 32 36 63 0a 34 20  |          26c.4 |
0000bac0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 6e 20  |              n |
0000bad0  20 20 20 20 20 20 20 20  20 32 20 20 20 20 20 20  |         2      |
0000bae0  20 20 20 20 20 6e 20 20  20 20 20 20 20 20 20 20  |     n          |
0000baf0  20 20 20 6e 20 20 20 20  20 20 20 20 20 20 20 20  |   n            |
0000bb00  32 36 72 0a 32 20 28 62  6c 61 63 6b 2f 77 68 69  |26r.2 (black/whi|
0000bb10  74 65 29 20 6e 20 20 20  20 20 20 20 20 20 20 31  |te) n          1|
0000bb20  20 20 20 20 20 20 20 20  20 20 20 59 20 20 20 20  |           Y    |
0000bb30  20 20 20 20 20 20 20 20  20 59 20 20 20 20 20 20  |         Y      |
0000bb40  20 20 20 20 20 20 32 35  0a 32 20 28 62 6c 61 63  |      25.2 (blac|
0000bb50  6b 2f 77 68 69 74 65 29  20 6e 20 20 20 20 20 20  |k/white) n      |
0000bb60  20 20 20 20 31 20 20 20  20 20 20 20 20 20 20 20  |    1           |
0000bb70  59 20 20 20 20 20 20 20  20 20 20 20 20 20 59 20  |Y             Y |
0000bb80  20 20 20 20 20 20 20 20  20 20 20 32 35 63 2f 64  |           25c/d|
0000bb90  2f 74 0a 32 20 28 62 6c  61 63 6b 2f 77 68 69 74  |/t.2 (black/whit|
0000bba0  65 29 20 6e 20 20 20 20  20 20 20 20 20 20 31 20  |e) n          1 |
0000bbb0  20 20 20 20 20 20 20 20  20 20 59 20 20 20 20 20  |          Y     |
0000bbc0  20 20 20 20 20 20 20 20  59 20 20 20 20 20 20 20  |        Y       |
0000bbd0  20 20 20 20 20 70 31 20  6f 72 20 70 34 0a 0a 0a  |     p1 or p4...|
0000bbe0  43 68 61 6e 67 65 46 53  49 20 63 61 6e 20 62 65  |ChangeFSI can be|
0000bbf0  20 75 73 65 64 20 66 72  6f 6d 20 62 6f 74 68 20  | used from both |
0000bc00  74 68 65 20 64 65 73 6b  74 6f 70 20 66 72 6f 6e  |the desktop fron|
0000bc10  74 20 65 6e 64 20 61 6e  64 20 66 72 6f 6d 20 74  |t end and from t|
0000bc20  68 65 20 63 6f 6d 6d 61  6e 64 0a 6c 69 6e 65 2e  |he command.line.|
0000bc30  20 49 74 20 63 61 6e 20  61 6c 73 6f 20 62 65 20  | It can also be |
0000bc40  75 73 65 64 20 61 73 20  61 20 42 41 53 49 43 20  |used as a BASIC |
0000bc50  6c 69 62 72 61 72 79 20  66 75 6e 63 74 69 6f 6e  |library function|
0000bc60  3a 0a 4c 49 42 52 41 52  59 22 3c 43 68 61 6e 67  |:.LIBRARY"<Chang|
0000bc70  65 46 53 49 24 44 69 72  3e 2e 43 68 61 6e 67 65  |eFSI$Dir>.Change|
0000bc80  46 53 49 22 20 67 69 76  65 73 20 61 20 6e 65 77  |FSI" gives a new|
0000bc90  20 66 75 6e 63 74 69 6f  6e 2c 20 46 4e 43 68 61  | function, FNCha|
0000bca0  6e 67 65 46 53 49 20 74  6f 20 74 68 65 0a 42 41  |ngeFSI to the.BA|
0000bcb0  53 49 43 20 70 72 6f 67  72 61 6d 6d 65 72 2e 20  |SIC programmer. |
0000bcc0  54 68 69 73 20 66 75 6e  63 74 69 6f 6e 20 74 61  |This function ta|
0000bcd0  6b 65 73 3a 0a 20 20 41  24 3a 20 61 20 63 6f 6d  |kes:.  A$: a com|
0000bce0  6d 61 6e 64 20 6c 69 6e  65 20 61 72 67 75 6d 65  |mand line argume|
0000bcf0  6e 74 0a 20 20 73 70 72  69 74 65 61 72 65 61 25  |nt.  spritearea%|
0000bd00  3a 20 61 6e 20 61 64 64  72 65 73 73 20 6f 72 20  |: an address or |
0000bd10  2d 31 20 66 6f 72 20 74  68 65 20 73 70 72 69 74  |-1 for the sprit|
0000bd20  65 61 72 65 61 20 62 75  69 6c 74 20 62 79 20 43  |earea built by C|
0000bd30  68 61 6e 67 65 46 53 49  0a 20 20 77 6f 72 6b 73  |hangeFSI.  works|
0000bd40  70 61 63 65 25 3a 20 61  6e 20 61 64 64 72 65 73  |pace%: an addres|
0000bd50  73 20 6f 72 20 2d 31 20  66 6f 72 20 43 68 61 6e  |s or -1 for Chan|
0000bd60  67 65 46 53 49 27 73 20  6f 74 68 65 72 20 77 6f  |geFSI's other wo|
0000bd70  72 6b 73 70 61 63 65 0a  20 20 77 6f 72 6b 6c 69  |rkspace.  workli|
0000bd80  6d 69 74 25 3a 20 61 6e  20 61 64 64 72 65 73 73  |mit%: an address|
0000bd90  20 28 75 6e 75 73 65 64  20 69 66 20 77 6f 72 6b  | (unused if work|
0000bda0  73 70 61 63 65 25 3c 30  29 0a 20 20 66 61 73 74  |space%<0).  fast|
0000bdb0  25 3a 20 54 52 55 45 20  66 6f 72 20 4d 4f 44 45  |%: TRUE for MODE|
0000bdc0  20 30 20 73 65 6c 65 63  74 69 6f 6e 0a 49 74 20  | 0 selection.It |
0000bdd0  70 72 6f 64 75 63 65 73  20 61 6e 20 65 72 72 6f  |produces an erro|
0000bde0  72 20 28 74 6f 20 77 68  61 74 65 76 65 72 20 65  |r (to whatever e|
0000bdf0  72 72 6f 72 20 68 61 6e  64 6c 65 72 20 69 73 20  |rror handler is |
0000be00  70 72 65 73 65 6e 74 29  20 69 66 20 69 74 20 66  |present) if it f|
0000be10  61 69 6c 73 2e 20 49 66  0a 73 70 72 69 74 65 61  |ails. If.spritea|
0000be20  72 65 61 25 20 69 73 20  3c 30 20 69 74 20 77 69  |rea% is <0 it wi|
0000be30  6c 6c 20 73 61 76 65 20  74 68 65 20 73 70 72 69  |ll save the spri|
0000be40  74 65 20 74 6f 20 74 68  65 20 66 69 6c 65 20 67  |te to the file g|
0000be50  69 76 65 6e 20 69 6e 20  74 68 65 20 63 6f 6d 6d  |iven in the comm|
0000be60  61 6e 64 0a 73 74 72 69  6e 67 2c 20 6f 74 68 65  |and.string, othe|
0000be70  72 77 69 73 65 20 69 74  20 77 6f 6e 27 74 2e 20  |rwise it won't. |
0000be80  54 68 65 20 66 75 6e 63  74 69 6f 6e 20 46 4e 43  |The function FNC|
0000be90  68 61 6e 67 65 46 53 49  56 65 72 73 69 6f 6e 20  |hangeFSIVersion |
0000bea0  72 65 74 75 72 6e 73 20  74 68 65 20 76 65 72 73  |returns the vers|
0000beb0  69 6f 6e 0a 73 74 72 69  6e 67 20 6f 66 20 74 68  |ion.string of th|
0000bec0  65 20 6c 69 62 72 61 72  79 20 28 69 6e 20 74 68  |e library (in th|
0000bed0  65 20 69 6e 66 6f 20 62  6f 78 20 6f 66 20 74 68  |e info box of th|
0000bee0  65 20 64 65 73 6b 74 6f  70 20 61 70 70 6c 69 63  |e desktop applic|
0000bef0  61 74 69 6f 6e 29 2e 0a  0a 20 20 20 20 20 20 20  |ation)...       |
0000bf00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000bf10  20 20 20 20 43 6f 6d 6d  61 6e 64 20 53 75 6d 6d  |    Command Summ|
0000bf20  61 72 79 0a 20 20 20 20  20 20 20 20 20 20 20 20  |ary.            |
0000bf30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3d  |               =|
0000bf40  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 0a 0a  |==============..|
0000bf50  2d 69 6e 66 6f 20 20 20  20 20 67 69 76 65 20 64  |-info     give d|
0000bf60  65 74 61 69 6c 73 0a 0a  2d 68 69 73 74 20 20 20  |etails..-hist   |
0000bf70  20 20 64 6f 6e 27 74 20  70 72 6f 63 65 73 73 20  |  don't process |
0000bf80  69 6d 61 67 65 2c 20 62  75 74 20 64 69 73 70 6c  |image, but displ|
0000bf90  61 79 20 68 69 73 74 6f  67 72 61 6d 20 6f 66 20  |ay histogram of |
0000bfa0  69 74 20 69 6e 73 74 65  61 64 0a 0a 2d 68 66 6c  |it instead..-hfl|
0000bfb0  69 70 20 20 20 20 68 6f  72 69 7a 6f 6e 74 61 6c  |ip    horizontal|
0000bfc0  6c 79 20 66 6c 69 70 20  74 68 65 20 69 6d 61 67  |ly flip the imag|
0000bfd0  65 0a 2d 76 66 6c 69 70  20 20 20 20 76 65 72 74  |e.-vflip    vert|
0000bfe0  69 63 61 6c 6c 79 20 66  6c 69 70 20 74 68 65 20  |ically flip the |
0000bff0  69 6d 61 67 65 0a 2d 72  6f 74 61 74 65 20 20 20  |image.-rotate   |
0000c000  72 6f 74 61 74 65 20 74  68 65 20 69 6d 61 67 65  |rotate the image|
0000c010  20 62 79 20 2b 39 30 20  64 65 67 72 65 65 73 20  | by +90 degrees |
0000c020  28 69 2e 65 2e 20 61 6e  74 69 2d 63 6c 6f 63 6b  |(i.e. anti-clock|
0000c030  77 69 73 65 29 0a 2d 72  6f 74 61 74 65 2d 20 20  |wise).-rotate-  |
0000c040  72 6f 74 61 74 65 20 74  68 65 20 69 6d 61 67 65  |rotate the image|
0000c050  20 62 79 20 2d 39 30 20  64 65 67 72 65 65 73 20  | by -90 degrees |
0000c060  28 69 2e 65 2e 20 63 6c  6f 63 6b 77 69 73 65 29  |(i.e. clockwise)|
0000c070  0a 2d 6d 61 78 20 20 20  20 20 20 73 65 74 20 74  |.-max      set t|
0000c080  68 65 20 6d 61 78 69 6d  75 6d 20 73 69 7a 65 20  |he maximum size |
0000c090  6f 66 20 74 68 65 20 69  6d 61 67 65 20 62 65 66  |of the image bef|
0000c0a0  6f 72 65 20 64 69 73 63  20 69 73 20 75 73 65 64  |ore disc is used|
0000c0b0  0a 0a 2d 6e 6f 73 63 61  6c 65 20 20 64 69 73 61  |..-noscale  disa|
0000c0c0  62 6c 65 20 61 75 74 6f  6d 61 74 69 63 20 70 69  |ble automatic pi|
0000c0d0  78 65 6c 20 73 69 7a 65  20 63 6f 72 72 65 63 74  |xel size correct|
0000c0e0  69 6f 6e 0a 2d 6e 6f 73  69 7a 65 20 20 20 64 69  |ion.-nosize   di|
0000c0f0  73 61 62 6c 65 20 61 75  74 6f 6d 61 74 69 63 20  |sable automatic |
0000c100  70 69 78 65 6c 20 73 69  7a 65 20 63 6f 72 72 65  |pixel size corre|
0000c110  63 74 69 6f 6e 20 66 6f  72 20 69 6e 70 75 74 20  |ction for input |
0000c120  70 69 78 65 6c 73 20 6f  6e 6c 79 0a 2d 6e 6f 64  |pixels only.-nod|
0000c130  69 74 68 65 72 20 64 69  73 61 62 6c 65 20 64 69  |ither disable di|
0000c140  74 68 65 72 69 6e 67 0a  2d 6e 6f 6d 6f 64 65 20  |thering.-nomode |
0000c150  20 20 64 6f 6e 27 74 20  63 68 61 6e 67 65 20 74  |  don't change t|
0000c160  6f 20 6d 6f 64 65 20 30  20 77 68 69 6c 65 20 70  |o mode 0 while p|
0000c170  72 6f 63 65 73 73 69 6e  67 20 74 68 65 20 70 69  |rocessing the pi|
0000c180  63 74 75 72 65 0a 2d 69  6e 76 65 72 74 20 20 20  |cture.-invert   |
0000c190  69 6e 76 65 72 74 20 63  6f 6c 6f 75 72 20 72 61  |invert colour ra|
0000c1a0  6e 67 65 20 6f 66 20 69  6d 61 67 65 0a 0a 2d 72  |nge of image..-r|
0000c1b0  61 6e 67 65 20 20 20 20  65 78 70 61 6e 64 20 69  |ange    expand i|
0000c1c0  6e 70 75 74 27 73 20 64  79 6e 61 6d 69 63 20 72  |nput's dynamic r|
0000c1d0  61 6e 67 65 20 74 6f 20  66 75 6c 6c 20 73 63 61  |ange to full sca|
0000c1e0  6c 65 0a 2d 65 71 75 61  6c 20 20 20 20 68 69 73  |le.-equal    his|
0000c1f0  74 6f 67 72 61 6d 20 65  71 75 61 6c 69 73 61 74  |togram equalisat|
0000c200  69 6f 6e 0a 2d 73 68 61  72 70 65 6e 20 20 64 69  |ion.-sharpen  di|
0000c210  67 69 74 61 6c 6c 79 20  73 68 61 72 70 65 6e 20  |gitally sharpen |
0000c220  74 68 65 20 70 69 63 74  75 72 65 0a 0a 2d 67 61  |the picture..-ga|
0000c230  6d 6d 61 20 20 20 20 73  65 74 20 67 61 6d 6d 61  |mma    set gamma|
0000c240  20 63 6f 72 72 65 63 74  69 6f 6e 0a 2d 62 6c 61  | correction.-bla|
0000c250  63 6b 20 20 20 20 63 6f  72 72 65 63 74 20 66 6f  |ck    correct fo|
0000c260  72 20 62 6c 61 63 6b 20  69 6e 6b 20 73 70 6f 74  |r black ink spot|
0000c270  20 73 69 7a 65 0a 2d 72  65 64 20 20 20 20 20 20  | size.-red      |
0000c280  63 68 61 6e 67 65 20 72  65 64 20 77 65 69 67 68  |change red weigh|
0000c290  74 20 66 6f 72 20 64 65  72 69 76 69 6e 67 20 6d  |t for deriving m|
0000c2a0  6f 6e 6f 63 68 72 6f 6d  65 20 6c 75 6d 69 6e 61  |onochrome lumina|
0000c2b0  6e 63 65 0a 2d 67 72 65  65 6e 20 20 20 20 63 68  |nce.-green    ch|
0000c2c0  61 6e 67 65 20 67 72 65  65 6e 20 77 65 69 67 68  |ange green weigh|
0000c2d0  74 20 66 6f 72 20 64 65  72 69 76 69 6e 67 20 6d  |t for deriving m|
0000c2e0  6f 6e 6f 63 68 72 6f 6d  65 20 6c 75 6d 69 6e 61  |onochrome lumina|
0000c2f0  6e 63 65 0a 2d 62 6c 75  65 20 20 20 20 20 63 68  |nce.-blue     ch|
0000c300  61 6e 67 65 20 62 6c 75  65 20 77 65 69 67 68 74  |ange blue weight|
0000c310  20 66 6f 72 20 64 65 72  69 76 69 6e 67 20 6d 6f  | for deriving mo|
0000c320  6e 6f 63 68 72 6f 6d 65  20 6c 75 6d 69 6e 61 6e  |nochrome luminan|
0000c330  63 65 0a 0a 2d 62 72 69  67 68 74 65 6e 20 68 6f  |ce..-brighten ho|
0000c340  72 72 65 6e 64 6f 75 73  20 68 61 63 6b 20 74 6f  |rrendous hack to|
0000c350  20 73 6c 69 67 68 74 6c  79 20 62 72 69 67 68 74  | slightly bright|
0000c360  65 6e 20 69 6d 61 67 65  73 3a 20 6d 61 79 20 63  |en images: may c|
0000c370  6f 6e 76 65 72 74 20 68  75 65 73 0a 20 20 20 20  |onvert hues.    |
0000c380  20 20 20 20 20 20 63 6c  6f 73 65 20 74 6f 20 77  |      close to w|
0000c390  68 69 74 65 20 74 6f 20  77 68 69 74 65 2e 20 28  |hite to white. (|
0000c3a0  49 74 20 63 61 75 73 65  73 20 74 68 65 20 6f 75  |It causes the ou|
0000c3b0  74 70 75 74 20 72 61 6e  67 65 20 30 2e 2e 31 35  |tput range 0..15|
0000c3c0  20 74 6f 0a 20 20 20 20  20 20 20 20 20 20 62 65  | to.          be|
0000c3d0  20 63 6f 6e 73 69 64 65  72 65 64 20 61 73 20 30  | considered as 0|
0000c3e0  2e 2e 28 31 35 2f 31 36  29 20 69 6e 73 74 65 61  |..(15/16) instea|
0000c3f0  64 20 6f 66 20 30 2e 2e  28 31 35 2f 31 35 29 29  |d of 0..(15/15))|
0000c400  2e 0a 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |...             |
0000c410  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4d 6f  |              Mo|
0000c420  64 65 20 53 75 66 66 69  78 65 73 0a 20 20 20 20  |de Suffixes.    |
0000c430  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000c440  20 20 20 20 20 20 20 3d  3d 3d 3d 3d 3d 3d 3d 3d  |       =========|
0000c450  3d 3d 3d 3d 0a 0a 63 0a  20 20 31 20 62 69 74 20  |====..c.  1 bit |
0000c460  6d 6f 64 65 73 3a 20 75  73 65 20 63 6c 75 73 74  |modes: use clust|
0000c470  65 72 65 64 20 64 69 74  68 65 72 69 6e 67 20 77  |ered dithering w|
0000c480  69 74 68 20 34 78 34 20  63 65 6c 6c 0a 20 20 32  |ith 4x4 cell.  2|
0000c490  20 62 69 74 20 6d 6f 64  65 73 3a 20 75 73 65 20  | bit modes: use |
0000c4a0  74 68 65 20 66 6f 75 72  20 63 6f 6c 6f 75 72 73  |the four colours|
0000c4b0  20 22 62 6c 61 63 6b 22  2c 20 22 63 79 61 6e 22  | "black", "cyan"|
0000c4c0  2c 20 22 6d 61 67 65 6e  74 61 22 20 61 6e 64 20  |, "magenta" and |
0000c4d0  22 79 65 6c 6c 6f 77 22  0a 64 0a 20 20 31 20 62  |"yellow".d.  1 b|
0000c4e0  69 74 20 6d 6f 64 65 73  3a 20 75 73 65 20 63 6c  |it modes: use cl|
0000c4f0  75 73 74 65 72 65 64 20  64 69 74 68 65 72 69 6e  |ustered ditherin|
0000c500  67 20 77 69 74 68 20 32  78 32 20 63 65 6c 6c 0a  |g with 2x2 cell.|
0000c510  20 20 34 20 62 69 74 20  6d 6f 64 65 73 3a 20 75  |  4 bit modes: u|
0000c520  73 65 20 31 20 62 69 74  20 72 65 64 2c 20 31 20  |se 1 bit red, 1 |
0000c530  62 69 74 20 67 72 65 65  6e 2c 20 31 20 62 69 74  |bit green, 1 bit|
0000c540  20 62 6c 75 65 0a 20 20  38 20 62 69 74 20 6d 6f  | blue.  8 bit mo|
0000c550  64 65 73 3a 20 75 73 65  20 32 35 36 20 6c 65 76  |des: use 256 lev|
0000c560  65 6c 20 67 72 65 79 20  73 63 61 6c 65 0a 74 0a  |el grey scale.t.|
0000c570  20 20 31 20 62 69 74 20  6d 6f 64 65 73 3a 20 75  |  1 bit modes: u|
0000c580  73 65 20 63 6c 75 73 74  65 72 65 64 20 64 69 74  |se clustered dit|
0000c590  68 65 72 69 6e 67 20 77  69 74 68 20 33 78 33 20  |hering with 3x3 |
0000c5a0  63 65 6c 6c 0a 20 20 34  20 62 69 74 20 6d 6f 64  |cell.  4 bit mod|
0000c5b0  65 73 3a 20 31 36 20 6c  65 76 65 6c 20 67 72 65  |es: 16 level gre|
0000c5c0  79 20 73 63 61 6c 65 0a  72 0a 20 20 32 20 62 69  |y scale.r.  2 bi|
0000c5d0  74 20 6d 6f 64 65 73 3a  20 52 6f 67 65 72 20 57  |t modes: Roger W|
0000c5e0  69 6c 73 6f 6e 27 73 20  28 6d 65 29 20 63 6f 6c  |ilson's (me) col|
0000c5f0  6f 75 72 20 6d 61 74 63  68 69 6e 67 20 61 6c 67  |our matching alg|
0000c600  6f 72 69 74 68 6d 0a 20  20 34 20 62 69 74 20 6d  |orithm.  4 bit m|
0000c610  6f 64 65 73 3a 20 52 6f  67 65 72 20 57 69 6c 73  |odes: Roger Wils|
0000c620  6f 6e 27 73 20 28 6d 65  29 20 63 6f 6c 6f 75 72  |on's (me) colour|
0000c630  20 6d 61 74 63 68 69 6e  67 20 61 6c 67 6f 72 69  | matching algori|
0000c640  74 68 6d 0a 20 20 38 20  62 69 74 20 6d 6f 64 65  |thm.  8 bit mode|
0000c650  73 3a 20 52 6f 67 65 72  20 57 69 6c 73 6f 6e 27  |s: Roger Wilson'|
0000c660  73 20 28 6d 65 29 20 63  6f 6c 6f 75 72 20 6d 61  |s (me) colour ma|
0000c670  74 63 68 69 6e 67 20 61  6c 67 6f 72 69 74 68 6d  |tching algorithm|
0000c680  0a 2d 6e 6f 20 73 75 66  66 69 78 2d 0a 20 20 31  |.-no suffix-.  1|
0000c690  20 62 69 74 20 6d 6f 64  65 73 3a 20 62 2f 77 20  | bit modes: b/w |
0000c6a0  64 69 73 70 65 72 73 65  64 20 64 6f 74 20 64 69  |dispersed dot di|
0000c6b0  74 68 65 72 69 6e 67 0a  20 20 32 20 62 69 74 20  |thering.  2 bit |
0000c6c0  6d 6f 64 65 73 3a 20 34  20 6c 65 76 65 6c 20 67  |modes: 4 level g|
0000c6d0  72 65 79 20 73 63 61 6c  65 0a 20 20 34 20 62 69  |rey scale.  4 bi|
0000c6e0  74 20 6d 6f 64 65 73 3a  20 38 20 6c 65 76 65 6c  |t modes: 8 level|
0000c6f0  20 67 72 65 79 20 73 63  61 6c 65 0a 20 20 38 20  | grey scale.  8 |
0000c700  62 69 74 20 6d 6f 64 65  73 3a 20 4a 6f 68 6e 20  |bit modes: John |
0000c710  42 6f 77 6c 65 72 27 73  20 63 6f 6c 6f 75 72 20  |Bowler's colour |
0000c720  6d 61 74 63 68 69 6e 67  20 61 6c 67 6f 72 69 74  |matching algorit|
0000c730  68 6d 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |hm.             |
0000c740  20 20 28 64 65 66 61 75  6c 74 73 20 74 6f 20 27  |  (defaults to '|
0000c750  72 27 20 6d 6f 64 65 20  69 66 20 6e 6f 74 20 56  |r' mode if not V|
0000c760  49 44 43 31 20 63 6f 6d  70 61 74 69 62 6c 65 29  |IDC1 compatible)|
0000c770  0a 0a 43 6f 6c 6f 75 72  20 6d 61 74 63 68 69 6e  |..Colour matchin|
0000c780  67 20 69 73 20 64 6f 6e  65 20 69 6e 20 72 2c 20  |g is done in r, |
0000c790  67 2c 20 62 20 73 70 61  63 65 3a 20 74 68 65 20  |g, b space: the |
0000c7a0  6d 69 6e 69 6d 75 6d 20  64 69 73 74 61 6e 63 65  |minimum distance|
0000c7b0  20 62 65 74 77 65 65 6e  20 63 6f 6c 6f 75 72 73  | between colours|
0000c7c0  0a 69 73 20 74 68 65 20  73 71 75 61 72 65 20 72  |.is the square r|
0000c7d0  6f 6f 74 20 6f 66 3a 0a  20 20 20 64 65 6c 74 61  |oot of:.   delta|
0000c7e0  5f 72 5e 32 2a 72 6d 61  74 63 68 77 74 2b 64 65  |_r^2*rmatchwt+de|
0000c7f0  6c 74 61 5f 67 5e 32 2a  67 6d 61 74 63 68 77 74  |lta_g^2*gmatchwt|
0000c800  2b 64 65 6c 74 61 5f 62  5e 32 2a 62 6d 61 74 63  |+delta_b^2*bmatc|
0000c810  68 77 74 0a 43 68 61 6e  67 65 46 53 49 20 68 61  |hwt.ChangeFSI ha|
0000c820  73 20 68 61 72 64 20 77  69 72 65 64 20 77 65 69  |s hard wired wei|
0000c830  67 68 74 73 20 6f 66 20  33 2c 20 31 30 2c 20 31  |ghts of 3, 10, 1|
0000c840  20 72 65 73 70 65 63 74  69 76 65 6c 79 20 66 6f  | respectively fo|
0000c850  72 20 69 74 73 20 63 6f  6c 6f 75 72 0a 6d 61 74  |r its colour.mat|
0000c860  63 68 69 6e 67 20 61 6c  67 6f 72 69 74 68 6d 73  |ching algorithms|
0000c870  2e 20 4a 6f 68 6e 20 42  6f 77 6c 65 72 27 73 20  |. John Bowler's |
0000c880  61 6c 67 6f 72 69 74 68  6d 20 28 64 65 66 61 75  |algorithm (defau|
0000c890  6c 74 20 66 6f 72 20 52  49 53 43 20 4f 53 20 38  |lt for RISC OS 8|
0000c8a0  20 62 69 74 20 6d 6f 64  65 73 29 0a 61 6c 74 68  | bit modes).alth|
0000c8b0  6f 75 67 68 20 73 6f 6d  65 77 68 61 74 20 73 6c  |ough somewhat sl|
0000c8c0  6f 77 65 72 2c 20 69 73  20 66 61 73 74 20 65 6e  |ower, is fast en|
0000c8d0  6f 75 67 68 20 74 6f 20  68 61 76 65 20 72 65 70  |ough to have rep|
0000c8e0  6c 61 63 65 64 20 61 6c  6c 20 74 68 65 20 70 72  |laced all the pr|
0000c8f0  65 76 69 6f 75 73 0a 6d  65 74 68 6f 64 73 20 5b  |evious.methods [|
0000c900  41 53 49 44 45 20 69 74  20 67 69 76 65 73 20 70  |ASIDE it gives p|
0000c910  69 63 74 75 72 65 73 20  61 74 20 6c 65 61 73 74  |ictures at least|
0000c920  20 61 73 20 67 6f 6f 64  20 61 73 20 22 70 22 20  | as good as "p" |
0000c930  6d 6f 64 65 20 69 6e 20  70 72 65 20 41 75 67 20  |mode in pre Aug |
0000c940  39 31 0a 43 68 61 6e 67  65 46 53 49 27 73 5d 2e  |91.ChangeFSI's].|
0000c950  20 52 6f 67 65 72 20 57  69 6c 73 6f 6e 27 73 20  | Roger Wilson's |
0000c960  28 69 2e 65 2e 20 6d 79  29 20 63 6f 6c 6f 75 72  |(i.e. my) colour|
0000c970  20 6d 61 74 63 68 69 6e  67 20 61 6c 67 6f 72 69  | matching algori|
0000c980  74 68 6d 20 69 73 0a 72  65 63 6f 6d 6d 65 6e 64  |thm is.recommend|
0000c990  65 64 2c 20 61 6e 64 20  69 73 20 75 73 65 64 20  |ed, and is used |
0000c9a0  61 75 74 6f 6d 61 74 69  63 61 6c 6c 79 20 69 66  |automatically if|
0000c9b0  20 74 68 65 20 38 20 62  69 74 20 70 65 72 20 70  | the 8 bit per p|
0000c9c0  69 78 65 6c 20 6d 6f 64  65 20 64 6f 65 73 20 6e  |ixel mode does n|
0000c9d0  6f 74 0a 68 61 76 65 20  74 68 65 20 64 65 66 61  |ot.have the defa|
0000c9e0  75 6c 74 20 52 49 53 43  20 4f 53 20 63 6f 6c 6f  |ult RISC OS colo|
0000c9f0  75 72 20 73 65 74 2e 0a  0a 5b 4e 4f 54 45 3a 20  |ur set...[NOTE: |
0000ca00  74 68 61 6e 6b 73 20 61  72 65 20 64 75 65 20 74  |thanks are due t|
0000ca10  6f 20 53 74 65 76 65 20  47 72 65 65 6e 20 61 6e  |o Steve Green an|
0000ca20  64 20 74 68 65 20 42 42  43 20 61 6e 64 20 49 72  |d the BBC and Ir|
0000ca30  6c 61 6d 20 49 6e 73 74  72 75 6d 65 6e 74 73 20  |lam Instruments |
0000ca40  66 6f 72 20 74 68 65 0a  69 6e 74 65 72 6d 65 64  |for the.intermed|
0000ca50  69 61 74 65 20 73 79 73  74 65 6d 73 20 74 68 61  |iate systems tha|
0000ca60  74 20 6c 65 64 20 74 6f  20 4a 6f 68 6e 20 42 6f  |t led to John Bo|
0000ca70  77 6c 65 72 27 73 20 61  6e 64 20 6d 79 20 61 6c  |wler's and my al|
0000ca80  67 6f 72 69 74 68 6d 73  3a 20 75 6e 74 69 6c 20  |gorithms: until |
0000ca90  41 75 67 20 39 31 0a 43  68 61 6e 67 65 46 53 49  |Aug 91.ChangeFSI|
0000caa0  20 75 73 65 64 20 74 68  65 69 72 20 77 6f 72 6b  | used their work|
0000cab0  20 66 6f 72 20 69 74 73  20 22 50 72 65 63 69 73  | for its "Precis|
0000cac0  65 20 4d 61 74 63 68 69  6e 67 22 20 61 6c 67 6f  |e Matching" algo|
0000cad0  72 69 74 68 6d 2e 20 49  74 20 6e 6f 20 6c 6f 6e  |rithm. It no lon|
0000cae0  67 65 72 0a 75 73 65 73  20 61 6e 79 20 6f 66 20  |ger.uses any of |
0000caf0  74 68 65 69 72 20 63 6f  64 65 2c 20 62 75 74 20  |their code, but |
0000cb00  6f 77 65 73 20 61 20 64  65 62 74 20 66 6f 72 20  |owes a debt for |
0000cb10  6f 76 65 72 61 6c 6c 20  61 70 70 72 6f 61 63 68  |overall approach|
0000cb20  2e 20 41 20 73 6d 61 6c  6c 20 74 68 61 6e 6b 20  |. A small thank |
0000cb30  79 6f 75 0a 74 6f 20 53  70 65 6e 63 65 72 20 54  |you.to Spencer T|
0000cb40  68 6f 6d 61 73 20 66 6f  72 20 70 75 74 74 69 6e  |homas for puttin|
0000cb50  67 20 6d 65 20 6f 6e 20  74 68 65 20 74 72 61 63  |g me on the trac|
0000cb60  6b 20 77 68 69 63 68 20  6c 65 64 20 74 6f 20 6d  |k which led to m|
0000cb70  79 20 63 6f 6c 6f 75 72  20 6d 61 74 63 68 69 6e  |y colour matchin|
0000cb80  67 0a 73 79 73 74 65 6d  27 73 20 61 6c 67 6f 72  |g.system's algor|
0000cb90  69 74 68 6d 2e 5d 0a 0a  46 75 72 74 68 65 72 20  |ithm.]..Further |
0000cba0  69 6e 66 6f 72 6d 61 74  69 6f 6e 20 6f 6e 20 64  |information on d|
0000cbb0  69 74 68 65 72 69 6e 67  20 63 61 6e 20 62 65 20  |ithering can be |
0000cbc0  66 6f 75 6e 64 20 69 6e  20 22 44 69 67 69 74 61  |found in "Digita|
0000cbd0  6c 20 48 61 6c 66 74 6f  6e 69 6e 67 22 20 62 79  |l Halftoning" by|
0000cbe0  20 52 6f 62 65 72 74 0a  55 6c 69 63 68 6e 65 79  | Robert.Ulichney|
0000cbf0  20 70 75 62 6c 69 73 68  65 64 20 62 79 20 74 68  | published by th|
0000cc00  65 20 4d 49 54 20 50 72  65 73 73 2c 20 49 53 42  |e MIT Press, ISB|
0000cc10  4e 20 30 2d 32 36 32 2d  32 31 30 30 39 2d 36 2e  |N 0-262-21009-6.|
0000cc20  20 41 20 62 6f 6f 6b 20  77 68 69 63 68 20 49 20  | A book which I |
0000cc30  77 69 73 68 0a 49 27 64  20 68 61 64 20 77 68 65  |wish.I'd had whe|
0000cc40  6e 20 49 20 73 74 61 72  74 65 64 20 77 72 69 74  |n I started writ|
0000cc50  69 6e 67 20 74 68 65 20  70 72 6f 67 72 61 6d 2c  |ing the program,|
0000cc60  20 72 61 74 68 65 72 20  74 68 61 6e 20 61 66 74  | rather than aft|
0000cc70  65 72 20 69 74 20 77 61  73 20 6e 65 61 72 6c 79  |er it was nearly|
0000cc80  0a 66 69 6e 69 73 68 65  64 21 20 48 69 73 74 6f  |.finished! Histo|
0000cc90  67 72 61 6d 20 65 71 75  61 6c 69 73 61 74 69 6f  |gram equalisatio|
0000cca0  6e 20 69 73 20 69 6e 20  22 41 6c 67 6f 72 69 74  |n is in "Algorit|
0000ccb0  68 6d 73 20 66 6f 72 20  47 72 61 70 68 69 63 73  |hms for Graphics|
0000ccc0  20 61 6e 64 20 49 6d 61  67 65 0a 50 72 6f 63 65  | and Image.Proce|
0000ccd0  73 73 69 6e 67 22 20 62  79 20 54 68 65 6f 20 50  |ssing" by Theo P|
0000cce0  61 76 6c 69 64 69 73 20  70 75 62 6c 69 73 68 65  |avlidis publishe|
0000ccf0  64 20 62 79 20 43 6f 6d  70 75 74 65 72 20 53 63  |d by Computer Sc|
0000cd00  69 65 6e 63 65 20 50 72  65 73 73 2c 20 49 53 42  |ience Press, ISB|
0000cd10  4e 0a 30 2d 39 31 34 38  39 34 2d 36 35 2d 58 2e  |N.0-914894-65-X.|
0000cd20  0a                                                |.|
0000cd21