Contents | < Browse | Browse >
%% Usenet Review: ImageFX v1.50 By Per Espen Hagen %%
%% (email@example.com) %%
Complete image manipulation package, for image restoration,
retouching, enhancement, analysis, painting, warping, and morphing; scanning
and digitizing; printing; file conversion. Features a nice, configurable
GUI and an extensive ARexx interface.
Name: Great Valley Products, Inc.
Address: 657 Clark Ave.
King of Prussia, PA 19406
Telephone: (215) 337-8770
FAX: (215) 337-9922
I paid GBP 170 ex. VAT.
SPECIAL HARDWARE AND SOFTWARE REQUIREMENTS
At least 3 MB RAM. More is recommended.
Hard drive strongly recommended.
Works with any CPU. 68020 or higher is recommended.
FPU recommended for some operations, but not required.
AGA chipset recommended, but by no means required.
Image processing is of course one of the most CPU and memory
intensive tasks there is. It goes without saying that a
reasonably well-equipped Amiga is vital for any serious use
of this program.
Requires AmigaDOS 1.3 or higher.
AmigaDOS 2.0 or higher is recommended.
None. Hard drive installable.
MACHINE USED FOR TESTING
Amiga 1200 HD with MBX-1200z.
14.2 MHz 68020/68881.
2 MB Chip RAM, 4 MB Fast RAM.
SysInfo rating: 4.80 x A600.
AIBB ratings: ~0.6 x A4000/030 (integer), ~1 x A4000/030 (graphics),
3-20 x A4000/030 (FP math).
The program comes on 4 floppies, and installation to a hard drive is
very easy. It uses Commodore's Installer program. By using the "Expert"
mode of Installer, you may choose to install portions or all of ImageFX.
If used from floppy, the first disk contains the main program, ready
to use (that is, in uncompressed form).
ImageFX can be run the instant the installation process is finished;
i.e., no reboots or other nasty operations are necessary. The various menus,
windows, and requesters looked a little blocky on the default setup. I soon
changed this by using an Interlaced Panel and the Helvetica/11 font.
The normal display consists of two or three screens on top of each
other: the Preview screen, the Palette screen (which can be turned off), and
the Gadgets screen. The latter two screens can be toggled on/off by
clicking the right mouse button. This multiple-screen concept is similar to
that of ImageMaster and Brilliance.
Generally, the program is VERY configurable. The preview mode can
be any ScreenMode, screen type (normal/EHB/HAM), and depth supported by the
Amiga (or one of several 24-bit graphics cards). For instance, I often use
"Super72:Super-High Res Laced HAM8" for precise painting, cropping, etc., and
"DblPAL:Low Res HAM8" for faster response on other operations.
The gadgets screen has five primary buttons that change the program
"mode": Scanner, Palette, Toolbox, Render, and Print. Each of these
buttons, when pushed, brings up various other buttons and gadgets. The
Toolbox panel can be customized completely. The screen layout is generally
quite intuitive and user-friendly.
ImageFX is absolutely packed with features, so I can only give a few
examples in this review.
First of all, the package has support for loading and saving in most
image file formats you can think of, including IFF-ILBM, JPEG, GIF, TIFF,
Targa, PBM, BMP, ANIM5/7, FLI/FLC, and even Amiga icon format (".info"
files). The loader support is a bit more extensive than the saver support,
but both should be more than adequate for most people.
ImageFX will also render to any Amiga OCS/ECS/AGA screenmode, as well
as several graphics boards (including DCTV, Retina, and OpalVision). The
AGA rendering quality is high, although the LUT selection can sometimes be
very slow. There are even three different algorithms for LUT selection
(MedianCut, Enhanced, and Tibbett), for better control of the process.
The Toolbox is the heart of ImageFX. It features a decent range of
24-bit painting tools and modes: freehand, line, curve, box, airbrush, fill,
brush, etc. One very useful feature is the Pantograph painting mode, where
you copy from one part of the image to another. You can paint with varying
degrees of Blend, use the Alpha buffer, and other options. The painting
tools are quite useful for image retouching etc, but ImageFX certainly is no
rival to Brilliance for image creation.
Among the other buttons in the Toolbox are Balance, Composite,
Rotate, Size, Color, Convolve, Transform, Filter, and Effect. Pressing any
of these buttons pops up a small list of possible operations. Selecting any
of these in turn usually causes a requester with detailed options to
appear. For instance, you can select Convolve, then select Edge Detect from
the list, and then set the detection threshold for edges. Press Okay, and
the Edge Detect filter is run. I really like this method of organization.
By dividing the operations into several groups, each list becomes short and
synoptic (a quick summary). And if you don't like the default grouping of
operations, you can always define your own.
As for the operators themselves, many look strangely familiar for an
ADPro (ASDG's Art Department Professional) user. The Balance window, for
instance, is more or less identical to that of ADPro (except that you can
select the colour space with ImageFX: RGB, HSV, or CMYK). Another
difference is that ImageFX lacks the intermediate colour table of ADPro.
Once you Okay any balance changes, these are applied to the buffer. This is
unfortunate, as you lose some information each time you modify the colour
balance (overflow/multiple-colours-to-one). Of course, ImageFX can Undo any
changes, but that's hardly the ideal way of handling this. (Also, an
intermediate colour map would probably be quite slow if the balancing was
performed in the HSV colour space; but for RGB and CMYK, it would simply be
a LUT for each RGB component.) HSV balancing means you can "rotate" the
colours (purple becomes red, yellow becomes green, etc.), by adjusting the
Hue. A fun effect, if not particularly useful. The way I use this feature
is to try out the settings in a small region of the image (and Undo them
again) until the results are satisfactory, then apply to the full image. So
it's not so bad after all, just different I guess.
One of ImageFX's biggest fortes is the processing of regions. Most
of the above operations can be performed on any user-defined region of the
image. (The operations that don't support it are the ones for which regional
processing makes no sense, such as Size.) A region can be a box, polygon,
or any free-hand closed shape. The region is defined simply by moving the
pointer up to the Preview screen and drawing it. There are also three
buttons marked R, G, and B, respectively, that can be used to select which
one(s) of the Red, Green, and Blue buffers to operate on. For instance, you
can deselect Red and Green, and run Dynamic Range. Minimums and maximums
are then sought for, and modifications applied to, the Blue buffer only.
Again, I find ImageFX's approach very sensible. The modular design
makes it an extremely flexible and powerful program; almost ANY operator can
be applied to almost ANY region of ANY subset of the RGB buffers, simply by
clicking a button or three. I find the handling of regions very intuitive
and easy to use.
ImageFX also supports Epson and Sharp scanners, plus a few
digitizers. I haven't tested any of these modules. There's also good
printing support (Preferences and PostScript). Oh yes, and there's a great
warping/morphing program supplied as well... a special version of CineMorph,
which works in tandem with ImageFX (e.g., it can use ImageFX's Load, Save,
and Render modules). And there's IMP (ImageFX's version of Sentry, more or
less), and the well-known Viewtek image viewer.
As I said, ImageFX is packed with features. Nevertheless, I find
its ARexx interface adds even more power. ImageFX's ARexx port is definitely
the most extensive I have ever seen in any program. Not just a tool for
interprocess communication and macro generation, ARexx is of course a
general programming language. This means that complete application programs
can be written under ImageFX/ARexx, though speed might be a problem
with an interpreted ARexx script.
As one example of the range of ImageFX's ARexx port, I can mention
the ComplexRequest command. This is used to build user-defined requesters!
Such requesters can contain integer, string, checkbox, and cycle gadgets
(and more). The gadgets are defined in an ARexx stem variable. Not all of
the standard Intuition gadgets can be defined -- for instance, radio buttons
and sliders (potentiometers), are missing -- but it has all that's NECESSARY
for any requester.
Other commands allow you to read and write the RGB values of any
pixel of the current image, to draw "virtual" lines and boxes on the preview
screen, to add wedges (like notifying an ARexx port when the left mouse
button is clicked), and so on. Of course, all the regular stuff is there
too -- load, operate, render, save, etc. Preview screen updating can be
temporarily turned off via ARexx for faster operation.
Many commands have synonyms - Mono2Grey can also be written
MonoToGrey, Mono2Gray, and MonoToGray. Very elegant.
One command that seems to be missing is a multiple-file requester.
This isn't too much of a problem, though, as I use Rafael D'Halleweyn's
RexxReqTools.library for these (and other) requesters anyway.
About 200 pages of ImageFX's manuals are devoted to the ARexx
interface. However, you can also create ARexx macros without ever reading
the manual! ImageFX 1.50 has a "learn" mode, where all actions are
"translated" to ARexx and stored in a file. For example, to create an anim
from a set of individual files, you can (1) turn on learn mode, (2) set the
desired rendering options, (3) load, render, and save the first image, (4)
turn off learn mode, and (5) add a DO I=1 TO N loop to the script. ET VOILA,
a complete ARexx script for creating anims. (Well, more or less...)
ImageFX comes with very few pre-written ARexx scripts. This isn't
really a problem if you're familiar with ARexx, but newcomers to this weird
and wonderful language would probably have wanted more scripts. Of course,
the need for pre-defined ARexx scripts is also alleviated by the Learn mode.
I have to mention a few of the other features of this package. First
of all, ImageFX contains a rather useful online help function. An
operation-sensitive AmigaGuide manual pops up any time you press the Help
key (except when ImageFX is busy). Although not more than a quick
reference, it can save quite a few look-ups in the paper manual.
ImageFX also comes with its own virtual memory system, which can be
configured in several ways -- "Use Always", "Never", "When Needed", "Ask
Before Using". You can specify the maximum amount of RAM to use, and the
VMEM page size in KBytes.
I find ImageFX's memory handling system good, but not ideal. With
any setting except "Never Use VMEM", ImageFX automatically allocates and
holds on to the specified maximum amount of RAM. This memory has to be
contiguous. If you use Ask or When Needed, the program will use any extra
(not necessarily contiguous) available RAM before it goes to virtual
memory. One problem with this is that ImageFX sometimes runs out of memory
when rendering (or, to be precise, when making histograms for CLUT
selection. The histogram memory must also be contiguous). There might be a
way to limit the amount of RAM to use for the buffer, but I haven't found it
If you select "Never Use VMEM", ImageFX allocates memory only when it
is needed. The memory does not have to be contiguous. ImageFX needs only 3
bytes per pixel for the buffer. (ADPro always allocates 4 bytes per pixel,
using the extra one for rendering.)
After having used the "Ask Before Using VMEM" initially, I have now
switched to "Always Use VMEM", with about 1.5 MB as maximum amount of RAM to
use. This setting is good for multitasking (plenty of Fast RAM available),
and I never have memory problems when rendering. If the whole buffer fits
in the 1.5 MB of memory, VMEM isn't really used. I can also use huge 24-bit
images (2000x1500, say) without any problems.
(I am actually running ImageFX on another screen with a 1280x1024x24
picture as I am typing this... while playing a MOD with MultiPlayer, and
running about a dozen other commodities, etc. And I still have (checking...)
about 1 MB of free Fast RAM!)
Unfortunately, at least one effect (Oil Transfer) will not work on
disk-based buffers. I have no idea why.
One last feature: ImageFX has a VERY useful Undo/Redo command.
Multiple Undo is supported; the maximum number of Undos is user-specified.
It's only limited by the free RAM and/or disk space of your machine.
As ImageFX 1.50 comes with approximately 600 pages of documentation,
one might think that this subject was handled excellently. Wrong. In fact,
the documentation is my one major gripe about this package.
First of all, the main manual describes only ImageFX 1.03. All
modifications and extensions for version 1.50 are described in a separate
addendum. This is perhaps marginally acceptable for people who have
upgraded to 1.50, but it's intolerable for new users. What are we supposed
to do? Read both manuals at the same time? (It might seem that this is the
intention, because the 1.50 addendum doesn't even fit into the original
binder!) No, this isn't good enough, GVP.
Secondly, I find the manual a bit too shallow. The explanation of
some operators is rather superficial. For instance, what algorithm is used
for "Smooth" scaling? Is it a bilinear approximation? The manual only
states that "Smooth mode smoothly anti-aliases the image as it is
rescaled"... wow, I would never have guessed! Well, I guess the manual is
OK for beginners. It is definitely too shallow for advanced users.
Thirdly, it's difficult to navigate the manual. As previously
mentioned, the manual's coverage of the ARexx interface spans about 200
pages. Yet it is only given one line in the Contents, and there's no
chapter introduction detailing the disposition. You have to browse through
it to find that it contains (1) 127 pages of commands, (2) a 7-page Quick
Reference, (3) loading commands, (4) rendering commands, and so on.
This might sound awfully harsh, so I should say that the manual IS
usable. As a matter of fact, it's about average for this kind of software.
It's just not the same excellent quality as the rest of this package.
LIKES AND DISLIKES
I really like the flexible, extensible and customizable nature of
ImageFX. It can be configured to suit pretty much anyone's taste. The
program's number of features is formidable. Having used ImageFX extensively
for about a month, I still feel like I'm only scratching the surface of this
program (and I usually get the hang of programs very quickly).
The ARexx interface is also brilliant. As is the regional
processing, the 24-bit painting tools, the always-present Preview buffer,
not to mention the consistent and pretty (once you've tailored it to your
personal taste) GUI. Also, virtual memory and multiple Undo are wonderful
features. Finally, I like the fact that everything is included in the basic
package; no vital tools are sold separately.
I dislike that some effects don't work with VMEM buffers. And I
STRONGLY dislike the poorly written and assembled manual. Also, the AGA
chipset is supported only for preview and rendering. For instance, the
palette screen is only LoRes HAM6, with a 12-bit colour space (at least it
looks that way to me).
I would like to see more ARexx macros supplied with the package.
COMPARISON TO OTHER SIMILAR PRODUCTS
It is of course impossible to test this package without comparing it
to ASDG's Art Department Professional. I have used ADPro for some time,
including the current version (2.3.0). I have only very slight experience
with ImageMaster, so I can't really compare ImageFX to that product.
ImageFX can do more or less everything that ADPro can. Quality and
time consumption are also quite similar. But ImageFX can do much, much more
than ADPro, and some operations are a lot easier to perform.
Furthermore, ImageFX utilizes the Amiga's intrinsic advantages much
better than ADPro does:
o Multiple and "split" screens.
o A HAM screen for the palette.
o Images are rendered directly to auto-scrolling screens in
Chip RAM (ultra-fast scrolling of large images).
o Good memory usage (multitasking-friendly).
o HAM8 preview mode.
o Gadgets, requesters, etc.
ADPro, on comparison, is designed almost as if it were a PC product.
But sure, it works, and it's quite easy to get used to. And there are a few
options that are unique to ADPro; e.g., the Antique operator.
I seriously can see no reason why anyone would use ADPro once they
get to know ImageFX. Being an image processing scientist, I have used quite
a few IP packages professionally (under Unix and VAX/VMS). I can honestly
say that ImageFX comes quite close to several of these.
The program is reasonably bug-free. I've noticed a few minor bugs,
but nothing really serious. ImageFX seems very stable; it has never crashed
on my machine, without being SERIOUSLY provoked.
One "bug" is that small rendering screens sometimes look like
complete garbage. This is actually a bug of the AGA chipset, which
apparently doesn't handle arbitrary screen widths. The screens look right
when moved horizontally. However, if the machine is not meant to handle
such screens, ImageFX should not try to open them.
Author Tom Krehbiel and co-author Kermit Royce Woodall are both on
the Internet. Kermit frequently answers ImageFX questions in the USENET
newsgroup comp.sys.amiga.graphics. I have e-mailed Tom Krehbiel with a
question, and he answered me a few days later.
Telephone and fax numbers to GVP Technical Support are given in the
manual. I haven't tried these.
ImageFX is a very good program, quite possibly the best Amiga
program I have ever used. On a scale from 1 to 10, I'd give it a 9: The
program and the UI are a solid 10, but the manual is hardly worth more than
ImageFX is highly customizable, and it really utilizes the Amiga
(multiple/split screens, HAM, multitasking-friendly, ARexx, etc). The ARexx
interface is the best I've ever seen, and allows for creation of complete
new image processing applications.
The program is also very stable. In my opinion, ImageFX is well
worth its price.
Copyright 1993 Per Espen Hagen. All rights reserved.
The author can be contacted on e-mail as firstname.lastname@example.org
(or email@example.com if you're lazy...)