"Personal Paint - 5. The Brush Menu" 5. The Brush Menu 5.1 Load Brush 5.2 Save Brush 5.3 Print Brush 5.4 Process Brush 5.5 Restore Brush 5.6 Free Brush 5.7 Paint Mode 5.7.1 Matte 5.7.2 Color 5.7.3 Replace 5.7.4 HBrite 5.8 Color 5.8.1 Remap 5.8.2 Complement 5.8.3 Change Background to Foreground 5.8.4 Swap Background and Foreground 5.8.5 New Transparency 5.8.6 Flood Transparency 5.8.7 Next Transparency 5.8.8 Copy Image Palette 5.9 Clipboard 5.9.1 Read Brush 5.9.2 Write Brush 5.9.3 Empty 5.10 Resize 5.10.1 Stretch 5.10.2 Smaller 5.10.3 Bigger 5.10.4 Halve 5.10.5 Halve Horizontal 5.10.6 Halve Vertical 5.10.7 Double 5.10.8 Double Horizontal 5.10.9 Double Vertical 5.11 Rotate 5.11.1 Any Angle 5.11.2 90 Degrees 5.11.3 Horizontal Flip 5.11.4 Vertical Flip 5.11.5 Shear 5.12 Chop 5.12.1 Info 5.12.2 Edges 5.12.3 Planes 5.12.4 Hidden 5.13 Outline 5.13.1 Simple 5.13.2 Square 5.13.3 Shadowed 5.13.4 3-D 5.13.5 Trim 5.14 Handle 5.14.1 Custom 5.14.2 Upper Left 5.14.3 Upper Right 5.14.4 Center 5.14.5 Lower Left 5.14.6 Lower Right 5. The Brush Menu *** See Fig 5-1 *** Sections 3.1.1 ("Default and Custom Brushes") and 3.1.6 ("Define Brush") introduce some general concepts about the brush and how it can be used. This chapter explains in detail all the functions which can be applied to the brush to load it, save it, set the drawing mode, apply color changes, transform it or change the position of the handle. A custom brush must be defined before most of the functions explained in this chapter can be used. Several menu items are automatically disabled (section 1.9.6 "Menus") when the current brush is not a custom brush. 5.1 Load Brush This function is similar to Load Image (section 4.1), except that it loads the selected picture into the current brush. In most file formats supported by Personal Paint, there is no distinction between image and brush files. Some programs may or may not store additional information into the picture file (e.g. brush handle position or screen mode information), but this does not make the file less portable. Any picture can be loaded either as an image or a brush. Loading a picture as a brush does not automatically change the screen mode (size, colors, interlace mode, etc.) Conversely, loading a picture as an image adapts the screen mode to represent the image better, but also limits the number of bitplanes to the maximum allowed by the Amiga system being used. The screen format and colors are not changed when a brush is loaded. This may cause the brush to appear distorted (twice as wide or as tall as usual, etc.) over the underlying image, or with "random" colors. If the brush has different colors from the current image, it is possible to apply the colors of the brush to the image palette (section 7.1.7), or vice versa (section 5.8.1). The former will only work if the image has at least as many colors as the brush. Otherwise, the image format can be changed manually to increase the maximum number of colors which can be displayed (section 4.5.3). Personal Paint offers a more Chapter 5 - The Brush Menu 93 "intelligent" way of dealing with images having different colors: the Color Merge function (section 7.6). The fact that a brush can have more colors than the current image may be very useful. For example, Original and Enhanced Architecture Amigas cannot display 256-colors at the same time. Even on these systems, however, a 256-color brush can be processed, saved and printed without loss of data. The Chop Hidden Brush function (section 5.12.4) is most useful for cutting undesired parts of a very large brush. On screen, only as many bitplanes as are supported by the system are displayed. This generally gives an incorrect display of the brush (something which looks like "all colors wrong"). Internally, however, Personal Paint continues to process the original brush data, in up to eight bitplanes. When the Copy Image Palette function (section 5.8.8) is applied to the brush, the image colors also become those of the brush. Otherwise, the brush retains its original colors in a separate color map (even if it has to be displayed using the current screen colors). 5.2 Save Brush This function saves the current brush in exactly the same way that Save Image stores an image. The brush can later be reloaded as a brush or an image. If the IFF-ILBM format is selected to save the image, additional information on the brush handle position and transparency is saved. Saving parts which are smaller than the screen as brushes, rather than with the entire page which contains them, saves disk space. The "UIColors" files (section 1.14), for example, are better saved as brushes if they are stored on a limited capacity storage device like Personal Paint's program disk. "UIColors" files are an example of a particular "tricky" file: they should be saved as brushes if it is necessary to save disk space, but it is easier to load them as images, in order to use the correct screen mode and colors immediately. These files should always be saved in the IFF-ILBM format, which for both images and pictures stores information regarding the appropriate Amiga screen mode. Actually, if saving storage space has the highest priority, the "UIColors" files could be saved as simple palettes (section 7.1.2) as well. 5.3 Print Brush This function prints the current brush, in a similar way as the Print Image function which is described in section 4.3. Chapter 5 - The Brush Menu 94 On Amigas employing chip sets prior to the AA release, images which have more colors (bitplanes) than are supported by the system can only be printed as brushes. Loading and printing such a picture as an image would result in a loss of quality (which may be very small, using the advanced options of Personal Paint), because the picture has to be adapted to the best available Amiga screen format. The ratio of the current environment is used to print the brush. This may result in the picture being distorted (just as it appears on the screen - section 5.1), if the brush is taken from an environment having a different display ratio. The appearance of an image can often be improved by selecting the appropriate screen mode (section 4.5) before printing it. For example, a GIF image measuring 320 by 200 pixels may appear "squeezed" if printed from a low resolution 320 by 200 PAL-mode environment, while it might look better if printed from an NTSC screen with the same resolution. 5.4 Process Brush This command applies Personal Paint's image processing functions to the current brush, as is described for images in section 3.1.4. When a Dispersed, Clustered or F-S Type filter is applied to the brush, the color palette of the current environment is copied to the brush palette, since these dithering techniques employ the current foreground and background colors to simulate different color shades. 5.5 Restore Brush This command undoes the last transformation applied to the brush (including a load operation), restoring its original appearance. If an operation of the same class has been consecutively applied several times (e.g. a resize, rotation, transparency change, etc.), the brush is restored to the appearance it had before the first of such transformations was applied. 5.6 Free Brush This function clears the current brush and frees all the associated memory resources. Since it cannot be reversed by Restore Brush, a warning message asks for confirmation. 5.7 Paint Mode *** See Fig 5-2 *** Different paint modes can be applied when using custom brushes. Each mode yields different results when a brush is pasted onto the image with Chapter 5 - The Brush Menu 95 the mouse. A different symbol on the title bar is associated with each setting. Unless otherwise specified, the current background color is used for the entire brush when the right mouse button is used for painting. 5.7.1 Matte In this mode, brushes are painted with their own colors. Areas defined as transparent are not copied. By default, these areas are associated to background colored areas when the brush is defined. Sections 5.8.5 to 5.8.7, and 8.14 explain how to further specify the areas which should be considered transparent. 5.7.2 Color In this mode, the entire brush (except its transparent parts) is pasted in the current foreground or background color (depending on which mouse button is used.) 5.7.3 Replace Like Matte, this mode paints with the individual colors of the brush. The brush transparency information is ignored. 5.7.4 HBrite When Painting in Extra Half Brite screen mode (section 4.5), where 32 colors can be freely set and the other 32 are darker shades of the first 32, it is particularly useful to alternate quickly between the two associated states of a pixel. This mode is similar to Color, in that all non-transparent brush pixels are treated in the same way. If the left mouse button is used for painting, all image pixels under the brush are turned to their darker HBrite color. Painting with the right button activates the lighter color of each pair instead. 5.8 Color *** See Fig 5-3 *** All items in this menu are used to apply color and transparency changes to the brush. 5.8.1 Remap When a brush is loaded or imported from an environment having a different color palette, it may become necessary to render the original brush as accurately as possible without disturbing the colors of the Chapter 5 - The Brush Menu 96 current image. While Color Merge (section 7.6) compares, changes, combines and mixes all colors of all pictures involved, Remap only changes the current brush. Remap chooses the colors in the image palette which most closely resemble the original colors of the brush. Dithering and error diffusion are applied to the brush if the corresponding options have been activated (section 8.7). After a remap, the brush has the same number of bitplanes as the current screen. 5.8.2 Complement This command exchanges the colors of the brush by selecting for each color position in the palette the complement of the binary number associated to that position. This may be useful, for example, for programmers to see how an image might look with Intuition's complement highlighting (which is used for gadgets, icons, etc.) 5.8.3 Change Background to Foreground This function sets all background-colored pixels in the brush to the foreground color. It provides a very selective way of changing only certain colors in the brush. When working on images rather than brushes, similar area-oriented results can be obtained by masking the color which is not to be changed (section 7.2.3) and then painting a filled rectangle (section 3.1.2.6) over the desired area. 5.8.4 Swap Background and Foreground This command exchanges the brush's background colored pixels with those in the foreground color, and vice versa. This function can be used, for example, to recolor Workbench icon images originally designed for 1.x operating systems for use in newer versions. To do this, the foreground and background colors should be set to the second and third color in the palette, respectively. 5.8.5 New Transparency Each brush may have transparent areas which do not affect underlying parts of an image when pasting. The transparent area is defined by an additional bitplane which may either be associated to a particular color (e.g. the background color), or have a custom defined shape. This bitplane is loaded and saved with the brush in the IFF-ILBM file format. By default, this command redefines the transparent area, making it Chapter 5 - The Brush Menu 97 equal to the parts having the current background color. The setting of the Backfill Transparency option (section 8.14) determines whether, upon definition of a brush, its transparency is to be equal to the background color, or to the single-colored area which surrounds the brush. The New Transparency option makes it possible to apply the new transparency to an already defined brush. 5.8.6 Flood Transparency The position of the brush handle, which can be set as explained in section 5.14, is used as the starting point of a "flood fill" operation which makes the selected area (i.e. group of pixels having the same color) transparent. The brush image itself is not modified: only the bitmap which defines the transparency is modified. Conversely, if the selected area is already transparent, it is made opaque again. 5.8.7 Next Transparency As explained before, each brush has an associated bitplane which describes the areas to be considered transparent or opaque. Personal Paint allows the user to define and use up to nine different brushes at the same time. If the brushes have the same size, the transparency plane of one brush can be used for another brush. This command applies the transparency plane of the next brush to the current one. In this process, empty brushes are skipped. If necessary, Personal Paint searches through all brushes, starting again with brush number one after reaching the last one. By painting and defining a two-color brush with the appropriate size, it is possible to manually create a transparency plane to be used for another brush with higher precision than can be achieved with the normal background and fill transparency modes. 5.8.8 Copy Image Palette When a brush is loaded or imported from an environment having different colors from the current one, it conserves its original color palette even if it has to be displayed in the current environment colors. This command resets the brush's internal palette and makes it the same as the current environment palette. 5.9 Clipboard The Amiga operating system provides for a standard way of exchanging Chapter 5 - The Brush Menu 98 *** See Fig 5-4 *** data (mainly text and graphics) between one application and another, called the Clipboard. The content of the Clipboard is public, i.e. the data in it can be read and written by any program. Thanks to the Amiga Clipboard, for example, the user can drag a Workbench icon on IconEdit, pass it to Personal Paint, edit it and go back and use IconEdit again to save the the new image as an icon. If Personal Paint cannot open the Amiga Clipboard device ("clipboard.device" file in the system "devs" drawer), the functions which depend on it will not work. Some incorrectly written programs may lock the Clipboard under certain circumstances. This may happen, for example, with text editors that expect the Clipboard to contain only text, or software that does not read the Clipboard up to its end, and therefore does not release the resource for use by other programs. The Empty Clipboard function can be used to prevent similar problems where they are known. 5.9.1 Read Brush This command searches the Clipboard for graphical data. If a picture is found, it is copied to the current brush. The original data is not removed from the Clipboard. 5.9.2 Write Brush This function places a copy of the current brush to the Clipboard, where it can be used by other programs (as well as by Personal Paint). Any data previously contained in the Clipboard will be replaced by the new picture. 5.9.3 Empty This command clears the entire contents of the Amiga Clipboard, regardless of its type (graphics, text, etc.) This is useful in low memory conditions, especially if a very large brush which does not need to be used any more is still stored in the Clipboard. 5.10 Resize The functions described in the following subsections modify the size of the current brush, which can be either a program default brush, or a custom (user defined) brush. The brush is stretched to the new size. Section 8.15 explains how the Color Average Resize option affects brush resizing. Chapter 5 - The Brush Menu 99 5.10.1 Stretch *** See Fig 5-5 *** This function stretches the brush to any size indicated with the mouse. When this function is selected, the mouse pointer changes to the stretch symbol to indicate that the brush stretch mode is active. When the left mouse button is held down, the upper left corner of the brush remains "anchored", while the lower right corner reflects mouse movements, changing the size and shape of the brush. The new size can be specified by clicking the left mouse button, moving the mouse and releasing the button. If is held down, the brush can only be resized in accordance with its original aspect ratio. This means that the image can be resized smoothly, but not distorted (i.e. made taller or wider). 5.10.2 Smaller This command makes the brush smaller by the smallest possible step, maintaining the correct display ratio (i.e. X/Y proportions). 5.10.3 Bigger As with Smaller, this function makes the brush slightly bigger. 5.10.4 Halve This function halves the brush. The width and the height are halved, therefore the total brush surface is reduced to a quarter of the original brush. 5.10.5 Halve Horizontal This function is a subset of Halve. Only the width is halved, while the height is left unchanged. 5.10.6 Halve Vertical This function "flattens" the brush. The width is not varied, but the brush height is halved. 5.10.7 Double This function doubles both the horizontal and vertical brush dimensions. The resulting brush will have four times as many dots as the original brush. Chapter 5 - The Brush Menu 100 5.10.8 Double Horizontal This function is a subset of Double. The brush is doubled only horizontally. While the width is doubled, the height remains the same. 5.10.9 Double Vertical This function is a subset of Double. The brush is doubled only vertically. While the height is doubled, the width remains the same as that of the original brush. 5.11 Rotate *** See Fig 5-6 *** These functions perform various rotation operations on the brush. 5.11.1 Any Angle This command locks the lower left corner of the brush as soon as the left mouse button is pressed, and allows the entire brush to be rotated by moving the mouse pointer around. For speed reasons, an outline of the brush may be displayed while the rotation angle is defined. 5.11.2 90 Degrees This function rotates the brush clockwise by 90 degrees. The horizontal and vertical dimensions of the brush are reversed. If the brush is square (i.e. if it is as wide as it is tall, in dots) the dimensions do not change. The brush handle is repositioned in accordance with the rotation. If the function is executed four (or a multiple of four) times on the same brush, the resulting brush will be identical to the original brush. 5.11.3 Horizontal Flip The same flip functions already described in section 4.7, which modify the content of the entire image, also exist for brushes. This function transforms the image contained in the brush into its "mirror" image. The columns of dots, from the left to the right, which originally made up the brush image, are re-arranged in reversed order (from the right to the left). 5.11.4 Vertical Flip This function, like Horizontal Flip, modifies the brush image. The brush is turned upside-down each time the function is selected. The effect of this function can be undone by repeating the function an Chapter 5 - The Brush Menu 101 even number of times on the same brush. This is also true for Horizontal Flip. 5.11.5 Shear This command is similar to a combination of Stretch and Rotate. It can be used to freely apply different levels of distortion to the brush. As in these former modes, the lower right corner of the brush can be freely moved while the left mouse button is held down. If the mouse is moved horizontally, the top of the brush remains still, while its left part remains anchored if the mouse is moved vertically. Combined mouse moves produce intermediate results. It's a bit like pulling a thin sheet made of rubber. Like many other image processing tools, this one is easier to see and use than it is to explain. Holding down restricts the mouse to moving along the axis in which it is moved first. 5.12 Chop *** See Fig 5-7 *** The items in this menu are used to examine and optimize the amount of memory used to store a brush. 5.12.1 Info *** See Fig 5-8 *** This requester displays information about the size and quantity of bitplanes actually used for the current brush, and the minimum size and number of bitplanes which could store the same brush without any loss of data. This information is useful for checking whether some bitplanes are not even needed (for example, a brush may use only some of the very first image colors) and whether there are external transparent zones which could be removed. If more bitplanes than necessary are used, or if border parts of those bitplanes are used to store transparent data, memory can be saved with the other functions in this menu. 5.12.2 Edges This command cuts ("chops") all strips on the borders of the brush which contain only transparent pixels. 5.12.3 Planes This function removes the last unused bitplanes of the current brush. Chapter 5 - The Brush Menu 102 For example, if the second half of colors in the brush palette is never used, the last bitplane is removed. The resulting brush palette will lose the information relative to the unused colors. 5.12.4 Hidden This command removes all parts of the brush which are not visible (e.g. hidden by the title bar, tool bar or beyond the limits of the screen or those of the magnification window). For example, to print only the central part of a 256-color brush which is larger than the screen, the brush handle would be placed at the center of the brush (section 5.14.4). Then, the brush would be moved towards a corner of the screen and this command would be executed by typing its keyboard shortcut. The remaining part of the brush could then be moved to the opposite part of the screen, where the other edges could be cut. Finally, the desired central rectangle could be printed. Due to the visual interaction required to move the mouse and select the parts to be cut, this command should only be executed through its associated keyboard shortcut. Moving the mouse pointer to select the menu might cause unpredictable results. 5.13 Outline *** See Fig 5-9 *** These functions create different outline effects around non-transparent parts of brush, using the current foreground color. For three-dimensional effects, the light source is assumed to be on the top left of the brush, with shadows cast to the lower right. 5.13.1 Simple This command draws a simple border around the brush, using the foreground color. No outline is added around corners. 5.13.2 Square This effect is similar to the Simple one, but produces sharper edges. 5.13.3 Shadowed This function is similar to Simple, but applies a border twice as thick as normal to the bottom and right edges of the brush. Chapter 5 - The Brush Menu 103 5.13.4 3-D This effect adds a border in the current background color around the top and left of the brush, and uses the foreground color for the outline around the bottom and right edges. If a combination of light and dark colors is selected, the resulting brush will look like a raised object. Conversely, if the background color is dark and the foreground color is light, the brush will appear recessed. 5.13.5 Trim This command removes the outermost circle of pixels around the brush (i.e. an outline 1 pixel thick). Technically, this is accomplished by temporarily inverting the transparency plane and using it to delete the pixels. 5.14 Handle The handle of the brush is the position which is linked to the mouse pointer. It can be positioned anywhere (and may even be outside the brush). This is especially useful when working with large brushes. *** See Fig 5-10 *** The position of the brush handle is stored and loaded with the brush data when using the IFF-ILBM file format. Some functions may automatically reposition the handle (e.g. brush rotation, resizing, etc.) 5.14.1 Custom This option allows the user to freely define the brush handle position by clicking on the left mouse button, moving the mouse over the brush (which is temporarily anchored to the screen) and releasing the button when the pointer is over the desired position. This command, combined with Flood Transparency (section 5.8.6), can be used to select the parts to be made transparent by "flood filling". 5.14.2 Upper Left This option places the brush handle on the top left corner of the brush. This brush position is the only one which is guaranteed not to be moved by a brush resizing operation. Chapter 5 - The Brush Menu 105 5.14.3 Upper Right This option links the brush handle with the top right corner of the rectangle which contains the brush. 5.14.4 Center The brush handle position is placed at the center of the brush. If the center falls between two dots, the lowest of two dots on the same column, or the rightmost of two horizontally adjacent dots is selected. This is the default initial brush handle position of Personal Paint. 5.14.5 Lower Left This option places the handle at the lower left corner of the brush. 5.14.6 Lower Right This option links the brush handle with the lower right corner of the brush rectangle. Chapter 5 - The Brush Menu 105 This page empty Chapter 5 - The Brush Menu 106