histogram, Equalize histogram, Expand/Reduce range etc.
It is possible to create your own map and apply it to the loaded image. If
you drag a 256-bytes Data-file (filetype &FFD) to any of the image viewers,
the file will be loaded and used as a map on that particular image.
You can edit the BASIC-program GenMap to suit your own purposes.
The colour selector
=====================
The colour selector is a window that pops up whenever a selected operation
needs a colour as input. The window contains three slidebars, Red, Green and
Blue which can be used to select the colour, which will be shown to the right
of the slidebars. The five icons at the bottom of the window are:
Black Sets all three slidebars to 0 (RGB) or full (CMY) (=black).
White Sets all three slidebars to full (RGB) or 0 (CMY) (=white).
Cancel Abort the operation/close the window.
OK Apply the filter/effect/operation or close the window.
If you click ADJUST on either of the slidebars, all three bars will be moved.
The palette in the right side of the image can be used to select any of the
256 default colours used in 8 bpp modes. If the image you are edited uses
another palette, it will still be the same 256 colours that are shown, so they
should not be consider as the palette but simply as 256 preset colours. If the
sprite doesn't use the default palette, it is very likely that some of the
preset colours are not available.
If the option -colour is set, the 256 preset colour will be substituted with\ a display of a cut thru the RGB colour cube, for a fixed value of either red,
green or blue. Eg. if red is fixed, you will get a display of green and blue
colours. When you alter the red (by dragging the red slidebar) you also alter
the amount of red that is added to the green and blue.
The display is only update when a drag of the slidebars is ended, or when
you are dragging the fixed colour.
You can alter which colour is fixed by clicking ADJUST on the words 'Red',
'Green' or 'Blue' to the left of the slidebars.
If the number following the -colour option is 4, 5 or 6, the colour selector
will show CMY values instead of RGB value. You can still select which colour
to fix, by clicking on either 'Cyan', 'Magenta' or 'Yellow'.
You can pick a colour from the source or destination image by selecting the
Pick tool from the toolbox.
The grey value selector
=========================
This is exactly the same as the colour selector, except that you only use a
single slidebar to select the colour/grey value.
The windows
=============
The two main windows in !Process are the source and destination windows.
The source window can be identified by the toolbox, the destination window
by the pane window with the arrows.
The toolbox
=============
The toolbox contains icons for various of the most frequently used
operations, such as zoom, pan, copy image, set colour etc. Most operations
can be aborted by selecting another operation or by clicking ADJUST on the
selected icon. From top to bottom, left to right, the icons are:
Select area
-----------
This works exactly as the menu option Misc.Image.Select area.
Use selected area
-----------------
If this icon is set (slabbed inwards) only the selected area of the
source image will be processed. If an area is selected and used,
pressing MENU over this icon will open a window containing icons to
control the selected area. These icons work in the same way as the
sub menu to the menu option Image.Select area.
Copy to destination
-------------------
This copies the source image (or the selected part of the source image)
to the destination image.
Copy from destination
---------------------
The reverse of 'Copy to destination'.
Calculate histogram
-------------------
Calculate and display the histogram of the source image.
Open RGB colour selector
------------------------
Swap images
-----------
Swap source and destination images.
Zoom
----
When this is selected, you can enlarge a portion of the image simply by
dragging a box in the source image window. Click MENU over this icon to
open a window with 8 preset zoom factors.
Painting tools
--------------
Click MENU over this to reveal the 16 painting tools:
Pencil
Filled rectangle
Rectangle
Filled circle
Circle outline
Lines
Flood fill
Global replace
Spraycan
Triangle fill
Triangle
Parallelogram fill
Parallelogram outline
Ellipse fill
Ellipse outline
Smooth line
Note that the painting tools write to the source image, NOT to the
destination image.
Record
------
This starts/stops the recorder.
Currently, the following operations are recorded:
Everything in the Process/Filter/Arithmetic submenus
Swap images (including auto-swapping)
Effects: Squash/Pointilise/Mix/Whirl/Scratch
Extend area/Mask/Trace edges
Expand/Reduce range
Transfer median/Equalize histogram
Gamma correction
More tools: Flip/Rotate/Clear
(De-)Selction of an area
Pick
----
This allows you to select a colour from the source or destination image.
Pan
---
Simple, really.
The menus
===========
The icon bar menu
=================
Info
----
...with the usual program info window.
Views.Tidy
----------
Tries ever so hard to tidy the image viewers.
Views.----
----------
A list of all the image viewers.
Create image
------------
Creates a new blank image.
Drop file
---------
Quit
----
The main menu
=============
Image.Image info
----------------
Leads to a window with image info.
Image.Convert to greyscale
--------------------------
Converts the image to 256 greytones. If the image already is a greyscaled
image, this option is substituted with Convert to colour. Of course the
image cannot be reversed to full colour, but the greytones can be mapped
to the greytones in the default 256 colour palette.
Image.Copy source image
-----------------------
Selecting this option will copy the source image to the destination
image.
Image.Select area
-----------------
This entry allows you to select a part of the image. Almost all
operations on the image will only have effect in the selected area.
Select the option, then click SELECT in one corner of the rectangle you
wish to select and click SELECT again in the other corner.
You can abort the cutting by clicking MENU.
If an area already has been selected, it is possible to adjust the
position/size of the area using the options in the sub-menu to this entry.
Extend top/bottom/right/left will move to appropiate side of
the rectangle to the top/bottom/right side/left side of the
full image.
Top/bottom/right/left neighbour will set the rectangle to an
area with the same width/height as before, but positioned
above/below/to the right of/to the left of the previous area,
so that no pixels overlap.
Image.Clear area
----------------
This will reset the selected part of the image to the full image.
Image.Use full image
--------------------
If this option is selected (ticked), the full image is be used.
Image.Use selected area
-----------------------
If this option is selected, only the selected part of the image will be
affected by the processing.
Miscellaneous.Options.Automatic swap
------------------------------------
If this options is selected, the source and destination image will be
swapped automatically after any operation has been applied to the image.
Miscellaneous.Options.Disable DMA
---------------------------------
If this option is selected, the sound and video DMA will be disabled
while !Process is processing an image. In hi-res modes on an ARM2 this
can increase processing-speed with as much 100% or more.
Miscellaneous.Options.Show toolbox
----------------------------------
If this option is selected, a toolbox will appear on the left side of the
source image window, and a pane window appears on the left side of the
destination image window.
Miscellaneous.Options.Normal panning
------------------------------------
Switches between the two different types of panning.
Miscellaneous.Options.Display in greytones
------------------------------------------
Displays the images (if they are in colour) in greytones.
Greyscaled image can also be shown in colour, by deselecting this option.
Miscellaneous.Options.Load palette
----------------------------------
If on, the palette of a sprite is used instead of the default palette.
Miscellaneous.Options.Extended RGB selection
--------------------------------------------
This is really only suited for use in 256 colour modes.
The 256 preset (default) colours in the colour selector is substituted
with a (very colourful) display of a cut thru the RGB colour cube for a
fixed value of of either red, green or blue. See The colour selector.
Miscellaneous.Options.Cyan/Magenta/Yellow
-----------------------------------------
This toggles from RGB to CMY or back.
Miscellaneous.Options.Ignore sprite mask
----------------------------------------
When set, the mask (if present) will be ignore. Otherwise it will
be used for all plotting. Actually, most operations continue to function
as they did before, ignoring the mask completely. It's only operations
like Mosaic, Rotate, Flip X/Y and others using OS_SpriteOp that will
use the mask.
Miscellaneous.Edit pencil/spraycan
----------------------------------
Select this to set the shape/size of the pencil tool or the size/
intensity of the spraycan.
Miscellaneous.Plot type
-----------------------
This enables you to select which plot action the painting tools should
use. The default is Set, which means plot the selected colour. The other
possible plot actions are:
OR OR the colour in the image with the selected colour.
AND AND ......
EOR EOR ......
Invert Invert the colour in the image (ignore the selected
colour).
Don't plot Speaks for itself, doesn't it?
AND NOT AND the colour in the image with the inverse of the
selected colour.
OR NOT OR ......
The plot type affects all the painting tools except Spraycan, Flood fill
and Global replace.
Miscellaneous.Recorder.Start recording
--------------------------------------
This will start the recorder without resetting it.
There is room for almost 120 operations.
The record will be kept until you delete it (or quit).
Miscellanoeus.Recorder.Stop recording
-------------------------------------
Select this to stop the recorder.
Miscellaneous.Recorder.Delete
-----------------------------
This will delete all recorded operations.
Miscellaneous.Recorder.Play record
----------------------------------
This will redo all the recorded operations.
Miscellaneous.Import sprite
---------------------------
This selects if (and how) a spritefile dragged to the source or
destination window is loaded.
Both 2, 4, 16 and 256 colours sprites can be loaded, but the palette
(if present) isn't used.
Miscellaneous.Reload last
-------------------------
This enables you to reload the last saved image (for that particular
image viewer). In some cases you might experience an error like
'Not enough room in spritearea'. This will typically happen if the image
you are trying to reload has a palette, as !Process stores the images
without palette. There simply isn't room for the extra palette data.
The error 'You can only load spritefiles' means that the image hasn't
been saved yet (or that Process has screwed up it's internal tables).
Miscellaneous.Calculate palette
-------------------------------
This will recalculate the palette used for creating the colour display
in the colour selector. This is only useful if you're using another 256
colour palette than the default one (i.e. using a ColourCard).
Range.Reduce range
------------------
This uses a simple algorithme to reduce the range of the colours in the
source image. All colours are moved towards a boring greytone (red, green
and blue = 128).
Range.Expand range
------------------
All colours are moved away from the greytone mentioned above.
Range.Calculate histogram
-------------------------
This calculates and displays the colour histogram of the image.
There will almost always be at least a small amount of both red, green
and blue in all images, even after the image has been thru e.g. a blue
filter. This is due to the fact that the bottom two bits of each byte is
common to the three colour components.
Range.Stretch
-------------
Stretches the colour range of the image. This will stretch a selected
part of the colour histogram so that this part fills the entire range.
If a colour component is outside the selected part it becomes either 0
(if below) or 255 (=full, if above).
Selecting a part of the histogram is done using the lowered rectangle
below the histogram. Clicking ADJUST in this sets the upper limit,
clicking SELECT sets the lower limit.
Range.Equalize
--------------
Histogram equalisation. This will attempt to equalize the histogram so
that there is a (roughly) equal number of pixels in each of the possible
shades.
Range.Transfer median
---------------------
Calculates the mean colour of the image, and transfers it to the RGB
colour selector. This is especially useful if you want to convert a
colour image to greytones, as the mean colour will ensure a reasonably
good conversion.
Range.Colour correction
-----------------------
Uses one of three algorithems to perform colour-correction. The curve
shows 'New colour' vs 'Old colour'.
Gamma (Gamma-correction): Each colour-component is translated to a new
colour using the formula: NewCol = (OldCol ^ Gamma)
Gamma is set using the two up- and down-icons.
Gamma-correction is particually useful on scanned/digitized images.
P-lin: Basically the same as Gamma-corr. You can adjust the curve by
clicking SELECT on it.
Step: Allows you to control the translation of each RGB value to a new
RGB-value.
Process.Invert
--------------
This will invert the image, giving a negative image.
Destination RED = 255 - Source RED
Process.Remove TINT
-------------------
This simply removes the bottom two bits (the TINT part) of all pixels in
the source image.
Process.Brighten
----------------
This adds a small amount to each of the colour components, giving a
brighter image.
Destination RED = Source RED + 16
Process.Darken
--------------
The reverse of Brighten.
Process.Black & White
---------------------
Converts the image to black and white. The colour components are weighted
according to the selected colour, the median of the three components are
calculated, and if this is above 50% intensity, the pixel becomes white
otherwise it becomes black.
Process.Greytones
-----------------
Converts the image to greytones. The colour components are weighted
according to the selected colour, the median of the three components are
calculated and this is used to select a greytone.
The sensitivity of the eye is approx. 3:5:1 (red,green,blue).
Process.Threshold
-----------------
Converts the image to black and white using thresholding.
Thresholding means that any pixel with 2 or 3 colour components above the
selected colour will become white, the rest will become black.
Process.Add colour
------------------
Adds an variable amount of colour to the red, green and blue colour
components.
Process.Sub colour
------------------
The reverse of Add colour.
Process.RGB filter
------------------
This acts like a sort of coloured glass you put in front of the image.
If the glass is blue, only the blue parts of the image will pass thru
the glass.
Process.Translate
-----------------
The colours in the destination image becomes a weighted sum of the
colour components from the source image, eg:
Dest RED = 30% Source RED + 60% Source GREEN + 40% Source BLUE (etc.)
Anything above 100% is cut off.
Process.Shade
-------------
All colours are move towards the selected colour. How much they are
moved is set using the Effect slidebar in the colour selector.
Process.Isolate
---------------
This will turn all pixel black, except for those that are in the same
colour as the selected colour (these are turned white).
Process.Isolate range
---------------------
This will turn all pixels black, except for those whose colour is within
the given range from the selected colour (these are turned white).
Use Arithmetic.Overlay afterwards to copy the affected pixels to the
destination image.
Process.RGB separation.True colour
----------------------------------
Process.RGB separation.8 bit per pixel
--------------------------------------
Works only if you've got 4 (or more) copies of the image.
Creates three copies of the source image, one with the red part of the
image, one with the green part and one with the blue part.
Actually, two version of this routine is available.
'True colour' will give you a red, a green and a blue image.
'8 bit per pixel' will give you three very ugly ill-looking images. These
images have 256 levels of red/green or blue, but these levels are mapped
directly to the bytes written to the screen. The effect of this can be
seen by displaying the image in greytones (see Miscellaneous.Options).
The 'true colour' version can also be applied by using
Process.RGB filter.Red/Green/Blue.
Process.CMYK separation
-----------------------
Works only if you've got 5 (or more) copies of the image (see Options).
See 'RGB seperation'.
Process.HSV separation
----------------------
Works only if you've got 4 (or more) copies of the image.
Creates three images showing the values of Hue, Saturation and Value.
Not really very useful, but someone might find it interesting.
Filters.Noise (weak)
--------------------
Noise removing filter. If the two neighbours of a pixel is in the same
colour, the center pixel becomes that colour too.
Filters.Noise (strong)
----------------------
The center pixel is compared with its neighbours to the left, right, top
and bottom. If the center pixel is the brightest of these, it becomes the
average of the four other pixels.
Filters.Average
---------------
Smoothen the image a lot.....
The center pixels becomes the average of colour of itself and its 8
neighbours. The kernel looks like this:
1 1 1
1 1 1
1 1 1
Filters.Sharpen
---------------
Sharpens the edges in an image.
Uses the following kernel:
0 -1 1
- 1 5 1
0 -1 0
Filters.Smoothen (strong)
-------------------------
Doesn't smoothen the image quite as much a 'Average'.
Uses the following kernel:
1 2 1
2 4 2
1 2 1
Filters.Smoothen (weak)
-----------------------
Hardly doesn't smoothen the image at all.
Uses the following kernel:
1 1 1
1 24 1
1 1 1
Filters.Median
--------------
The center pixel becomes the median of the 8 surrounding pixels.
Filters.Vertical edges
----------------------
Detects vertical edges.
Uses the following kernel:
1 0 -1
2 0 -2
1 0 -1
Filters.Horizontal edges
------------------------
Detects horizontal edges.
The kernel is simply the transposed of the one used for vertical edges.
Filters.Edges (emboss)
----------------------
Detects edges of any orientation.
Kernel: 2 1 0
1 0 -1
0 -1 -2
Filters.Minimum
---------------
The minimum of the 9 pixels (the center pixel and its 8 neighbour) is
found, and this is the new colour of the center pixel.
Filters.Maximum
---------------
As 'Minimum', except it finds the maximum.
Filters.Difference
------------------
My own invention! If the difference between the center pixel and the
average of the 8 others is larger than the selected colour, the average
is used, otherwise the pixel is left unchanged.
Filters.Kernel
--------------
A generel purpose kernel. You can insert whatever value you fancy, and
apply the kernel to the image.
The routine is very slow (3000 pixels/second on an ARM2) but the results
can be very impressive.
Currently, the routine doesn't consider the two border rows/coloums of
pixels.
You can load pre-defined kernels by dragging a text file to the icon bar
icon. The file must have the following format:
Line 0: "KERNEL"
Line 1: Name/describtion
Line 2: Values to insert in the first row of the kernel.
Line 3-6: As line 2, but inserted in rows 2-5 in the kernel
The values should be separated by commas, and ALL lines must be terminated
by an ASCII 10 (even the last line). Avoid values outside the range -99
to 99. See the supplied example !Process.Emboss.
Filters.Emboss
--------------
This is a hard core version of the emboss filter mentioned above.
Basically, it's just a front end for the generel purpose kernel, so it
is every bit as slow as that. The angle defines the position of a light
source, so 135 will give the effect of a light in the top left corner of
the image, while -45 will put the light in the bottom right corner, and
thereby make the image look inverted (anti-embossed or whatever it is
called).
Effects.Scratch
---------------
Gives the impression that the surface of the image was scratched with a
nail while the paint was still wet.
Effects.Ripple
--------------
An old-time favourite of all demo-makers.
If the 'Double' option is on, a special ripple will be used...
Effects.Trace edges
-------------------
If the distance between any of the three colour component (for any two
adjectant pixels) are greater than the selected minimum distance, the
pixels are said to lie on an edge and are coloured black (the rest is
coloured white).
Effects.Mosaic
--------------
Select this, then click somewhere in the bottom left corner of the source
image window, and see what happens. Abort by clicking MENU or ADJUST.
Effects.Pointillise
-------------------
Dots, Overlap, Wild : Try them, perhaps you'll like them.
Overlap gives a sort of impressionistic look to the image.
Effects.Twist
-------------
Experiment......
Effects.Extend area
-------------------
Any white or black area (blob) in the image will be extended by adding a
new set of white or black pixels all around its border.
Effects.Add noise
-----------------
A simple yet effective noise generator. Adds noise to either the source
or the destination image.
Higher intensity means more noise, but due to the primitive nature of the
noise-generator the position of the noisy pixels will rapidly begin to
repeat themself.
Effects.Cycle bytes
-------------------
Adds/subtracts 1 from each byte in source image, and writes the byte to
the destination image.
If Repeatedly is selected (ticked) the bytes in the destination image
will be cycled repeatedly until you click MENU.
Works only in 256 colour modes (for speed reasons).
If Multi-tasking is selected, the colour cycling will multitask, and
stops when you click any of the mouse buttons over any window/icon that
belongs to !Process.
Effects.Mask
------------
Only those pixels that are black on the destination image will be copied
from the source image, the rest will be left unchanged.
Effects.Mix colours
-------------------
Mixes the colours randomly.
Effects.Wheel
-------------
Basically, this is just a left-over from the Distort-routine (see More
tools). You select an area (triangular) and a circle, and 9 copies of the
triangle are then distorted to fill the circle.
Effects.Squash.Circle
---------------------
Squashed the image to fit inside a circle.
Effects.Squash.Triangle
-----------------------
See above. Works with all images.
Effects.Whirl.Whirl
-------------------
Hmm, not really that easy to explain, but...
A kind of rotation. The rotation angle depends on the distance from the
center fo the image. The routine is quite slow (10000 pixels/second) due
the the amount of maths that is required.
The rotation angle increases when you get closer to the center of the
image.
Effects.Whirl.Son of Whirl
--------------------------
Like above, just different!
The rotation angle decreases when you get closer to the center of the
image.
Effects.Whirl.Whirl revisited
-----------------------------
Like above and the one above that one, but again it's different from
the other one and from the other other one coz otherwise there wouldn't
really be any meaning in including this effect or the one above it.
Has a small bug that causes black rings to occur if the angle is <30.
Arithmetic
----------
These options perform arithmetic and logical operations on pairs of
pixels from the source and destination images. The result is written to
the destination image as always.
Arithmetic.Source + Dest
------------------------
The destination image becomes the sum of the two images.
Arithmetic.Source - Dest
------------------------
See above.
Arithmetic.Dest - Source
------------------------
See above.
Arithmetic.Source EOR Dest
--------------------------
The two pixels are EORed bit by bit.
Arithmetic.Source AND Dest
--------------------------
The two pixels are ANDed.
Arithmetic.Source OR Dest
-------------------------
The two pixels are ORed.
Arithmetic.Source = Dest
------------------------
The destination pixel becomes white if the source pixel is in the same
colour as the old destination pixel, otherwise it becomes black.
Arithmetic.Source <> Dest
-------------------------
The destination pixel becomes white if the source-pixel is in a different
colour than the old destination pixel.
Arithmetic.Source < Dest
------------------------
See above.
Arithmetic.Source > Dest
------------------------
See above.
Arithmetic.MAX(Source;Dest)
---------------------------
The new pixel is coloured as the maximum of each of the three colour
components.
Arithmetic.MIN(Source;Dest)
---------------------------
As 'MAX(Source;Dest)', except it uses the minimum.
Arithmetic.Overlay
------------------
The destination image is used as a RGB-filter for the source image:
White is transparent, black is non-transparent, red allows red colour to
pass thru the filter etc.
Destination RED = (Source RED * Destination RED)/256
Arithmetic.Combine
------------------
The destination image becomes a weighted average of the two images, the
weight is set in the sub-window to this option.
The weight is a number from 0-255, and is used like this:
Dest RED = ((255-Weight) * Source RED + Weight * Dest RED)/255
Thus weight=0 will copy the source image to the destination image, and
weight=255 will leave the destination image unaltered.
Arithmetic.ABS(Source - Dest)
-----------------------------
See 'Source - Dest'.
More tools.Clear
----------------
An easy way of clearing either the source or destination image.
More tools.Flip about X-axis
----------------------------
Flip the source/destination image about the X-axis.
More tools.Flip about Y-axis
----------------------------
Flip the source/destination image about the Y-axis.
More tools.Rotate
-----------------
The destination image becomes a rotated copy of the source image.
Rotation is anti-clockwise, and if an area is selected only that part of
the image will be rotated.
More tools.Shading.Radial to black
----------------------------------
This generates a radial shading from the selected colour to black. The
area affected is selected using the usual rubberband-circle. The colour
outside the circle becomes black (hence the name 'to black'). Note that
although you select the circle in the source window, the shading will
appear in the destination image. The reason for this is that this tool
is meant to be follow by Arithmetic.Overlay to create a shading of the
whole image.
More tools.Shading.Radial to white
----------------------------------
See above.
More tools.Shading.Radial from black
------------------------------------
See above.
More tools.Shading.Radial from white
------------------------------------
See above.
More tools.Shading.Linear to black
----------------------------------
As the 'More tools.Shading.Radial ....' tools, but performs a linear
shading.
More tools.Shading.Linear to white
----------------------------------
See above.
More tools.Shading.Use dithering
--------------------------------
This toggles whether the shading tools should use dithering to increase
the number of shade or not. The image quality is greatly improved when
dithering is ON, but the dithering makes it much harder to process the
image afterwards.
More tools.Distort triangle
---------------------------
This allows you to specify two triangles and then distort the first one
to fit into the second one. The triangle will be read from the source
image, and is written to the destination image.
More tools.Distort quadrangle
-----------------------------
Allows you to distort (almost) any four sided shape.
More tools.Smudge
-----------------
Basically, this is just RECTANGLE x1,y1,s TO x2,y2, but it looks good
anyway, doesn't it?
Save image
----------
All images can be saved in the usual way. When you save an image from any
of the image viewers, the new spritefile becomes the 'last saved image'
for that particular image viewer, which means that it is this file that
will be loaded by the 'Reload last' option.
The images can only be saved as sprites, with or without a palette with
256 entries. This format is only understood by Translator, ChangeFSI and
a few other programs. !Paint in RISC OS 2 doesn't recognise the palette,
but RISC OS 3 !Paint does.
Zoom
----
The images can be shown in any magnification from 10% to 1999%.
The other menu that hasn't been mentioned yet
=============================================
This menu appears when you click MENU over an image viewer that contains
neither the source image nor the destination image.
Use as source
-------------
Will select the image as the new source image.
Use as destination
------------------
See above.
Copy.Copy from source
---------------------
This entry (and the three entries below) allows you to copy the image to
either the source or the destination image.
Copy.Copy from destination
--------------------------
Copy.Copy to source
-------------------
Copy.Copy to destination
------------------------
Reload last
-----------
See Misc.Reload last
Save image
----------
See above.
Zoom
----
See above.
Known problems, bugs and unfinished things
============================================
The filters doesn't work on the pixels on the edges of the image/selected
area. This isn't a bug, it was just so much easier and faster to do it that
way.......
Redrawing isn't always correct after using the rubberband tools (circle,
lines, rectangles etc.) outside a selected area.
Redrawing is never correct after using the rubberband tools inside the
masked area of a sprite.
The Distort quadrangle routine doesn't allow shapes where any of the
interior angles are > 180 (deg.). It doesn't generate an error, it just
doesn't give the expected result.
A small bug prevents !Process from displaying some spritefiles if the sprite-
file header isn't entirely correct, eg. word #3 is invalid, although this
doesn't cause problems with !Paint. Loading the file into Paint and resaving
will usually cure the problem.
The whirl effect-family may fail on very large image or when using very