[3D Rendering Tutorial]
Bitmap EditabilityTom Arah looks at the varied ways of maximizing your flexibility when editing bitmaps.
Vector Flexibility v Bitmap Inflexibility
As you no doubt know by now, the central split in computer-based graphics is between vector and bitmap images. Vector images are defined mathematically as node-based objects while bitmap images are defined as grids of pixel values. This central difference leads to various ensuing qualities, the most obvious one being in terms of output. The resolution-independence of vectors offers pin-sharp quality whatever the size of output - ideal for text and logo-style graphics. The greater tonal flexibility of bitmaps, meanwhile, where each pixel's values can be arbitrarily different to the next offers more naturalistic end results - ideal for photographic images.
Often overlooked and just as significant, however, is the division the two imaging formats produce in terms of working practice. In a vector-based drawing no objects or qualities are absolutely fixed so that the ability to reposition, resize or recolour any existing path or shape is taken for granted. Moreover, because the information changed in such actions is so simple to record, it's possible to offer multiple levels of undo so that returning to an earlier editing stage is usually just a matter of repeatedly hitting Ctrl + Z. In short, the elements of a vector image always remain completely editable and completely flexible.
With bitmap programs, however, where the brush strokes and apparent shapes are recorded as pixel values just selecting the relevant pixels is a complex process (see Natural Selection in issue 46) and editing them can be nightmarish. Even the simple task of repositioning an object, for example, won't reveal the previously underlying pixels but will simply leave an unfilled hole. The problem is that, as each pixel can only hold one set of values, information on previous values is immediately lost whenever current settings change. A complete copy of the previous image might be held in RAM to offer an immediate undo, but when that is lost so is the possibility of returning to and editing a previous state. In short, there is no going back in bitmap editing as all changes are serial and permanent.
The ultimate consequence of these differences is that the user can feel far more in control of a vector-based image than a bitmap image. In particular the complete editability of drawing programs encourages experimentation whereas the once-and-for-all nature of bitmap editing discourages it. This is the default condition, but inevitably developers have come up with a number of solutions designed to improve the flexibility of bitmap editing.
The Control Centre
The first comprehensive system promising improved levels of bitmap editability was the infinite undo offered by Picture Publisher back in version 5. This works by recording the initial state of the image and all actions subsequently applied to it in a history list. Using the control centre dialog you can then select any previous editing stage, even one from a previous session, and have Picture Publisher reapply only these relevant commands to the original image. At a stroke this allows the user to try out ideas, combining the effects of various filters for example, without worrying that they will later regret the changes and be unable to go back. As the Micrografx slogan puts it you can now "do the undoable".
The Picture Publisher command-based approach has other advantages, the main one being that individual commands can now be deleted, reordered or new ones inserted and the image cooked to the new recipe. Even better, all those commands which are based on dialogs are shown in bold on the history list and double-clicking on them calls up the relevant dialog for re-editing. This means that if you have created an image with a purple background and optima text, but you're then told that the new corporate standards are green and palatino you can retrospectively change the settings and the image will be recreated accordingly.
This level of control is certainly impressive, but in practice the limitations soon mount. To begin with, to make the most of the control centre, you should constantly group all the work you do on an image into nested folders of commands which is asking a lot. More importantly, after editing the list and re-cooking an image, the appearance of occasional "command not available" errors which - while probably avoidable with more careful use - is hardly confidence-inspiring. The real problem though is that, if you have applied 100 editing changes to an image and just want to undo the last two actions, Picture Publisher still has to laboriously reapply each of the 98 necessary commands to the original image. As such, while Picture Publisher's infinite undo certainly offers greater control it actually ends up highlighting the in-built inflexibility of bitmap editing.
For a while it looked like market leader Adobe Photoshop was developing its own command-based editing system and with the ongoing development of recordable actions this is still possible. To a large extent the need for this has been bypassed, however, with Photoshop 5's introduction of the history palette. At first sight this looks much like Picture Publisher's control centre with its list of commands applied. In fact the system is very different as it is not command-based but state-based with the name of the action only there to remind you of which tool or command you applied. This state-based approach means that the actual pixel information changed in each editing action is stored in memory. The massive advantage this offers is that moving back to any earlier stage of the editing process is virtually instantaneous when you click on its associated command. This really does make experimentation simple.
The first downside of course is that the system is memory intensive. Only changed information is stored so that changing a single pixel on a 30Mb image doesn't require a full 30Mb backup, but the process still eats up RAM and scratch-disks at a frightening rate. Because of this the undo is not infinite like the command-based solution but by default is limited to the last twenty states. Worse, if the memory available is filled, the oldest states are automatically dropped without warning. Photoshop's state-based approach also inevitably means that there is no way to return to the state in a previous editing session as the image history is immediately cleared when the image is closed.
The main limitation of Photoshop's history-based approach, however, is that there is none of the flexibility of the Picture Publisher solution. You can return to an earlier stage but you can't add, delete or change a particular step and then automatically reapply your later editing actions. Instead if you edit an earlier stage in any way, all the subsequent grayed-out stages in the history palette are immediately lost. In fact this isn't absolutely the case as the History Palette's Allow Non-linear History option means that, if you return to an earlier stage and make editing changes, the subsequent states aren't discarded. This makes it possible to use a particular image state as the starting point for various editing experiments, but it immediately loses the clear serial structure of the history list.
A far better solution is offered through the use of snapshots. Using the command at the bottom of the history palette you can store any given state as a snapshot at the top of the palette. This permanently protects the image state from being dropped from the history list and clicking on it at any time will restore that state. By storing a snapshot, applying edits, creating a new snapshot and then returning to the first snapshot and repeating the process, you can create a number of snapshot variations. You can then instantly swap between the variations to see which end result you prefer.
The History Brush
This is impressive enough, but the Photoshop developers have taken things a step further with the history brush. This allows you to paint on the current image with any selected stage in the history list or any selected snapshot. This means that you can apply a command, store the result as a snapshot, return to the previous state and then use the snapshot as the history brush source. In effect this means that the history tool can be used to locally apply any Photoshop command or filter. By double-clicking on the tool icon it's also possible to change the tool's blend mode and opacity, to choose an impressionist application mode that drags and smears as you paint, and also to tie in the brush opacity and size to pressure.
Used in this way the history brush can be seen as the most flexible and powerful tool in the entire Photoshop armoury. As such, and taken together with the instant ability to return to a previous editing stage, there's no question as to which undo method is more useful in practical and creative terms. The problem is that the system's strengths come at a cost. Compared to the Picture Publisher command-based approach the power on offer is only available during the current session and, more importantly, only allows moving backwards and forwards through the existing editing states. The fact that changes no longer have to be seen as permanent is a huge advance but, compared to a drawing program, such step-by-step editability is still weak.
Of course the source of the total editability of the drawing program is the standalone, object-based nature of each of its elements. It is this that allows the size of the shape or the typeface of the text, to be retrospectively changed without affecting the rest of the graphic. In comparison the pixel-based bitmap approach is clumsily serial. However there is no reason that a more object-based approach can't be taken in a bitmap environment. It was Picture Publisher again which first introduced this feature with its image objects, but it is Photoshop that has made the feature its own with its system of image layers.
The Advantage of Layers
In Photoshop each layer acts as a normal bitmap grid the full size of the image but with areas of transparency that show the pixels in any underlying layer. Effectively the layers in an image work like a stack of acetates which can be reordered and repositioned. The emphasis is normally put on the use of layers for compositional purposes, but it's the all-round editing flexibility they provide that makes them so useful. By copying areas you want to edit onto their own layer they can then be handled independently of the underlying pixels. Moreover this editability remains fully intact until you decide to merge or delete the layer. In fact you could theoretically create a new layer before applying each brush stroke which would turn each stroke in the image into an independently editable pseudo-object.
What set the Adobe implementation of layers apart from the competition was the creative potential it enabled through palette-controlled features such as opacity and blend mode. With Photoshop 4 this creative flexibility was taken a step further with adjustment layers. These layers do not contain pixel information themselves but instead act as lenses to apply colour correction effects to the pixel information in underlying layers. What makes the adjustment layers so powerful is that the effects applied are non-destructive so that, with the underlying pixel values left unchanged, the effects can be retrospectively fine-tuned. This opens up the flexibility of bitmap editing enormously as the original information in the image can remain untouched - and so retrievable if necessary - at the bottom of a stack of non-destructive and editable pixel- and effect-based layers.
Working with layers in this way is a completely different experience to the normal step-by-step method of bitmap editing, but there are still limitations. Each layer offers some object-style flexibility in terms of repositioning or rotating but its true pixel-based nature becomes apparent when resizing. The difference to true vector-based editing also becomes clear when trying to edit brush strokes. Even selecting the stroke is a serious chore and trying to change its path or brush style is a non-starter. With text handling this is even more obvious. Once rendered the pixels that make up the bitmap text have no record of the text's current typeface or point-size so that changing the font or correcting a misspelling, for example, requires starting again from scratch.
This inflexibility of bitmap text handling is such a major handicap that the latest Photoshop has introduced another layer-based innovation. Now whenever text is added to an image it is automatically put on a new dedicated type layer. This offers true object-based editability so that using the Free Transform command you can interactively resize, rotate and skew the text without losing final output quality. Moreover double-clicking on the type layer calls up the text dialog where the text, typeface, kerning and so on can all be changed. Text is thus kept truly object-based and so completely editable until a pixel-based effect such as a filter needs to be applied, in which case the text must first be rendered.
All in all bitmap-based editability has come a long way over the last five years. In particular with its pixel-, adjustment- and object-based layers, its new history palette and the possibility of future action-based command editing, it's clear that Photoshop in particular has appropriated much of the working flexibility of the drawing programs. In comparison the major vector-based applications seem to have been caught resting on their laurels. There have been some attempts to graft on some bitmap power through in-place rendering and access to Photoshop plug-ins, but generally the drawing programs have seemed unwilling to dirty their hands with pixel-based processing.
Vector-based Pixel Effects
Suddenly though the situation has changed. Macromedia Fireworks is the first object-based program to fully appreciate the creative potential of pixel-based editing. In fact its end results are designed solely to be output as bitmaps. As such, not only can Fireworks render its objects in place and apply global filters to them, but it also offers true bitmap editing right down to the pixel level. Simply double-clicking on an object with the pointer tool renders the object to the image's current specified resolution and takes you into the dedicated bitmap-based image-edit mode where the values of each individual pixel can be controlled as desired.
What really sets Fireworks apart, though, are the pixel effects it offers while still working in object mode. In particular, while paths can be controlled absolutely precisely by editing their nodes, it's also possible to give them pixel characteristics to make them act like bitmap brush strokes. This is controlled through the brush style palette which offers a range of effects from watercolour through to charcoal - incidentally a far wider range than Photoshop itself offers. It's important to realise that these strokes are not vector-based equivalents - similar to those created with Metacreations Expression - but true bitmap effects as you can see by the pixelization apparent when you zoom in over 100%.
The beauty is that despite their pixel characteristics the effects are completely vector editable. This means that it's not only possible to change the position of a brush stroke that has already been applied, but its colour, width and every aspect of its appearance - the new pixel information is simply reapplied along the existing vector path. The default effects are very impressive and naturalistic enough for most purposes, but Macromedia even offers a path scrubber tool to enable the width and opacity of the stroke to be interactively varied along its length. And of course, if this isn't enough control, you can always double-click on the stroke and edit its individual pixels - though this should only be used where absolutely necessary as it means the end of the object-level control.
The editability and creative flexibility that Fireworks' object-based approach offers is a revelation and clearly represents the future for bitmap production. At the moment the implementation is targeted at the production of small screen-resolution web graphics, but scaling the technology up to print-based work should be straightforward if resource-hungry. As such, Fireworks opens up a future where the inherent distinction between vector and bitmap is largely transparent to users and where they can simply enjoy the creative end results of pixel-level control and the working flexibility of object-level control.
In the future the advances in terms of bitmap flexibility that have been built up through command lists, history lists and the various uses of layers will all undoubtedly continue to play their part. In the long run, however, I think that it will be this development of vector objects with pixel characteristics which will finally deliver the complete creative flexibility that users are looking for. It is by this squaring of the circle - the combination of the best of both vector and bitmap - that users will truly be enabled to do the undoable.
Hopefully you've found the information you were looking for. For further information please click here.
For free trials and special offers please click the following recommended links:
For further information on the following design applications and subjects please click on the links below:
[3D], [3ds max], [Adobe], [Acrobat], [Cinema 4D], [Corel], [CorelDRAW], [Creative Suite], [Digital Image], [Dreamweaver], [Director], [Fireworks], [Flash], [FreeHand], [FrameMaker], [FrontPage], [GoLive], [Graphic Design], [HTML/CSS], [Illustrator], [InDesign], [Macromedia], [Macromedia Studio], [Microsoft], [NetObjects Fusion], [PageMaker], [Paint Shop Pro], [Painter], [Photo Editing], [PhotoImpact], [Photoshop], [Photoshop Elements], [Publisher], [QuarkXPress], [Web Design]
To continue your search on the designer-info.com site and beyond please use the Google and Amazon search boxes below:
|designer-info.com: independent, informed, intelligent, incisive, in-depth...|
All the work on the site (over 250 reviews, over 100 articles and tutorials) has been written by me, Tom Arah It's also me who maintains the site, answers your emails etc. The site is very popular and from your feedback I know it's a useful resource - but it takes a lot to keep it up.
You can help keep the site running, independent and free by Bookmarking the site (if you don't you might never find it again), telling others about it and by coming back (new content is added every month). Even better you can make a donation eg $5 the typical cost of just one issue of a print magazine or buy anything via Amazon.com or Amazon.co.uk (now or next time you feel like shopping) using these links or the designer-info.com shop - it's a great way of quickly finding the best buys, it costs you nothing and I gain a small but much-appreciated commission.
Thanks very much, Tom Arah
[DTP/Publishing] [Vector Drawing] [Bitmap/Photo] [Web] [3D]
[Articles/Tutorials] [Reviews/Archive] [Shop] [Home/What's New]