About UltraPaint

UltraPaint is a high- and true-color image editor for Windows
95, Windows 98, Windows NT and so on. It's loaded with many image
effects, draw techniques and effects. It doesn't have all
of the stuff that more expensive packages like Photoshop come
with, but it beats Microsoft Paint out of the water and offers a very
cheap alternative to other shareware programs like Paint
Shop Pro and LView.
This program was not intended for the novice, although I have
included a tutorial to try and help
people get started using it right away. Actually, it was
originally designed for making graphics for video games, and is
currently (3/99) being used to develop a DirectX platform game.
Features Include
- Standard draw primatives (freehand, Lines, Ellipses,
Rectangles, Flood filling, Text
- Text drop shadows
- Two flood-fill methods; color recognition tolerance.
- Border on flood-filled areas
- Spraypaint, regular polygon, color dropper tools
- Supported file formats: .BMP, .JPG, .ABM. I would like to
support .GIF, but unfortunately the company that owns the
patent n the format charges like $10,000 for even the
most pathetic licence.
- Thanks to IJG (the Independant JPEG Group) for
their public library code, and to Smaller Animals
Sofware (www.smalleranimals.com) for their
JPEGlib2 front-end code.
- Effects
- Blur (blocky or fuzzy)
- Negative
- Grayscale with hue/brightness exclusion
- Color swapping, find-and-replace
- Primary color component swapping
- HSL effectsadjust hue, brightness,
contrast, saturation; find the optimal brightness
for a given image
- Draw modes change the behaviour of draw primatives
- Select mode selects a portion of the image rather
than drawing
- Draw and select mode generates a selection in a
layer on top of the image, rather than drawing
directly on the image.
- All drawing can use alpha blendingthat is, anything
you draw can appear semi-transparent.
- Two-color gradients
- Built-in top-to-bottom, left-to-right, diagnal,
circular gradient modes
- Use another bitmap as a gradient
- Texturesuse another bitmap to draw anything, rather
than a solid color.
- Five built-in pens for drawing outlines; create custom
pen patterns.
- Five magnification settings
- Flip horizontally/vertically
- Single-focus digital deform
- Rotate/scale selections
- Smooth image resizing
- Draw grid to align draw primative start/end points
- HSL or RGB color pickers; triple spin controls for
fine-tuning RGB color choice.
System Requirements
This program is a member of a new breed of programs: ones that
are cheap, packed with awesome features, and slow. In my
hurry to pack in tons of cool features, speed and reasonable
memory requirements became a low priority. This program is, as a
result, targeted at people with modern, fast computer systems.
Minimum Tolerable System
- Processor: 100Mhz Pentium or equivalent
- Memory: 32MB. 16MB would be okay as long as you aren't
running other memory-hogging apps and aren't editing
really big images.
- Video: 16-bit color, 800x600
When using such a system, keep the size of your editing window
small. The speed of the draw primatives is inversely
proportional to the area of the edit window. So if
you maximize the edit window, you will find it intolerably slow.
Use a small window if possible.
Reccomended System
- Processor: Pentium II 233Mhz or Celeron 300Mhz
- Memory: 64 MB RAM
- Video: 24-bit color; 1024x768
Memory usage of loaded images
When an image is loaded into memory, it uses a lot more memory
than it does on disk. First of all, it is uncompressed. So JPEG
images, which might have a compression ratio of 10:1, would
expand to ten times the original size upon loading up. But that's
just the beginning. There's also:
- A 32-bit selection layer, which is the same size as the
image. If editing a 16-bit image, then this layer alone
takes up twice as much memory as the image!
- An optional undo buffer, the same size and color depth as
the image.
- A 24-bit window buffer, whose size is directly
proportional to the area of the editing window. If you
maximize the window at 1024x768, it takes up almost
700KB!
- An extra-image buffer. During any operation that has a
"Revert" button (such as the deform tool), the
original image data is stored in an offscreen buffer. The
size of this typically 32-bit buffer is equal to the area
of the extent of the selected image data (so a smaller
selection uses less extra memory.)
By the way, it's not enough to have a lot of virtual memory
either. Most drawing operations touch four of these buffers. When
you draw a line, for example:
- The selection layer is cleared, touching all the memory
it uses
- The line is drawn to the selection layer
- The image is copied to the undo buffer
- The selection layer is merged with the image, performing
any alpha blending that may have been enabled.
- The selection layer is cleared again.
- The entire window buffer is updated.
This program is therefore guilty of being a memory hog. Since
all the memory is touched, it must be present as RAM; if
you don't have enough memory to hold it all at once, there will
be incredible hard drive thrashing as all that memory is swapped
to an fro on disk. I must boast, however, that UltraPaint does
have a good startup time... it even starts faster than the
pathetic MS Paint! :)