mirror of https://github.com/GNOME/gimp.git
594 lines
31 KiB
Plaintext
594 lines
31 KiB
Plaintext
GIMP Documentation
|
|
outline of basic information for manual/tutorial
|
|
|
|
Main sections:
|
|
|
|
Introduction
|
|
what is the gimp?
|
|
a brief history -> current release
|
|
what is it used for?
|
|
what isn't it used for?
|
|
|
|
Setup
|
|
acquisition
|
|
ftp sites: main, alternatives (sunsite, ftp.x.org, linux distributions)
|
|
discussion of online resources such as homepage and homepages
|
|
of various contributors
|
|
binary vs. source distributions
|
|
installation
|
|
if binary, make install
|
|
if source, make config, give details of compilation, make, make install
|
|
gimp library directory/personal gimp directories
|
|
gimprc
|
|
location of default gimprc
|
|
the various gimprc options (descriptions for each & default values)
|
|
discussion of tiles/swap
|
|
what are tiles?
|
|
why are they useful to the gimp?
|
|
what are reasonable settings for the tile cache size?
|
|
what is the gimp swapfile/tmp directory?
|
|
where should it be? (on /tmp or in ~/.gimp)
|
|
discussion of color resolutions
|
|
what are color resolutions?
|
|
how do you find out which color resolutions are available to you?
|
|
what color resolutions does the gimp require?
|
|
why does the gimp "dither" in 8-bit color?
|
|
why do the colormaps change between grayscale and color in 8-bit
|
|
why don't indexed images use their own palette?
|
|
discuss other alternatives for viewing images under X windows (xv)
|
|
the color cube resource: how can the shades of color be controlled in 8-bit?
|
|
discussion of fonts (type1/truetype/bitmap/standard X11)
|
|
how are fonts used in the gimp? (gimp requires X to render them)
|
|
what fonts can X render? (type1/bitmap)
|
|
what fonts come standard with X?
|
|
where can more fonts be obtained?
|
|
|
|
Images
|
|
the toolbox
|
|
foreground
|
|
background
|
|
changing the colors/color select dialog
|
|
main menu
|
|
tool descriptor field
|
|
new
|
|
gimp works on "images" which are defined by a width, height, depth,
|
|
a selection mask, a set of layers, and a set of auxillary channels
|
|
image types: what are the options?
|
|
what are the image types used for
|
|
why can't an indexed image be created?
|
|
why are indexed images a pain?
|
|
how should indexed images be dealt with?
|
|
a short example of "new" command
|
|
image menus
|
|
scrollbars
|
|
rulers (options for hiding/showing rulers)
|
|
ruler units (in gimprc) {pixels, inches, centimeters}
|
|
concepts of layers
|
|
bucket fill the new layer
|
|
add a layer, blend it
|
|
transparency
|
|
what is it?
|
|
how is it used?
|
|
how can its appearance be controlled? (via preference dialog/gimprc)
|
|
what file formats support it?
|
|
undo/redo
|
|
multiple (can be set via gimprc and preferences)
|
|
on a per-image basis
|
|
loading/saving
|
|
loading and saving of images is accomplished through plug-ins
|
|
most load/save plug-ins have no knowledge of the full set of
|
|
attributes which the gimp needs for an image. In fact, most are
|
|
limited to saving only 1 layer, and in some cases, an alpha channel
|
|
such plug-ins are limited by their respective file formats (jpeg, tiff, etc)
|
|
these plug-ins will save only the active layer of an image
|
|
the xcf file format, however, can save all pertinent information about
|
|
an image so that it can be stored and retrieved in full
|
|
viewing
|
|
viewing an image can be efficiently accomplished through a variety of features
|
|
the image can be zoomed in or out with the magnify tool and the zoom
|
|
hot-keys and menu-items
|
|
the zoomed image can be panned using the scrollbars at the sides of the image
|
|
or the middle mouse button
|
|
<possibly discuss the navigator here, if implemented>
|
|
multiple views can be created to view the image at different zoom ratios
|
|
the image window can be expanded to reveal hidden areas
|
|
and if necessary, the shrink wrap hot-key/menu-item can be invoked
|
|
to limit the window borders to the image extents.
|
|
the "always resize" option of the magnify tool and the gimprc can
|
|
be enabled to cause the window to resize appropriately for each successive zoom
|
|
resizing/scaling
|
|
images can be resized or scaled
|
|
resizing involves changing the width and height of the image by either
|
|
cropping or adding area to its contents
|
|
scaling involves actually changing the contents of the image, either
|
|
"stretching" or "compressing" the layers and channels to fit to the
|
|
new size
|
|
|
|
Selections
|
|
introduction
|
|
what are selections?
|
|
so is a selection just another channel? (what makes it special)
|
|
how can selections be created?
|
|
why are selections useful--they constrain operations by
|
|
allowing regions of an image to be specified
|
|
denoted by a boundary of marching ants--speed controlled in gimprc file
|
|
selection mask extends over entire image
|
|
if a layer in the image covers only part of the image extents, then
|
|
the parts of the selection boundary which lie outside the active layer will be
|
|
drawn, but will not march.
|
|
brief description of selection tools
|
|
pointer to channels section for information on how to "paint" selections
|
|
<possibility of "quit edit" mode for masks here>
|
|
common operations on selections
|
|
feathering -- like a gaussian blur (can also be done with selection tools)
|
|
bordering -- description of the algorithm
|
|
sharpen -- gives all points of the selection values of 0 or 255
|
|
invert -- gives each point of the selection the value = (255 - value)
|
|
stroke -- uses the current brush and foreground color and "strokes"
|
|
the outline of the current selection
|
|
clear -- if there is a selection, this clears the selected area of the active layer.
|
|
if the active layer has an alpha channel, this clears to transparent.
|
|
if not, this clears to the background color.
|
|
if there is no selection, this affects the entire image
|
|
fill -- similar to clear, except that it always fills to the background
|
|
color.
|
|
|
|
Tools
|
|
what are tools?
|
|
typically activated from toolbox, hot keys or menu items
|
|
only one active at a time
|
|
discussion of context sensitive cursors
|
|
the tools dialog
|
|
what is it?
|
|
double clicking on the tool icon
|
|
selecting from the dialogs menu
|
|
what are the common features of their usage:
|
|
always invoked with the left mouse button, and can be cancelled
|
|
by pressing the right mouse button before you release the left
|
|
shift, control keys are often used to modify the behavior of the current
|
|
tool
|
|
selection tools
|
|
rectangular: creates rectangular regions of selection which can be
|
|
added, subtracted, or used to replace the current selection.
|
|
holding down the shift and control keys constrains the region to a square
|
|
elliptical: creates elliptical selections similar to rectangular. holding the
|
|
shift and control keys creates circles. this selection tool has an antialiasing
|
|
option which is on by default and creates selections which appear smoother
|
|
but contain intermediate selection values. that is, there are points in the
|
|
selection which aren't completely "on" or "off".
|
|
freehand: can create any kind of selections, but requires a steady hand
|
|
possibility here for the (dynadraw option for much smoother input). when
|
|
the left mouse button is released, the created polygon is closed automatically.
|
|
there is an antialiasing option for this tool which produces smoother selections.
|
|
bezier: the bezier selection tool can be used to create either polygonal or curved
|
|
regions of selection. There are typically two stages to bezier selection. the first
|
|
involves placing bezier control points. control points are point which the final
|
|
curve will be constrained to pass through. these should be placed on the edges
|
|
of the boundary which is desired. no selection can be made until a final control
|
|
point is place atop the first control point. a selection can be made by clicking
|
|
in the interior of the polygon. each control point has two additional points which
|
|
control the curve segment which passes through. these two additional points can
|
|
be manipulated by dragging on the control point. holding down shift while
|
|
dragging constrains the movement to just one of the additional control points.
|
|
holding down the "control" key while dragging one of the original control points
|
|
translates that point. the bezier tool has an antialiasing feature which is useful
|
|
for producing smooth output.
|
|
fuzzy: the fuzzy selection tool is invoked by left-clicking in a region of interest
|
|
it works using a seed fill algorithm and expands outwards from the initial point
|
|
to adjacent pixels with similar color. its expansion is limited by a threshold
|
|
parameter which limits the acceptable difference between neighboring pixels.
|
|
this tool also contains an antialias option which, depending on the underlying
|
|
image, can produce smoother selections. this tool also has an option "sample merged"
|
|
which specifies that the underlying pixel information is to be taken from the image
|
|
as it appears to the user, and not just from the active layer or channel
|
|
holding down the left mouse button and dragging allows the threshold parameter
|
|
to be dynamically adjusted. moving the mouse left or up decreases the threshold;
|
|
moving the mouse right or down, increases.
|
|
intelligent scissors: take the shit i wrote a long time ago
|
|
by-color: this tool is invoked not through the toolbox, but through the menus
|
|
it selects in a manner similar to the fuzzy selection tool, except that it searches the
|
|
entire image for pixels of color similar to the initial point, instead of doing a seed
|
|
fill.
|
|
give an explanation of the by-color-select dialog and its uses
|
|
for all selection tools, the produced region replaces the current selection by default
|
|
however, holding down shift will "add" the new selection to the current
|
|
holding down control will "subtract" the new selection from the current
|
|
all selection tools and the move tool will translate the current selection if
|
|
the "alt" key is depressed.
|
|
magnify: allows easy zooming on portions of the image. a mouse click centers
|
|
at the mouse click and zooms in one step. a shift-click centers at the
|
|
mouse position and zooms out one step
|
|
clicking and dragging with the mouse highlights an approximate
|
|
rectangular area which will be fitted as closely as possible to the
|
|
size of the window.
|
|
move tool: primarily deals with layer translation including floating selections
|
|
can be used to move selections when the "alt" key is depressed
|
|
crop: crops through all layers, channels and selection mask
|
|
<possibly an option for cropping only the current layer>
|
|
operation of cropping extents (dragging vs expanding/contracting)
|
|
transform tools:
|
|
discussion about the method of operation of transform tools
|
|
they float the current selection if there is one and transform the contents
|
|
if there is no current selection mask, they simply transform the active layer
|
|
if there is no selection mask and a channel is active, they have no effect
|
|
with the exception of the flip tools, all transforming tools pop up a dialog
|
|
box which gives information on the current transformation.
|
|
with the exception of the flip tools, all transformations can be done with
|
|
or without smoothing. smoothing results in a better final result, but
|
|
takes additional time and can possibly introduce intermediate shades
|
|
of the original colors to the final product. Smoothing cannot be used
|
|
with indexed images.
|
|
the degree (quality) of the smoothing algorithm can either be linear
|
|
or cubic. cubic takes substantially more time but yields superior results.
|
|
the degree of smoothing can be set as an option in the gimprc file.
|
|
flip horz: flips horizontally
|
|
flip vert: flips vertically
|
|
rotate: rotates. shift constrains the angle of rotation to 5 degree intervals
|
|
scale: scales. shift constrains the current height. control constrains the
|
|
current width. shift-control constrains the original aspect ratio
|
|
shear: shears. the direction of the shear (either horizontal or vertical)
|
|
is determined by the direction the mouse is first dragged in
|
|
perspective: allows the rectangular region to be mapped into any arbitrary
|
|
quadrilateral. the corners of the rectangle can be dragged to any new locations
|
|
and the resulting region is the mapping of the rectangle into the new quadrilateral
|
|
bucket fill: if there is a selection, fills inside the selection bounds. if there is no selection,
|
|
executes a seed fill from the point the mouse was initially clicked in. in the case of
|
|
no selection, an antialiasing parameter may be set which can yield better
|
|
results in the final fill. This option is similar to the one for the fuzzy selection tool.
|
|
the bucket fill tool fills an area with the foreground color. If the shift key is depressed
|
|
then the background color is used as the fill color.
|
|
patterns are used in conjunction with the bucket tool and are tiled to fill the
|
|
area. pattern dialog allows the selection of an active pattern
|
|
the behavior of the bucket fill tool can be selected from the tools dialog
|
|
to specify either pattern filling or color filling.
|
|
the pattern dialog can be displayed from the dialogs submenu
|
|
patterns are found in the directories listed in the gimprc
|
|
new patterns can be defined by saving an image in one of the searched
|
|
directories in the gimp pattern format.
|
|
the list of directories can be reparsed at any time with the refresh button
|
|
description of paint modes--tie in to paint tools/blend (they all use them too)
|
|
bucket fills can also be done with a specified opacity which controls how the
|
|
paint being applied from the tool interacts with the existing image
|
|
blend: blend typically works by filling from the foreground to the background color
|
|
the tool is activated by clicking and dragging in the desired direction and
|
|
then releasing. while dragging, a rubber-banded line will appear which
|
|
has different meanings depending on the current blending mode
|
|
there are a number of different blend modes including
|
|
linear: perpendicular lines to the drag line from foreground to background
|
|
bilinear: perpendicular lines to the drag line from foreground to background
|
|
in both directions
|
|
radial: concentric circles outwards from the starting of the drag line to the end
|
|
square: concentric squares outwards starting with FG and ending with BG
|
|
conical (asymmetric): cone with rays extending outwards from the
|
|
drag line's starting point. length of drag line has no meaning
|
|
conical (symmetric): cone of rays goes from fg to bg in both directions
|
|
shapeburst (angular, spherical, dimpled): shapeburst assigns a color
|
|
to pixels somewhere between fg and bg depending on how
|
|
far the pixel is from the nearest edge of the selection
|
|
blend, like bucket fill has both a paint mode and an opacity
|
|
blend does not necessarily work between the foreground and background
|
|
colors. the gradient editor can be used to construct arbitrarily complex fades
|
|
between as many colors as desired.
|
|
complete description of gradient editor
|
|
maybe a note about how all of the blend modes assign a value between 0 and 1
|
|
for each considered pixel and in the case of a simple blend, this corresponds to
|
|
a color intermediate to bg and fg. in the case of a custom blend, it corresponds
|
|
to a point on the collection of segments defined in the gradient editor.
|
|
blends can be done in RGB space, HSV space, and from the fg color to transparent
|
|
painting tools
|
|
all painting tools are applied using the left mouse button and dragging
|
|
paint is then applied as though the mouse cursor were a paintbrush
|
|
applied paint can be blended with the underlying image using a number
|
|
of different modes (as in bucket fill/blend)
|
|
normal: the color being applied is independent of the existing image
|
|
addition: the color is added to the existing
|
|
subtract: color is subtracted
|
|
multiply: color is multiplied, result is always darker
|
|
screen: inverse of multiply, result is always lighter
|
|
color only: hue and saturation of color are used, existing lightness kept
|
|
hue only: only hue of color is used
|
|
value only: only value is used
|
|
saturation only: only saturation is used
|
|
behind: color is applied "behind the existing image" meaning that
|
|
painting only affects parts of the image which have some
|
|
transparency
|
|
lighten only: color is applied only if its value exceeds existing
|
|
darken only: color is applied only if its value doesn't exceed existing
|
|
whatever sort of paint the painting tool is applying (this can even be "erasing"
|
|
paint, in the case of the eraser tool), the application is limited by a brush mask.
|
|
a brush mask is a grayscale image which determines the amount of paint to
|
|
apply at each stroke.
|
|
there are a number of brush masks that come with the gimp
|
|
brush masks are found from a list of directories specified in the gimprc
|
|
brush masks can be created by saving a grayscale image with the gimp brush
|
|
file loader/saver
|
|
brush masks can be selected using the brush dialog which is invoked from
|
|
the dialogs submenu.
|
|
complete description of the brush dialog
|
|
set paint mode
|
|
paint opacity
|
|
brush name, width, height, appearance
|
|
brush spacing
|
|
refresh feature for researching the brush paths
|
|
when using indexed images, all brush masks are converted from grayscale
|
|
to black and white so that additional colors are not introduced into the image
|
|
the paint tools are as follows:
|
|
|
|
paintbrush: applies the foreground color. a fade out parameter can be
|
|
set in pixels which specifies how long a stroke can be before it begins to fade
|
|
to transparency
|
|
pencil: similar to paintbrush, but it uses non-antialiased brush masks for
|
|
precise work which requires absolute pixel accuracy
|
|
eraser: the eraser tool does not apply paint, but removes it. if an image has
|
|
an alpha channel, paint is removed in favor of transparency. if an image does
|
|
not have an alpha channel, the eraser tool is similar to the paintbrush, but
|
|
paints in the background color.
|
|
airbrush: the airbrush tool paints in the foreground color, but unlike the
|
|
paintbrush which is constrained to apply an even coating of paint during
|
|
a single stroke, the airbrush can apply as much paint as desired. a pressure
|
|
parameter controls how quickly paint is applied, and a rate parameter controls
|
|
how quickly paint is applied when the mouse is stationary.
|
|
clone: the clone tool works by transfering paint from a source to a specified
|
|
destination. the source can either be an image or a pattern. the type of source
|
|
is selected through the clone tool dialog. if the source is an image, the actual
|
|
source coordinates can be specified by shift clicking the mouse
|
|
at the appropriate location. then, when painting, the image at the
|
|
source coordinates is effectively copied from the source to the destination.
|
|
cloning from image to image automatically adjusts between the different
|
|
image types (ie grayscale-> RGB, RGB->indexed). The RGB->indexed
|
|
conversion is complicated and can slow down the operation of the tool
|
|
at times. when cloning from image to image, the source and destination
|
|
can either be the same image or different images. if the clone source type
|
|
is a pattern, the active pattern is used as a source of pixels to paint to the
|
|
destination. the active pattern is selected the same way as with bucket fills.
|
|
convolve: convolving can involve either sharpening or blurring. a
|
|
pressure parameter in the convolve dialog allows the degree of sharpening
|
|
and blurring to be set.
|
|
|
|
Floating Selections
|
|
floating selections are temporary layers which are "floating" above another layer
|
|
or channel. only one floating selection at a time may exist in an image. floating selections
|
|
appear in layers dialog as a temporary icon, but can be treated in many respects
|
|
like a normal layer in the image (ie, opacity, combination mode)
|
|
can't be raised or lowered, given layer masks, etc.
|
|
created by pasting, floating a selection
|
|
introduce concept of global edit buffer
|
|
the edit/copy command saves region inside current selection
|
|
the edit/cut command save region inside current selection and extracts
|
|
the contents from the active drawable. if the layer has an alpha channel, extraction
|
|
yields transparent pixels. otherwise, extraction yields the background color.
|
|
if there is no selection, edit/cut copies and removes the entire layer or channel
|
|
edit/paste copies the contents of the global edit buffer into an image.
|
|
this stage automatically takes care of any conversions between image types
|
|
when the contents of the global edit buffer are pasted, any current selection
|
|
is removed
|
|
edit/paste has a special option "paste into" which does not remove the current selection
|
|
the appearance of floating selections--marching ants
|
|
if there is a selection with a floating selection, the boundary of the selection does not march
|
|
the selection mask acts as a mask when compositing the floating selection to the image. that is:
|
|
any areas of the floating selection which lie within the selection mask are visible,
|
|
while any areas which lie without the selection mask are masked out.
|
|
if edit/paste or select/float are invoked while a floating selection exists, the current
|
|
floating selection is "anchored" to the image
|
|
the floating selection can be anchored at any time (which simply means it is composited
|
|
permanently with the image) by clicking outside its boundary, or by invoking select/anchor
|
|
the move tool translates floating selection exactly as it translates layers
|
|
assuming no selection exists, transform tools transform the entire floating selection,
|
|
yielding a new one.
|
|
named buffers allow multiple edit buffers which can be recalled by name
|
|
|
|
Layers
|
|
introduction
|
|
layers are the basic building block of images
|
|
when a new image is created, a default layer is created
|
|
layers can have any extents relative to the image
|
|
image is like a frame, layers are cellophane overlays
|
|
layers have transparency, except for the bottommost layer, which doesn't necessarily
|
|
layers are composited with composite modes and opacities to form the final image
|
|
layers allow separate elements of an image to remain independent
|
|
for a final image, layers are composited into a final image
|
|
the layers dialog (blending mode, opacity, ordering, visibility, activation, attributes)
|
|
the layers dialog controls the layer compositing
|
|
the active layer is the one which is highlighted
|
|
when a tool is used, the active layer is the one affected
|
|
the active layer can be set by clicking in the list box item
|
|
the option menu controls the blending mode, (list all modes, uses)
|
|
the opacity slider allows the overall transparency of a layer to be set
|
|
each layer item has two icons on the left
|
|
the first is a small eye, which controls the visibility of a layer
|
|
the visibility allows layers to be hidden for clarity
|
|
the second is a fleur, which controls layer "linkage"
|
|
layer linkage is a feature which allows multiple layers to
|
|
be translated simultaneously with the active layer
|
|
layer list items are highlighted when active and their order in the
|
|
list denotes the composite order. composition proceeds from bottom to top
|
|
layer select feature
|
|
like the windows 3.1 task manager
|
|
shift-tab switches between layers
|
|
works like a stack. last visited layer is the next to pop up
|
|
layer previews
|
|
the size of layer previews in the layer selector and the layers dialog
|
|
can be controlled via the gimprc with the preview size setting
|
|
smaller preview sizes are often not quicker to calculate, but do require
|
|
less memory and allow more layers to be displayed simultaneously
|
|
set layer preview size to "none" for efficiency
|
|
merging
|
|
layers are merged by combining the visible layers
|
|
can be constrained by: image size, bottommost layer, or expanded as necessary
|
|
flattening
|
|
flattening is similar to merging, but removes transparency, and limits to image size
|
|
delete
|
|
removes the active layer
|
|
duplicate
|
|
makes a duplicate of the active layer, new layer is inserted above the active layer
|
|
new
|
|
new layer: specify size, name
|
|
resizing
|
|
layer can be resized so that additional border space is available, or the
|
|
layer's contents can be cropped.
|
|
dialog allows the contents of the layer to be positioned within the new layer
|
|
scaling
|
|
the layer is scaled to a new size
|
|
lowering/raising
|
|
allows the layers to be reordered
|
|
preserve transparency
|
|
an option which restricts all paint operations so that they have
|
|
no affect on the transparency of the layer
|
|
layer masks (all the modes of operation)
|
|
layer masks are additional alpha channels for layers.
|
|
they are essentially grayscale images with the same extents as the layer
|
|
a layer is limited to at most one
|
|
they allow independent localized changes to transparency
|
|
control-click in the layer mask preview toggles the activation
|
|
this creates a red border around the layer mask preview
|
|
shift-click makes the layer mask visible instead of the layer
|
|
this creates a green border around the layer mask preview
|
|
to toggle between editing the layer mask or the layer itself, click the previews
|
|
a border denotes which is currently active
|
|
layer mask creation
|
|
a layer mask is created for the active layer by selecting the layer mask menu item
|
|
the initial layer mask can be completely white (all areas of the layer will be visible)
|
|
completely black (the entire layer is invisible)
|
|
or set initially to the layer's alpha channel (useful for some effects)
|
|
layer mask application
|
|
choosing the layer mask apply menu item removes the layer mask
|
|
a choice is given between apply or discard.
|
|
apply causes the layer mask to be composited with the layer's alpha channel
|
|
discard removes the layer mask as though it never existed
|
|
layer mask restrictions
|
|
cannot transform a layer with a layer mask
|
|
layer masks cannot be given to floating selection layers
|
|
layer alpha to selection operation
|
|
the select/layer alpha command causes a layer's alpha channel to be
|
|
used as the basis for the image's selection mask
|
|
|
|
Channels
|
|
introduction
|
|
the two kinds of channels (image components, auxillary channels)
|
|
selection masks are channels
|
|
image components
|
|
for each type of image, the components are the independent
|
|
channels. for RGB: red, green, blue. grayscale and indexed have 1 component
|
|
alpha channels of images are not considered a component for the purposes of
|
|
discussing channels
|
|
auxillary channels
|
|
auxillary channels are not involved with the image.
|
|
they are used for storing selection masks and editing them as though
|
|
they were images.
|
|
they can be made visible by giving them a color and opacity.
|
|
they are then composited on top of the layers composite
|
|
interaction between active layer/active channel(s)
|
|
any combination of image components may be active at a given
|
|
time. the activation of image components acts to constrain the
|
|
application of paint to the active layer.
|
|
if a layer is active, no auxillary channels can be active
|
|
if an auxillary channel is active, no layers are active, and the
|
|
image components are insensitized
|
|
the channels dialog
|
|
invoked from the dialogs menu.
|
|
for each image, the image components are displayed first
|
|
auxillary channels are then displayed
|
|
each item has one icon on the left of a small eye and controls the
|
|
visibility of the channel or component
|
|
new
|
|
creates a new auxillary channel
|
|
image components cannot be created
|
|
duplicate
|
|
duplicates the current channel. this can be done for image
|
|
components and auxillary channel. the result is an auxillary channel
|
|
delete
|
|
deletes the active auxillary channel
|
|
image components cannot be deleted
|
|
double clicking an aux channel list item allows it's attributes to be edited
|
|
auxillary channel attributes include name and composite color & opacity
|
|
|
|
Image Correction
|
|
image correction deals with changing the characteristics of whole regions of an image
|
|
image correction tools operate on the contents of the current selection or the entire layer
|
|
if there is no selection
|
|
|
|
hue/saturation
|
|
allows adjustment of hue saturation--more on this
|
|
brightness/contrast
|
|
more on this shit
|
|
levels
|
|
histogram
|
|
curves
|
|
maybe by 1.0!
|
|
color balance
|
|
slider controls the relative color shift
|
|
|
|
Plug-ins
|
|
introduction (why are they cool, what are they)
|
|
how they work
|
|
registration
|
|
interface
|
|
effects
|
|
extensions
|
|
file loaders/savers
|
|
|
|
Very Large Images
|
|
tiles
|
|
tile size is compiled into the gimp
|
|
tiles can be used to distribute gimp processing
|
|
tiles can be used for quick loading of images at varying resolutions
|
|
tiles are a nice mechanism for dealing with images >> physical memory size
|
|
performance issues (getting the most out of GIMP)
|
|
compositing is time consumptive--hiding layers when possible is a good idea
|
|
viewing only a small portion of the image at 1:1 makes redisplays after
|
|
big edits much faster
|
|
tile cache size should be set as high as possible, but should still be
|
|
sufficiently small that the system does not swap processes.
|
|
tile cache swap should be located on a partition with sufficient space
|
|
<give approximate rules of thumb here>
|
|
programming issues and approaches (plug-ins, extending GIMP)
|
|
plug-ins can use put, get-pixel abstractions
|
|
for efficiency, actual tiles should be dealt with
|
|
in both plug-ins and GIMP programming, the pixel regions are useful for
|
|
programming algorithms with tiles.
|
|
register_regions, process_regions
|
|
get_row, set_row
|
|
get_col, set_col
|
|
get_area, set_area
|
|
|
|
Scripting--The Procedural Database
|
|
introduction
|
|
scripting is extremely useful for automating image creation or common editing functions
|
|
there is no specific scripting language for the GIMP, instead procedural database
|
|
this way, there are no limits to what can be done with GIMP functionality: imagine
|
|
remote process servers which crunch through CPU intensive imaging tasks and return
|
|
data. the flow of image information is controlled through the interface to the pdb.
|
|
the procedural database
|
|
all procedures which handle the GIMP's functionality are registered here
|
|
all plug-ins and extensions must register themselves with the main database
|
|
once registered, plug-ins & extensions can call other plug-ins or internal gimp procs.
|
|
procedural database contains information on each procedure including:
|
|
blurb, help, author, copyright, input & output arguments (with descriptions)
|
|
all procedures are blocking
|
|
internal procedures
|
|
internal procedures constitute the inner workings of the main application.
|
|
images, channels, layers, etc. can be created here and the functionality
|
|
of almost all the tools can be accessed through internal procedures
|
|
in fact, the entire plug-in interface simplifies calls to internal procedures
|
|
<give header file location for internal procedures>
|
|
<data structures for arguments, procedure definition>
|
|
<give call here for registering>
|
|
<invocation procedures>
|
|
<short example>
|
|
plug-ins/extensions
|
|
plug-ins and extensions are expected to register themselves in the
|
|
procedural database upon initialization which occurs if the executable
|
|
is found by the gimp in an appropriate directory.
|
|
once registered, a plug-in or extension can be accessed in the same
|
|
way as every other procedure.
|
|
<registration example--all plug-ins must do this>
|
|
<plug-in interface to procedural database>
|
|
interface documentation
|
|
can be automatically generated with procedural_db_dump call.
|
|
then an elisp script creates a tex info file.
|
|
registering a procedure with full information is important for these docs
|
|
available scripting extensions
|
|
give a list--probably will contain something for the siod interpreter
|
|
siod-scheme in one defun
|
|
all procedures in pdb are queried, scheme wrappers are auto-generated
|