|ColorWorks 1.0 by SPG||- by Chris Wenham|
On first appearances one might be disappointed with ColorWorks. It doesn't flood you with a million toolboxes, and the icons in the toolbox that does exist look a little ... how should I put it ... first generation?
All of this dissolves after a few hours of exploring the product. Apart from its daunting 1.0 release, ColorWorks works well and it works strong. It's complete enough (and by that I mean it could be more complete) for professional work, and dare I say it, has enough power to entice professionals to switch from whatever it is they're currently using - and feel comfortable about it too.
ColorWorks introduces some powerful new features that were borrowed from other platforms and innovates a few of its own. A very powerful example of which is the DIMIC (Dynamic In-Memory Image Compression) which can reduce the RAM requirements of your graphics files. Compression has been used when storing graphics files to disk for a long time, now ColorWorks has implemented it in RAM too. The immediate advantage to this is that you can edit larger files, and you can edit more of them. The drawback is that draw operations are slower. While using ColorWorks I found that it's best to have DIMIC off when you want to do freehand drawing to the canvas, otherwise it's just too jerky and unresponsive to be useable. Of course, another feature of ColorWorks that can fix that is its support for up to 64 CPUs. With dual-processor motherboards and SMP (Symetric MultiProcessing) coming into the market this is a definite power plus that'll give it the speed edge over other photo processing applications.
Rather than just list its features, I decided to use ColorWorks to create something. A large part of photo-processing work involves assembling pictures from 'bits' culled from other files - a face here, a background there, an object clipped out from there, etc., etc. - making a digital collage so to speak. This would explain the popularity of photographic clip-art libraries, like the massive 200 CD Corel Photo Libraries.
Being no artist, I had no idea where to start, so I picked a simple project; take an object and place it in an unlikely setting, then add some text and maybe a few side details.
In my image-bank collection I found a picture of a '63 Corvette (27k jpg) viewed head-on as it was driving towards the camera. This was the object to be clipped, but to complicate things was the background it was set against.
Somehow I had to screen out the trees, road and buildings in the background so it could be pasted cleanly against whatever new background I decided to pick for it. This is where the concept of masks came in. A mask is a way of marking off the particular parts of the picture, right down to the individual pixels, that you want to change or clip out, and which parts you don't. In ColorWorks it's simple to define a mask, you simply flip into Mask mode (27k jpg) and paint it.
In Mask mode, all the painting tools you used before to create an image are now used to define the mask. Freehand, geometric shapes, text, bezier curves, lines, floodfills, and if wished an option for selecting the entire image (this does actually come in handy as I'll describe later). Since the car and the angle it was turned defied all attempts to classify it with any of the regular geometric shapes, I selected the freehand tool and a wide enough brush to lay down a quick and rough approximation of the car's shape.
When painting, the mask is defined by applying a transparent shade of color over the image, like a tint filter. The default color is magenta but you can also pick from red, green, blue, cyan or yellow. As I created the mask, the 'vette now looked like it was out of a scene from the movie Repo Man - where the car was glowing in a neon but fake/low-budget looking aura. Highly amusing actually! This 'aura' had a convenient side-effect too; I was worried that it would be difficult to define the border where the wheels met road since the shadow that the car cast made it look all black down there. The magenta mask acted a bit like night vision goggles and made the wheels and the car's shadow stand out against the black road.
I find ColorWorks' method of defining the mask to be much better than the 'marquee' employed by other programs. With the classic black-and-white-dashed marquee it was hard to tell which parts were inside or outside the mask and in complex areas the mask would just degenerate into grey noise. Add to that the fact that most programs insisted on animating this marquee which just made it a confusing sea of static and slowed down everything you did with it.
With the car roughly covered, I settled down with the zoomed view to fine-tune the mask. I selected Undefine from the Edit.Mask-Edit-Options menu, now whenever I painted to the canvas with any of the tools it would undefine the mask under those pixels. With this I could 'sculpt' the mask to fit the contours of the 'vette perfectly. This is where the option to select the entire canvas as a mask came in handy, especially when creating protection masks (more on that later). This is similar to how artists will paint a mirror black, let it dry and scratch out their drawings with a sharp point (and thus get a nice silver-against-black effect). You can 'scratch' out the objects and scenes you're interested in. If it's easier to define what the object isn't than what the object is you can simply mask those parts and select Invert from the Edit.Mask-Edit-Options menu. Everything that isn't masked will become masked, and vice-versa.
As I chiseled away the mask for the car I had to switch between different brush sizes for fine and coarse work. In most programs a brush shape and size is determined by a floating toolbox with buttons for diameter, shape, rotation, density etc. But with ColorWorks you just pick from the pre-defined brushes in the Brushes menu, a-la-Macintosh style. This may seem incomplete or crude, but to be quite frank I found it quicker and more convenient - no messing around with the controls, just click-click-done. ColorWorks comes with 35 preset brushes and a density control (to 'blur' the edges of whatever brush is in use), but the user can define more.
When I was satisfied that the car was properly masked, I selected Image Mask from the Edit.Save-Mask menu - the mask was now committed to memory as an image mask (other types are Protection Mask and Distortion Mask). I could now choose Float-Image-Mask from the Edit menu and the 'Vette became a free-floating object on the canvas. I created a new blank canvas and moved the floating car to it by right-dragging it to the new window. Then I saved the file, ready for when I'd need it later.
It also occured to me that I might as well play with a few of the effects from the Effects menu as well, so I chose Channel-Swap and swapped the blue channel for the green channel, thus turning a blue Corvette into a green one.
Well, picture complete (30k jpg)... almost. I hadn't done a perfect job of clipping out the 'Vette in the first place, and since I'd swapped the color channels it had a slight 'halo' around parts of it. I zoomed up on the offending aura and blended it out with a diffused brush.
But one feature that really stands out and shows off OS/2's multithreading architecture is the ability to work on a canvas even while other draw operations are still running on it. If a complex chain of effects is being computed you can still go ahead and edit the same picture. ColorWorks will ensure that everything is done in the right order and won't mess up your work.
What's more, you can use multiprocessing and open multiple views of the same picture. This is especially usefull for editing in zoomed mode. You can zoom in with one window while keeping the other at original size. All drawing operations performed on one window will be reflected in the other, and vice versa.
The error prone will enjoy a configurable undo of up to 256 levels, customizable on a per-canvas level (meaning one canvas can have all 256 levels activated, and another scrap-pad canvas can have only a few,). That, coupled with the DIMIC, can really make ColorWorks easy on the RAM challenged user. As I will point out, I did quite nicely with only 8 megs installed on my machine.
Speed could be a bit better too. Even with DIMIC off freehand drawing wasn't as smooth and connected as I would like it to be. A faster processor/more processors (remember it's SMP enabled up to 64 CPUs)? Maybe, but I think the routines could do with a bit more optimizing. Thanks to its heavy use of multithreading the program was very responsive, and I was able to take it up on its claim that you can edit a picture even while other draw operations are taking place. ColorWorks will not give you the hourglass cursor unless you really ask for it.
I'd like to see more brush styles available too. Charcoal, pastels, watercolors, that sort of thing. Wider file format support would be convenient - it'd save all those trips to PMView converting back and forth between formats.
One of the nice things about image editing is that it's fun and challenging. It's also highly portable, since with so many graphics formats available it's easy to open the same file in a different program to apply that one effect that only that program has.
Of course it's more convenient to be able to use only one image editor for all of your work; that's where the idea of plug-ins came from. ColorWorks doesn't support the Adobe Plug-in format, in fact I can think of no native OS/2 image processors that support Adobe Plug-in. So that's what I'd put on the top of my wish-list; a native OS/2 version of the Plug-in standard, maybe get KPT ported over, wouldn't that be nice?
One last thing - SPG really ought to clean up the user interface a bit in version 2.0. For example I found that switching between defining and undefining a mask was a commonly used operation, but it's buried at the very bottom of the Edit menu. A row of radio-buttons at the bottom of the screen would be much much better.
Send a letter to the editor.
Contents | Previous Article | Next Article
Copyright © 1995 - Falcon Networking