Linux Goodies

In Pursuit Of The Perfect O/S



A Review of The Light-Weight MtPaint Painting Program

Amazon Computers

MtPaint, A Lighter Paint Utility

Bowl This T-shirt

If you are a little intimidated by the heavy-duty paint programs like Photoshop or Gimp, then perhaps you should check out MtPaint, a capable but much lighter bitmap image editor. It has many of the features of the big fellows, but consumes far less resources, runs faster, yet has many of the common features you likely need. If your system bogs down with the big boys, MtPaint may be just the ticket.

In fact, the image shown in the MtPaint screen grab above was designed using MtPaint and placed on a bowling shirt image at my Cafepress Bowling Duds store. You can see the image on shirts just by clicking on it

As I describe the features of MtPaint, I'll often compare them to the GIMP, as it's a painting program very commonly used, and one that I have experience with. I'll try to relate the features of MtPaint to corresponding ones available in Gimp, and also list some of the features that Gimp has that MtPaint does not.

MtPaint Has The Common Paint Tools

First of all, much like Gimp, MtPaint lets you draw on a digital canvas. You can set the size of the canvas, and resize it even after you've started drawing on it. You can freehand draw with the mouse or a drawing tablet using a large selection of brush styles and sizes. MtPaint has a number of random pixelized brushes you can use for a spray paint effect, as opposed to the Gimp spray-painting tool.

Like Gimp, MtPaint has a line-draw tool to draw independent or connected straight lines. And like Gimp, MtPaint has functions that let you easily draw squares, rectangles, circles, and ovals. There's a combination tool that lets you draw polygon shapes or freehand shapes, and a smudge tool that lets you create additional artistic effects. But there isn't a Belzier curve tool as in Gimp. The lack of Belzier curves makes drawing objects with arbitrary smooth curves difficult.

MtPaint lets you select or change the color of any of the drawing tools in a number of ways. There's a handy color bar along the left margin of the MtPaint display, but you can also choose color tools that let you click on colors displayed in a palette gradient, or even enter the red, green, and blue values of the color you want. Like the Gimp color picker tool, there's a color picker tool in MtPaint that lets you set the brush color to a color that's already somewhere on the canvas.

MtPaint Does Gradients

As with Gimp, MtPaint's rectangle and oval drawing tools let you simply outline the rectangular or oval shape in the chosen color and with the chosen brush size, or fill the shape with a solid color or gradient. A paint tool similar to the one in Gimp is also available for filling in a bordered shape, or changing the color of an existing shape.

MtPaint 2 color gradient
Two Color Gradient

MtPaint multi-color gradient
Multi-Color Gradient

Like Gimp, MtPaint's gradient tool offers several options for controlling the the nature of the gradient, including linear, bi-linear, radial, square, angular, and conical. Any fill style can also be selected as a repeating pattern. The gradient tool usually makes a gradient between color A and color B (the two currently selected paint colors) as in the upper image in the above illustration. But gradients composed of many colors are possible, as in the lower image.

MtPaint gradient tool
Settings Toolbar

Implementation of the MtPaint gradient tool is less sophisticated in application method than the Gimp implementation. With Gimp, you can select a gradient style and paint it into any arbitrary shape. With MtPaint, you must bring up the Settings Toolbar shown above and click on the gradient bar to activate gradient fill. You must likewise click again on the gradient bar to get back to single color painting. It's an easy step to forget, and if you forget you'll wonder why the test gradient you can create on the screen isn't used to fill the selected shape.

At least from my experience, it appears that MtPaint can only paint a controlled gradient directly into a rectangle or oval as created by the rectangle or oval selection tools, except for a default gradient from the center pattern. To get a controlled style gradient into an arbitrary shape, I've had to fill an appropriate sized rectangle with the gradient, then use the polygon/freehand selection tool to cut the shape I want out of the gradient pattern.

MtPaint Does Layers

MtPaint layer menu
Layer Tool

A very important paint feature for creating more complex designs is the ability to use layers. I almost always make use of the Gimp layers when I create a new t-shirt design.

Layers are stacked canvases that let you keep objects independently alterable by having different objects each on their own canvas layer. If you place each object on its own layer, you can independently move the objects around, and place them in front of or behind other objects just by selecting the stacking order of the layers.

Happily, MtPaint offers the concept of layers, and does so in a way that gives most of the functionality of the Gimp layering system. One handy layer capability that Gimp offers that MtPaint does not is the ability to chain selected layers together so that moving an object in one of the layers will move all of the chained layers together. With MtPaint, objects in the different layers must be moved around independent of all other layers.

Even so, MtPaint offers quite a number of options one can do to layers, including:

  • Drag and drop an image into a layer.
  • Grab a window into a layer.
  • Convert from indexed palette to RGB, or vice versa.
  • Scale layer up or down in size.
  • Resize layer canvas.
  • Crop layer size.
  • Flip layer horizontally or vertically.
  • Rotate layer +/- 90 degrees.
  • Rotate layer by arbitrary angle.
  • Skew layer horizontally and/or vertically.
  • Set which color is to be transparent.
  • In addition to the controls on the layer tool, other layer handling options are available in the layer pull-down menu. The combined layering options in MtPaint are sufficient for creating some very complex image creation. The following additional operations are available from the MtPaint layer menu:

  • Paste text. You can select or enter by hand larger text sizes, then click in the text window to cause the size change.
  • Add new layer.
  • Remove layer.
  • Set transparent color for layer.
  • Select opaqueness of layer.
  • Swap position of layers.
  • Load or save layer from/to file.
  • Merge selected layers to new layer.
  • Merge selected layers and save to file.
  • Configure animation.
  • Preview animation.
  • Set key frame.
  • Remove all key frames.

  • The animation support in MtPaint is very interesting. I've created simple gif animations with Gimp. It's a process that makes use of layers. I made each layer to be a frame of my intended animation, then selected a Gimp option that creates an optimized set of layers ready to save as an animated gif. I was then able to select the delay time for each frame, then save the animated gif. There is a plugin for Gimp called Gap that helps automate the making of animations.

    MtPaint can create animated gifs using layers in a very similar way. You can create each layer as an animation frame, then save the layer with a specific file name, such as frame-001.gif. Each layer can be saved as another frame file, adjusting the count for the desired sequence in the animation, like frame-002.gif ... frame-00n.gif. Then under the file menu pull-down, you can select Export animated GIF and fill in the frame delay and an output file name for the animated gif that combines all the saved frames. Note that the layer images that are to make up an animated gif must use the indexed palette.

    But MtPaint can create animated gifs with even less work, especially if what you want to do is move objects around, and/or adjust their opaqueness. So what takes a plugin for Gimp is built in with MtPaint. The procedure can seem a bit confusing at first, but it really is pretty logical.

    First create or load a background layer, then create the objects you wish to animate -- each in its own layer if you want independent motion, then save each layer and use the layer menu save as, which saves a text file listing all the layers.

    Then position each layer to the desired first frame positions using the position section of the layer tool and select the Set Key Frame layer utility to set the frame number for that layering configuration. Then move the objects (layers) to new positions and select the opaqueness if desired, and select the Set Key Frame again to enter the frame number for the new layering configuration. If you want the change in positions and/or opaqueness to take 10 frames for example, then enter 10 in the Set Key Frame pop up.

    Once all key frames are defined, select Save or Save As from the Layers menu so that the key frame definitions will be saved along with the images in the layers. Finally, select the Configure Animation tool from the Layers menu and use it to define the total number of frames in the gif and the delay between frames, then generate the animation. The neat part is, you don't have to create each frame by hand, just frame configurations for end of transition positions. MtPaint will interpolate the changes and make the intermediate frames.

    MtPaint Animation

    The image above is an example. I was able to create only 4 layer configurations, but end up with a 25 frame animation (30 counting redundant frames at the end to create a pause). The animation gives an example of what one sees through the Cheshire alignment eyepiece with aligning a Newtonian telescope. A web page on the collimation operation is at Newtonian Collimation for any amateur astronomers out there.

    I created layers for each of the two labels, and of the concentric rings which represent the eyepiece (blue), the secondary mirror (purple), the primary mirror (green), and the reflection of the Cheshire eyepiece (red). The 4 Set Key Frame configurations were the initial out of alignment and label 1 (frame 1), end of secondary alignment (frame 10), label 2 instead of label 1 (frame 14), and completion alignment (frame 25). MtPaint generated all the intervening frames with linear interpolation to make the in between movements.

    The banner below was also constructed with a few instruction in Mtpaint. It shows a penguin peeking around a laptop. Only about 4 key-frames needed to be defined for Mtpaint to construct the entire animation.

    Amazon Computers

    MtPaint Works On Selections, With Some Limitations

    While these features compares favorably with the Gimp layer features, what one can do with subsections or selected areas of a drawing within a layer in MtPaint is more limited than what one can do in Gimp. Only the following operations can be done to a selected area within an MtPaint layer:

  • Rotate +/- 90 degrees, but not arbitrary angles.
  • Lasso a selection with or with/out cutting the original object.
  • Cut and paste selected areas.
  • Fill or outline rectangle, oval, or polygon.
  • Flip horizontally or vertically.
  • Draw a horizontal or vertical gradient between two points or lines.
  • Save/restore and object to/from 12 selectable clipboards.
  • Blend objects together.
  • The blend objects feature needs some explanation. The cut and paste features of MtPaint, while generally adequate, seem sometimes a bit primitive. Take for example the images below:

    MtPaint blend example 1
    Text And Object
    MtPaint blend example 2
    Pasted Text
    MtPaint blend example 3
    Blended Text

    In the above example, the first image shows some text in blue and a rectangular object in purple. The second image shows what happens when the text is selected with the rectangular select tool and lassoed with the lasso tool (to eliminate any surrounding background), and pasted onto the rectangle. Notice that the internal portion of the O's doesn't paste as you might expect.

    The right most image shows the result of copying the text and using the Blend tool from the selection's menu. Now you see the text painting onto the rectangle more like you might expect. This give a bit of flavor of how tools in MtPaint are. Many seem more primitive than you are perhaps used to, but you can usually find a way to accomplish what you want.

    Also notice that unlike with Gimp, the selected area operations in MtPaint are more limited than what you can do to an entire layer. For example, in MtPaint you cannot rotate a selected area by an arbitrary angle, or skew just a selected area. So you find you must cut a selected area and paste it into its own layer to do some operations that Gimp provides to just a selected region of a layer.

    MtPaint Offers Plenty Of Color Management

    As to color management, MtPaint lets you have an indexed color palette or an RGB palette. The number of RGB levels can be whatever you like up to a 24 bit level. Two colors at a time are selected, labeled A and B. A is the current painting color, and B is used in conjunction with A for gradients.

    You can also perform the following functions to control the palette:

  • Save a palette.
  • Load a palette.
  • Mask or unmask all colors.
  • Swap colors A & B.
  • Edit color A & B.
  • Dither color A.
  • Use palette editor
  • Set palette size.
  • Merge duplicate colors.
  • Remove unused colors.
  • Create quantized palette.
  • Sort colors.
  • Use palette shifter.
  • Pick gradient.
  • MtPaint Has Limited Special Effects

    MtPaint has a very usable set of special effects, though for the most part it's a small subset of the big list of effects included in Gimp. Included in the MtPaint arsenal are:

  • Transform color (gamma, brightness, contrast, saturation, hue, posterize).
  • Invert colors.
  • Set color to gray scale.
  • Isometric transformation of layer.
  • Edge detect (several algorithms).
  • Difference of Gaussians.
  • Sharpen.
  • Unsharp mask.
  • Kuwahara-Nagao Blur, approximates the Gimp Oilify effect.
  • Emboss.
  • Dilate.
  • Erode.
  • What's missing from MtPaint in comparison to Gimp is the Gimp's extensive list of distorts, such as curve-bend, iwarp, ripple, and many others. Many of these are what I'd call non-linear distortion effects. MtPaint primarily provides linear effects.

    Additional Control Using Channels

    MtPaint has three channels and a menu for controlling them that offer some additional image control. The three channels are alpha, selection, and mask. Often you can achieve the effects of a control included in Gimp by executing a sequence of MtPaint channel tool commands. For example, Gimp has a tool that lets you select canvas objects by color, or range of color. Then manipulations, such as painting or inverting are done to all objects on the current layer that are in the color range selected.

    Using the MtPaint mask channel, MtPaint lets you either mask a color, which protects it from things like changing hue or contrast, or protect all but the color indicated. Then alterations like hue, brightness, etc. will work on all objects in the canvas with the inverted mask color, but not areas that are some other color.

    The alpha channel lets you have some control over how transparency is handled. The selection channel lets you do things like turn an arbitrary shape or even some text into a cookie cutter, which can then be used to extract that shape from an image.

    While there are interesting capabilities offered through the use of the channels, the necessary manipulations are often arcane and difficult to figure out. The html help file that comes with MtPaint describes how to use the channels to accomplish special image controls, but it's difficult to extend those instructions to new situations you might encounter. The channels menu has the following options:

  • Create new channel.
  • Load channel.
  • Save channel as.
  • Delete channel.
  • Edit image.
  • Edit alpha channel.
  • Edit selection channel.
  • Edit mask channel.
  • Configure overlays.
  • Notes On Putting MtPaint To Work

    With all of these tools and options, you can see that MtPaint is certainly a capable image manipulator or creator. All of the listed tools can be applied to digital photographs, or drawings you make from scratch. With tools like gradient, channel controls, and layers, quite complex images can be created and manipulated with MtPaint.

    In my own work, I use bitmap paint programs to create illustrations for my web pages, and I create graphic designs for some Print On Demand (POD) suppliers. I have designs on a number of products at Cafepress Bowling Duds and Keen Designs . Obviously some of the designs are bowling shirts, but the Keendesigns shop has designs on astronomy, physics, Linux, and general humor theme products.

    I've created the vast majority of my designs with Gimp. But to wring out the capabilities of MtPaint, I created a few designs with it, and found that probably 80 percent of the things I've created could probably have been done with MtPaint. So one could definitely go into the POD business with MtPaint if they didn't like the complexity of bigger software products, or were working on modest computer equipment.

    Limits On The Scaling Tools

    The feature of MtPaint that I found most restrictive was the collection of scaling tools. While MtPaint offers a number of scaling algorithms, none of them did as good a job as the scaling tool in Gimp. Sometimes, depending upon the color transitions at the edge of an object, the MtPaint scaling tool will leave a ragged edge, or an edge of a different color than the drawing, or even some disjointed dots or lines along the edge. Below are some examples of how well some of the scaling tools worked when scaling up a simple filled circle:

    MtPaint Circle Fill
    Circle Fill Segment
    Nearest Neighbor Scaling
    Scaled With Nearest Neighbor
    Bilinear Scaling
    Scaled With Bilinear
    Blackman-Harris Scaling
    Scaled With Blackman-Harris

    The above left-most image shows an edge segment of the initial filled circle. It shows no color anomalies along the edge, just the normal pixelization. The next image shows the edge of the circle after being scaled up by a factor of four using the simple Nearest Neighbor scaling option. While it's a simple algorithm, it cleanly expanded the image without distorting the edge of the image. For my t-shirt work I found it to be the most trust-worthy scaling option.

    The next image shows the result of scaling up the circle with the Bilinear option. Notice that a dark edge has appeared surrounding the image, created by the scaling algorithm. And finally, the right-most image shows the result of scaling up the circle with the Blackman-Harris scaling option. This algorithm not only created a dark outline of the image, but a shadow outline of the image that stands apart from the edge of the object. I have never encountered these odd effects with the scaling options provided by Gimp.

    Other than the MtPaint scaling tool, the other tools worked well, and I was able to create the designs I had in mind.

    As to ease of design creation, I'd call it about a draw between MtPaint and Gimp, within the limits of what MtPaint can do. Some operations were more difficult with MtPaint, especially when I had to use the arcane channel commands. But to be fair, some operations were a bit easier to accomplish with MtPaint.

    For the kinds of designs I create, I found that the following list of capabilities that exist in Gimp but not in MtPaint are the features I miss the most:

    Belzier curves for drawing or outlining with smooth lines.

    The ability to edit text within an image as text, not a bitmap drawing. Gimp retains knowledge of text blocks, whereas MtPaint can only work with text as such until it's placed on the canvas. Then it's just another bitmap shape.

    More options for manipulating selected areas of an image, such as rotation, scaling, skewing, etc.

    More ways to select an area of an image for further manipulation.

    A large list of distorts than can be applied to an image or portions of an image, like the curve-bend, iwarp, ripple tools and the light effects.

    The ability to save a multi-layered design as a single entity, to be restored later with all layers. With MtPaint, each layer must be saved separately.

    A larger selection of patterns for filling areas.

    The ability to create patterned sphere designs, like realistic bowling ball images.

    The ability to map images onto different shapes, like planes, spheres, and cylinders.

    The ability of using script-fu scripts to perform sequences of operations for special effects.