Initial commit of Icelandic translated docs

h/t Sveinn
This commit is contained in:
Bill Kendrick 2023-06-29 00:50:02 -07:00
parent 78e9461c7c
commit c7f83e4167
227 changed files with 25865 additions and 1 deletions

View file

@ -130,6 +130,9 @@ https://tuxpaint.org/
* Icelandic translation
Sveinn í Felli <sv1@fellsnet.is>
* Icelandic documentation
Sveinn í Felli <sv1@fellsnet.is>
* Russian translaton
Olesya Gerasimenko <translation-team@basealt.ru>

View file

@ -7,7 +7,7 @@
# Bill Kendrick
# bill@newbreedsoftware.com
#
# Sept. 4, 2005 - May 2, 2023
# Sept. 4, 2005 - June 29, 2023
# FIXME: Japanese does not wordwrap in many cases, leading to very long
# lines in the TXT output. Post-processing with `fmt` doesn't look like
@ -29,6 +29,9 @@ FR_TEXTFILES:=$(patsubst fr_FR.UTF-8/html/%.html,fr_FR.UTF-8/%.txt,$(FR_HTMLFILE
GL_HTMLFILES:=$(wildcard gl_ES.UTF-8/html/*.html)
GL_TEXTFILES:=$(patsubst gl_ES.UTF-8/html/%.html,gl_ES.UTF-8/%.txt,$(GL_HTMLFILES))
IS_HTMLFILES:=$(wildcard is_IS.UTF-8/html/*.html)
IS_TEXTFILES:=$(patsubst is_IS.UTF-8/html/%.html,is_IS.UTF-8/%.txt,$(IS_HTMLFILES))
IT_HTMLFILES:=$(wildcard it/html/*.html)
IT_TEXTFILES:=$(patsubst it/html/%.html,it/%.txt,$(IT_HTMLFILES))
@ -53,6 +56,7 @@ all: $(EN_TEXTFILES) \
$(ES_TEXTFILES) \
$(FR_TEXTFILES) \
$(GL_TEXTFILES) \
$(IS_TEXTFILES) \
$(IT_TEXTFILES) \
$(JA_TEXTFILES) \
$(NL_TEXTFILES) \
@ -67,6 +71,7 @@ clean:
$(ES_TEXTFILES) \
$(FR_TEXTFILES) \
$(GL_TEXTFILES) \
$(IS_TEXTFILES) \
$(IT_TEXTFILES) \
$(JA_TEXTFILES) \
$(NL_TEXTFILES) \
@ -86,6 +91,9 @@ $(FR_TEXTFILES): fr_FR.UTF-8/%.txt: fr_FR.UTF-8/html/%.html
$(GL_TEXTFILES): gl_ES.UTF-8/%.txt: gl_ES.UTF-8/html/%.html
$(LINKS) $< > $@
$(IS_TEXTFILES): is_IS.UTF-8/%.txt: is_IS.UTF-8/html/%.html
$(LINKS) $< > $@
$(IT_TEXTFILES): it/%.txt: it/html/%.html
$(LINKS) $< > $@

View file

@ -0,0 +1,297 @@
Tux Paint
útgáfa 0.9.31 Advanced Stamps 'How-To'
Höfundarréttur © 2006-2022 eftir Albert Cahalan and others; sjá
AUTHORS-skrá.
https://tuxpaint.org/
4. júní 2022
----------------------------------------------------------------------
+----------------------------------------+
|Efnisyfirlit |
|----------------------------------------|
| * About this 'How-To' |
| * Image choice is crucial |
| * Prepare the mask |
| * Replace the fringe and junk pixels |
| * Save the image for Tux Paint |
+----------------------------------------+
----------------------------------------------------------------------
----------------------------------------------------------------------
About this 'How-To'
This 'How-To' assumes that you want to make an excellent Tux Paint
stamp, in PNG bitmapped format, from a JPEG image (e.g., a digital
photograph). There are easier and faster methods that produce lower
quality.
This 'How-To' assumes you are dealing with normal opaque objects.
Dealing with semi-transparent objects (fire, moving fan blade, kid's
balloon) or light-giving objects (fire, lightbulb, sun) is best done
with custom software. Images with perfect solid-color backgrounds are
also best done with custom software, but are not troublesome to do as
follows.
----------------------------------------------------------------------
Image choice is crucial
License
If you wish to submit artwork to the Tux Paint developers for
consideration for inclusion in the official project, or if you wish to
release your own copy of Tux Paint, bundled with your own graphics,
you need an image that is compatible with the GNU General Public
License used by Tux Paint.
Images produced by the US government are Public Domain, but be aware
that the US government sometimes uses other images on the web. Google
image queries including either site:gov or site:mil will supply many
suitable images. (Note: the *.mil sites include non-military content,
too!)
Your own images can be placed in the Public Domain or a suitable
license, such as the Creative Commons CC0 by declaring it so. (Hire a
lawyer if you feel the need for legal advice.)
For personal use, any image you can legitimately modify and use for
your own personal use should be fine.
Image Size and Orientation
You need an image that has a useful orientation. Perspective is an
enemy. Images that show an object from the corner are difficult to fit
into a nice drawing. As a general rule, telephoto side views are the
best. The impossible ideal is that, for example, two wheels of a car
are perfectly hidden behind the other two.
Rotating an image can make it blurry, especially if you only rotate by
a few degrees. Images that don't need rotation are best, images that
need lots of rotation (30 to 60 degrees) are next best, and images
that need just a few degrees are worst. Rotation will also make an
image darker because most image editing software is very bad about
gamma handling. (Rotation is only legitimate for gamma=1.0 images.)
Very large images are more forgiving of mistakes, and thus easier to
work with. Choose an image with an object that is over 1000 pixels
across if you can. You can shrink this later to hide your mistakes.
Be sure that the image is not too grainy, dim, or washed out.
Pay attention to feet and wheels. If they are buried in something, you
will need to draw new ones. If only one is buried, you might be able
to copy the other one as a replacement.
----------------------------------------------------------------------
Prepare the image
First of all, be sure to avoid re-saving the image as a JPEG. This
causes quality loss. There is a special tool called jpegtran that lets
you crop an image without the normal quality loss.
jpegtran -trim -copy none -crop 512x1728+160+128 < src.jpg >
cropped.jpg
Bring that image up in your image editor. If you didn't crop it yet, you
may find that your image editor is very slow. Rotate and crop the image
as needed. Save the image — choose whatever native format supports
layers, masks, alpha, etc. GIMP users should choose "XCF", and Adobe
Photoshop users should choose "PSD", for example.
If you have rotated or cropped the image in your image editor, flatten
it now. You need to have just one RGB layer without mask or alpha.
Open the layers dialog box. Replicate the one layer several times. From
top to bottom you will need something like this:
1. unmodified image (write-protect this if you can)
2. an image you will modify — the "work in progress" layer
3. solid green (write-protect this if you can)
4. solid magenta (write-protect this if you can)
5. unmodified image (write-protect this if you can)
Give the work in progress (WIP) layer a rough initial mask. You might
start with a selection, or by using the grayscale value of the WIP
layer. You might invert the mask.
Warning: once you have the mask, you may not rotate or scale the image
normally. This would cause data loss. You will be given special scaling
instructions later.
----------------------------------------------------------------------
Prepare the mask
Get used to doing [Control]-click and [Alt]-click on the thumbnail
images in the layers dialog. You will need this to control what you are
looking at and what you are editing. Sometimes you will be editing
things you can't see. For example, you might edit the mask of the WIP
layer while looking at the unmodified image. Pay attention so you don't
screw up. Always verify that you are editing the right thing.
Set an unmodified image as what you will view (the top one is easiest).
Set the WIP mask as what you will edit. At some point, perhaps not
immediately, you should magnify the image to about 400% (each pixel of
the image is seen and edited as a 4x4 block of pixels on your screen).
Select parts of the image that need to be 100% opaque or 0% opaque. If
you can select the object or background somewhat accurately by color, do
so. As needed to avoid selecting any pixels that should be partially
opaque (generally at the edge of the object) you should grow, shrink,
and invert the selection.
Fill the 100% opaque areas with white, and the 0% opaque areas with
black. This is most easily done by drag-and-drop from the
foreground/background color indicator. You should not see anything
happen, because you are viewing the unmodified image layer while editing
the mask of the WIP layer. Large changes might be noticable in the
thumbnail.
Now you must be zoomed in.
Check your work. Hide the top unmodified image layer. Display just the
mask, which should be a white object on a black background (probably
with unedited grey at the edge). Now display the WIP layer normally, so
that the mask is active. This should show your object over top of the
next highest enabled layer, which should be green or magenta as needed
for maximum contrast. You might wish to flip back and forth between
those backgrounds by repeatedly clicking to enable/disable the green
layer. Fix any obvious and easy problems by editing the mask while
viewing the mask.
Go back to viewing the top unmodified layer while editing the WIP mask.
Set your drawing tool the paintbrush. For the brush, choose a small
fuzzy circle. The 5x5 size is good for most uses.
With a steady hand, trace around the image. Use black around the
outside, and white around the inside. Avoid making more than one pass
without switching colors (and thus sides).
Flip views a bit, checking to see that the mask is working well. When
the WIP layer is composited over the green or magenta, you should see a
tiny bit of the original background as an ugly fringe around the edge.
If this fringe is missing, then you made the object mask too small. The
fringe consists of pixels that are neither 100% object nor 0% object.
For them, the mask should be neither 100% nor 0%. The fringe gets
removed soon.
View and edit the mask. Select by color, choosing either black or white.
Most likely you will see unselected specks that are not quite the
expected color. Invert the selection, then paint these away using the
pencil tool. Do this operation for both white and black.
----------------------------------------------------------------------
Replace the fringe and junk pixels
Still viewing the mask, select by color. Choose black. Shrink the
selection by several pixels, being sure to NOT shrink from the edges of
the mask (the shrink helps you avoid and recover from mistakes).
Now disable the mask. View and edit the unmasked WIP layer. Using the
color picker tool, choose a color that is average for the object.
Drag-and-drop this color into the selection, thus removing most of the
non-object pixels.
This solid color will compress well and will help prevent ugly color
fringes when Tux Paint scales the image down. If the edge of the object
has multiple colors that are very different, you should split up your
selection so that you can color the nearby background to be similar.
Now you will paint away the existing edge fringe. Be sure that you are
editing and viewing the WIP image. Frequent layer visibility changes
will help you to see what you are doing. You are likely to use all of:
* composited over grænt (mask enabled)
* composited over magenta (mask enabled)
* original (the top or bottom layer)
* composited over the original (mask enabled)
* raw WIP layer (mask disabled)
To reduce accidents, you may wish to select only those pixels that are
not grey in the mask. (Select by color from the mask, choose black, add
mode, choose white, invert. Alternately: Select all, select by color
from the mask, subtract mode, choose black, choose white.) If you do
this, you'll probably want to expand the selection a bit and/or hide the
"crawling ants" line that marks the selection.
Use the clone tool and the brush tool. Vary the opacity as needed. Use
small round brushes mostly, perhaps 3x3 or 5x5, fuzzy or not. (It is
generally nice to pair up fuzzy brushes with 100% opacity and non-fuzzy
brushes with about 70% opacity.) Unusual drawing modes can be helpful
with semi-transparent objects.
The goal is to remove the edge fringe, both inside and outside of the
object. The inside fringe, visible when the object is composited over
magenta or green, must be removed for obvious reasons. The outside
fringe must also be removed because it will become visible when the
image is scaled down. As an example, consider a 2x2 region of pixels at
the edge of a sharp-edged object. The left half is black and 0% opaque.
The right half is white and 100% opaque. That is, we have a white object
on a black background. When Tux Paint scales this to 50% (a 1x1 pixel
area), the result will be a grey 50% opaque pixel. The correct result
would be a white 50% opaque pixel. To get this result, we would paint
away the black pixels. They matter, despite being 0% opaque.
Tux Paint can scale images down by a very large factor, so it is
important to extend the edge of your object outward by a great deal.
Right at the edge of your object, you should be very accurate about
this. As you go outward away from the object, you can get a bit sloppy.
It is reasonable to paint outward by a dozen pixels or more. The farther
you go, the more Tux Paint can scale down without creating ugly color
fringes. For areas that are more than a few pixels away from the object
edge, you should use the pencil tool (or sloppy select with
drag-and-drop color) to ensure that the result will compress well.
----------------------------------------------------------------------
Save the image for Tux Paint
It is very easy to ruin your hard work. Image editors can silently
destroy pixels in 0% opaque areas. The conditions under which this
happens may vary from version to version. If you are very trusting, you
can try saving your image directly as a PNG. Be sure to read it back in
again to verify that the 0% opaque areas didn't turn black or white,
which would create fringes when Tux Paint scales the image down. If you
need to scale your image to save space (and hide your mistakes), you are
almost certain to destroy all the 0% opaque areas. So here is a better
way...
A Safer Way to Save
Drag the mask from the layers dialog to the unused portion of the
toolbar (right after the last drawing tool). This will create a new
image consisting of one layer that contains the mask data. Scale this
as desired, remembering the settings you use. Often you should start
with an image that is about 700 to 1500 pixels across, and end up with
one that is 300 to 400.
Save the mask image as a NetPBM portable greymap (".pgm") file. (If
you are using an old release of The GIMP, you might need to convert
the image to greyscale before you can save it.) Choose the more
compact "RAW PGM" format. (The second character of the file should be
the ASCII digit "5", hex byte 0x35.)
You may close the mask image.
Going back to the multi-layer image, now select the WIP layer. As you
did with the mask, drag this from the layers dialog to the toolbar.
You should get a single-layer image of your WIP data. If the mask came
along too, get rid of it. You should be seeing the object and the
painted-away surroundings, without any mask thumbnail in the layers
dialog. If you scaled the mask, then scale this image in exactly the
same way. Save this image as a NetPBM portable pixmap (".ppm") file.
(Note: .ppm, not .pgm.) (If you choose the RAW PPM format, the second
byte of the file should be the ASCII digit "6", hex byte 0x36.)
Now you need to merge the two files into one. Do that with the
pnmtopng command, like this:
pnmtopng -force -compression 9 -alpha mask.pgm fg.ppm >
final-stamp.png

View file

@ -0,0 +1,97 @@
Tux Paint
útgáfa 0.9.31
Environment Variables Documentation
Höfundarréttur © 2021-2023 eftir various contributors; sjá AUTHORS-skrá.
https://tuxpaint.org/
5. maí 2023
----------------------------------------------------------------------
Tux Paint understands a number of environment variables, either directly,
or indirectly by the libraries that it utilizes.
Storage-related environment variables
HOME
Specifies the user's "home directory", which is used to locate
numerous other files or directories. In some cases, it is utilized
as part of a fall-back location, when other environment variables
(elsewhere in this documentation) are not set. Sometimes, the
location to use can be overridden by options provided on the
command-line or via Tux Paint's configuration file. See the
"OPTIONS" documentation for details.
A few examples of where "$HOME" is used include:
* The location of Tux Paint's configuration file
* The basis of where Tux Paint saves and loads users' drawings
* The location of a user's private collection of data files —
stamps, brushes, etc. — (versus those available system wide)
XDG_CONFIG_HOME
On Linux and other platforms where the X Desktop Group standards
are used, the location of the user's configuration files.
Specifically, where to find "user-dirs.dirs", where the
"XDG_PICTURES_DIR" might be defined. It is used for exporting
drawings and animated GIFs. Generally it's set to something like
"$HOME/Pictures/". If not specified, Tux Paint checks in the
directory "$HOME/.config/". If the configuration cannot be found,
Tux Paint simply exports drawings and GIFs to "$HOME".
XDG_DATA_HOME
On Linux and other platforms where the X Desktop Group standards
are used, the location of the user's data directories.
Specifically, where to find the "Trash" directory. It is used when
deleting images from Tux Paint's "Open" dialog. If not set, the
location "$HOME/.local/share/Trash/" is used, if available. If
not, images are simply deleted, rather than moved anywhere.
TEMP
Specifies the location where temporary files may be created. Only
used by Tux Paint on Microsoft Windows OSes. Uses "userdata" if
not set.
Language-related environment variables
LANG
LANGUAGE
LC_ALL
LC_MESSAGES
Specify the language Tux Paint should utilize in its user
interface. Overridde by the "--lang" and "--locale" command-line
options or their configuration file counterparts. The "LANGUAGE"
environment variable is used, if set. If not, "LC_ALL" is used as
a fallback. Then "LC_MESSAGES", and finally "LANG".
Display-related environment variables
The following are a few of the environment variables supported by Simple
DirectMedia Layer (libSDL) — which Tux Paint utilizes for displaying
graphics, playing sounds, and receiving mouse, keyboard, and joystick
input — and which may be useful to users of Tux Paint.
SDL_VIDEO_ALLOW_SCREENSAVER
Specifies whether Tux Paint should allow a screensaver to run. Can
be set to '1' (true) by Tux Paint itself by issuing the
command-line option "--allowscreensaver" or its configuration file
counterpart.
SDL_VIDEO_WINDOW_POS
Requests where to position Tux Paint's window, and can be used to
specify what display to place a fullscreen Tux Paint in a
multi-monitor configuration. If not set, or set to "nopref"
(meaning "no preference"), Simple DirectMedia Layer (libSDL)
decides. Can be set to an X,Y coordinate (e.g. 200,100), or
"center" (meaning "center").

File diff suppressed because it is too large Load diff

615
docs/is_IS.UTF-8/FAQ.txt Normal file
View file

@ -0,0 +1,615 @@
Tux Paint
útgáfa 0.9.31 Frequently Asked Questions
Höfundarréttur © 2002-2023 eftir various contributors; sjá AUTHORS-skrá.
https://tuxpaint.org/
16. mars 2023
----------------------------------------------------------------------
+------------------------------+
|Efnisyfirlit |
|------------------------------|
| * Drawing-related |
| * Interface Problems |
| * Printing |
| * Saving |
| * Audio Problems |
| * Fullscreen Mode Problems |
| * Other Problems |
| * Help / Contact |
+------------------------------+
----------------------------------------------------------------------
Drawing-related
Fonts I added to Tux Paint only show squares
The TrueType Font you're using might have the wrong encoding. If
it's 'custom' encoded, for example, you can try running it through
FontForge (http://fontforge.sourceforge.net/) to convert it to an
ISO-8859 format. (Email us if you need help with special fonts.)
The Rubber Stamp tool is greyed out!
This means that Tux Paint either couldn't find any stamp images,
or was asked not to load them.
If you installed Tux Paint, but did not install the separate,
optional "Stamps" collection, quit Tux Paint and install it now.
It should be available from the same place you got the main Tux
Paint program. (Note: As of version 0.9.14, Tux Paint comes with a
small collection of example stamps.)
If you don't want to install the default collection of stamps, you
can just create your own. See the "Extending Tux Paint"
documentation for more on creating PNG and SVG image files, TXT
text description files, Ogg Vorbis, MP3 or WAV sound files, and
DAT text data files that make up stamps.
Finally, if you installed stamps, and think they should be
loading, check to see that the "nostamps" option isn't being set.
(Either via a "--nostamps" option to Tux Paint's command line, or
"nostamps=yes" in the configuration file.)
Either change/remove the "nostamps" option, or you can override it
with "--stamps" on the command line or either "nostamps=no" or
"stamps=yes" in a configuration file.
Stamp outlines are always rectangles
Tux Paint was built with low-quality (but faster) stamp outlines.
To change this, you must rebuild Tux Paint from source. Be sure to
remove or comment out any line that says:
#define LOW_QUALITY_STAMP_OUTLINE
in the "tuxpaint.c" file in the "src" directory.
----------------------------------------------------------------------
Interface Problems
Stamp thumbnails in the Stamp Selector look bad
Tux Paint was probably compiled with the faster, lower quality
thumbnail code enabled. Run the command: "tuxpaint
--verbose-version" from a command line. If, amongst the other
output, you see the text: "Low Quality Thumbnails enabled", then
this is what's happening.
To change this, you must rebuild Tux Paint from source. Be sure to
remove or comment out any line that says:
#define LOW_QUALITY_THUMBNAILS
in the "tuxpaint.c" file in the "src" directory.
Pictures in the 'Open' dialog look bad
"Low Quality Thumbnails" is probably enabled. See: "Stamp
thumbnails in the Stamp Selector look bad", above.
All of the text is in uppercase!
The "uppercase" option is on.
Either change/remove the "uppercase" option, or you can override
it with "--mixedcase" on the command line or either "uppercase=no"
or "mixedcase=yes" in a configuration file.
Tux Paint is in a different language
Make sure your locale setting is correct. See "Tux Paint won't
switch to my language", below.
Tux Paint won't switch to my language
* Linux and Unix users: Make sure the locale is available
Make sure the locale you want is available. Check your
"/etc/locale.gen" file. See the "Options Documentation" for
the locales Tux Paint uses (especially when using the
"--lang" option).
Note: Debian and derivative (e.g., Ubuntu) users can simply
run "dpkg-reconfigure locales" if the locales are managed by
"dpkg".
* If you're using the "--lang" command-line option
Try using the "--locale" command-line option, or your
operating system's locale settings (e.g., the "$LANG"
environment variable), and please e-mail us regarding your
trouble.
* If you're using the "--locale" command-line option
If this doesn't work, please e-mail us regarding your
trouble.
* If you're trying to use your Operating System's locale
If this doesn't work, please e-mail us regarding your
trouble.
* Make sure you have the necessary font
Some translations require their own font. Chinese and Korean,
for example, need Chinese and Korean TrueType Fonts installed
and placed in the proper location, respectively.
The appropriate fonts for such locales can be downloaded from
the Tux Paint website:
https://tuxpaint.org/download/fonts/
----------------------------------------------------------------------
Printing
Tux Paint won't print, gives an error, or prints garbage (Unix/Linux)
Tux Paint prints by creating a PostScript rendition of the picture
and sending it to an external command. By default, this command is
the "lpr" printing tool.
If that program is not available (for example, you're using CUPS,
the Common Unix Printing System, and do not have "cups-lpr"
installed), you will need to specify an appropriate command using
the "printcommand" option in Tux Paint's configuration file. (See
the "Options Documentation".)
Note: Versions of Tux Paint prior to 0.9.15 used a different
default command for printing, "pngtopnm | pnmtops | lpr", as Tux
Paint output PNG format, rather than PostScript.
If you had changed your "printcommand" option prior to Tux Paint
0.9.15, you will need to go back and alter it to accept
PostScript.
I get the message "You can't print yet!" when I go to print
The "print delay" option is on. You can only print once every X
seconds.
If you're running Tux Paint from a command-line, make sure you're
not giving it a "--printdelay=..." option.
If you're running Tux Paint by double-clicking an icon, check the
properties of the icon to see if "--printdelay=..." is listed as a
command-line argument.
If a "--printdelay=..." option isn't being sent on the command
line, check Tux Paint's configuration file for a line reading:
"printdelay=...".
Either remove that line, set the delay value to 0 (no delay), or
decrease the delay to a value you prefer. (See the "Options
Documentation".)
Or, you can simply run Tux Paint with the command-line argument:
"--printdelay=0", which will override the configuration file's
setting, and allow unlimited printing. (You won't have to wait
between prints.)
I simply can't print! The button is greyed out!
The "no print" option is on.
If you're running Tux Paint from a command-line, make sure you're
not giving it a "--noprint" option.
If you're running Tux Paint by double-clicking an icon, check the
properties of the icon to see if "--noprint" is listed as a
command-line argument.
If a "--noprint" option isn't being sent on the command line,
check Tux Paint's configuration file for a line reading:
"noprint=yes".
Either remove that line, or simply run Tux Paint with the
command-line argument: "--print", which will override the
configuration file's setting.
Or use Tux Paint Config. and make sure "Allow Printing" (under
"Printing") is checked.
----------------------------------------------------------------------
Saving
Where does Tux Paint save my drawings?
Unless you asked Tux Paint to save into a specific location (using
the "savedir" option), Tux Paint saves into a standard location on
your local drive:
Windows Vista, Windows 8, Windows 10, Windows 11
In the user's "AppData" folder:
e.g.,
C:\Users\Username\AppData\Roaming\TuxPaint\saved
macOS
In the user's "Application Support" folder:
e.g., /Users/Username/Library/Applicaton
Support/TuxPaint/saved/
Linux / Unix
In the user's home directory ("$HOME"), under a
".tuxpaint" subfolder:
e.g., /home/username/.tuxpaint/saved/
The images are stored as PNG bitmaps, which most modern programs
should be able to load (image editors, word processors, web
browsers, etc.)
Tux Paint always saves over my old picture
The "save over" option is enabled. (This disables the prompt that
would appear when you click 'Save.')
If you're running Tux Paint from a command-line, make sure you're
not giving it a "--saveover" option.
If you're running Tux Paint by double-clicking an icon, check the
properties of the icon to see if "--saveover" is listed as a
command-line argument.
If a "--saveover" option isn't being sent on the command line,
check Tux Paint's configuration file for a line reading:
"saveover=yes".
Either remove that line, or simply run Tux Paint with the
command-line argument: "--saveoverask", which will override the
configuration file's setting.
Or use Tux Paint Config. and make sure "Ask Before Overwriting"
(under "Saving") is checked.
Also, see "Tux Paint always saves a new picture!", below.
Tux Paint always saves a new picture!
The "never save over" option is enabled. (This disables the prompt
that would appear when you click 'Save.')
If you're running Tux Paint from a command-line, make sure you're
not giving it a "--saveovernew" option.
If you're running Tux Paint by double-clicking an icon, check the
properties of the icon to see if "--saveovernew" is listed as a
command-line argument.
If a "--saveovernew" option isn't being sent on the command line,
check Tux Paint's configuration file for a line reading:
"saveover=new".
Either remove that line, or simply run Tux Paint with the
command-line argument: "--saveoverask", which will override the
configuration file's setting.
Or use Tux Paint Config. and make sure "Ask Before Overwriting"
(under "Saving") is checked.
Also, see "Tux Paint always saves over my old picture!", above.
----------------------------------------------------------------------
Audio Problems
There's no sound!
* First, check the obvious:
* Are your speakers connected and turned on?
* Is the volume turned up on your speakers?
* Is the volume turned up in your Operating System's
"mixer?"
* Are you certain you're using a computer with a sound
card?
* Are any other programs running that use sound? (They may
be 'blocking' Tux Paint from accessing your sound
device)
* (Unix/Linux) Are you using a sound system, such as aRts,
ESD or GStreamer? If so, try setting the
"SDL_AUDIODRIVER" environment variable before running
Tux Paint (e.g., "export SDL_AUDIODRIVER=arts"). Or, run
Tux Paint through the system's rerouter (e.g., run
"artsdsp tuxpaint" or "esddsp tuxpaint", instead of
simply "tuxpaint").
* Is sound disabled in Tux Paint?
If sound seems to work otherwise (and you're sure no other
program is "blocking" the sound device), then Tux Paint may
be running with a "no sound" option.
If you're running Tux Paint from a command-line, make sure
you're not giving it a "--nosound" option.
If you're running Tux Paint by double-clicking an icon, check
the properties of the icon to see if "--nosound" is listed as
a command-line argument.
If a "--nosound" option isn't being sent on the command line,
check Tux Paint's configuration file for a line reading:
"nosound=yes".
Either remove that line, or simply run Tux Paint with the
command-line argument: "--sound", which will override the
configuration file's setting.
Or, you can simply run Tux Paint with the command-line
argument: "Enable Sound Effects", which will override the
configuration file's setting, and allow unlimited printing.
(You won't have to wait between prints.)
* Were sounds temporarily disabled?
Even if sounds are enabled in Tux Paint, it is possible to
disable and re-enable them temporarily using the [Alt] + [S]
key sequence. Try pressing those keys to see if sounds begin
working again.
* Was Tux Paint built without sound support?
Tux Paint may have been compiled with sound support disabled.
To test whether sound support was enabled when Tux Paint was
compiled, run Tux Paint from a command line, like so:
tuxpaint --verbose-version
If, amongst the other information, you see "Sound disabled",
then the version of Tux Paint you're running has sound
disabled. Recompile Tux Paint, and be sure NOT to build the
"nosound" target. (i.e., don't run "make nosound") Be sure
the SDL_mixer library and its development headers are
available!
Tux Paint makes too much noise! Can I turn them off?
Yes, there are a number of ways to disable sounds in Tux Paint:
* Press [Alt] + [S] while in Tux Paint to temporarily disable
sounds. (Press that key sequence again to re-enable sounds.)
* Run Tux Paint with the "no sound" option:
* Run "tuxpaint --nosound" from the command line or
shortcut or desktop icon.
* Edit Tux Paint's configuration file (see "Options
Documentation" for details) and add a line containing
"nosound=yes".
* Or use Tux Paint Config. and make sure "Enable Sound
Effects" (under "Video & Sound") is not checked.
* Alternatively, recompile Tux Paint with sound support
disabled. (See above, and the 'Install' documentation.
The stereo panning of sound effects is bothersome; can sound effects be
monophonic?
Run Tux Paint with the "no stereo" option:
* Run "tuxpaint --nostereo" from the command line or shortcut
or desktop icon.
* Edit Tux Paint's configuration file (see "Options
Documentation" for details) and add a line containing
"nostereo=yes".
* Or use Tux Paint Config. and make sure "Enable Stereo
Effects" (under "Video & Sound") is not checked.
The sound effects sound strange
This could have to do with how SDL and SDL_mixer were initialized.
(The buffer size chosen.)
Please e-mail us with details about your computer system.
(Operating system and version, sound card, which version of Tux
Paint you're running (run "tuxpaint --version" to verify), and so
on.)
----------------------------------------------------------------------
Fullscreen Mode Problems
When I run Tux Paint full-screen and [Alt] + [Tab] out, the window turns
black!
This is apparently a bug in the SDL library. Sorry.
When I run Tux Paint full-screen, it has large borders around it
Linux users - Your X-Window server is probably not set with the
ability to switch to the desired resolution: 800×600. (or whatever
resolution you have Tux Paint set to run at.) (This is typically
done manually under the X-Window server by pressing [Control] +
[Alt] + [Keypad Plus (+)] and [Control] + [Alt] + [Keypad Minus
(-)].)
For this to work, your monitor must support that resolution, and
you need to have it listed in your X server configuration.
Check the "Display" subsection of the "Screen" section of your
XFree86 or X.org configuration file (typically
"/etc/X11/XF86Config-4" or "/etc/X11/XF86Config", depending on the
version of XFree86 you're using; 3.x or 4.x, respectively, or
"/etc/X11/xorg.conf" for X.org).
Add "800x600" (or whatever resolution(s) you want) to the
appropriate "Modes" line. (e.g., in the "Display" subsection that
contains 24-bit color depth ("Depth 24"), which is what Tux Paint
tries to use.)
Modes "1280x1024" "1024x768" "800x600" "640x480"
Note that some Linux distributions have tools that can make these
changes for you. Debian users can run the command
"dpkg-reconfigure xserver-xfree86" as root, for example.
Tux Paint keeps running in Full Screen mode - I want it windowed!
The "fullscreen" option is set.
If you're running Tux Paint from a command-line, make sure you're
not giving it a "--fullscreen" option.
If you're running Tux Paint by double-clicking an icon, check the
properties of the icon to see if "--fullscreen" is listed as a
command-line argument.
If a "--fullscreen" option isn't being sent on the command line,
check Tux Paint's configuration file for a line reading:
"fullscreen=yes".
Either remove that line, or simply run Tux Paint with the
command-line argument: "--windowed", which will override the
configuration file's setting.
Or use Tux Paint Config. and make sure "Fullscreen" (under "Video
& Sound") is not checked.
----------------------------------------------------------------------
Other Problems
Tux Paint won't run
If Tux Paint aborts with the message: "You're already running a
copy of Tux Paint!", this means it has been launched in the last
30 seconds. (On Unix/Linux, this message would appear in a
terminal console if you ran Tux Paint from a command-line. On
Windows, this message would appear in a file named "stdout.txt" in
the same folder where TuxPaint.exe resides (e.g., in "C:\Program
Files\TuxPaint").
A lockfile ("~/.tuxpaint/lockfile.dat" on Linux and Unix,
"userdata\lockfile.dat" on Windows) is used to make sure Tux Paint
isn't run too many times at once (e.g., due to a child impatiently
clicking its icon more than once).
Even if the lockfile exists, it contains the 'time' Tux Paint was
last run. If it's been more than 30 seconds, Tux Paint should run
fine, and simply update the lockfile with the current time.
If multiple users are sharing the directory where this file is
stored (e.g., on a shared network drive), then you'll need to
disable this feature.
To disable the lockfile, add the "--nolockfile" argument to Tux
Paint's command-line, or "nolockfile=yes" to the configuration
file.
I can't quit Tux Paint
The "no quit" option is set. This disables the "Quit" button in
Tux Paint's toolbar (greying it out), and prevents Tux Paint from
being exited via the [Escape] key.
If Tux Paint is not in fullscreen mode, simply click the window
close button on Tux Paint's title bar. (i.e., the "ⓧ" at the upper
right.)
If Tux Paint is in fullscreen mode, you will need to use the
[Shift] + [Control] + [Escape] sequence on the keyboard to quit
Tux Paint.
(Note: with or without "no quit" set, you can always use the [Alt]
+ [F4] combination on your keyboard to quit Tux Paint.)
I don't want "no quit" mode enabled!
If you're running Tux Paint from a command-line, make sure you're
not giving it a "--noquit" option.
If you're running Tux Paint by double-clicking an icon, check the
properties of the icon to see if "--noquit" is listed as a
command-line argument.
If a "--noquit" option isn't being sent on the command line, check
Tux Paint's configuration file for a line reading: "noquit=yes".
Either remove that line, or simply run Tux Paint with the
command-line argument: "--quit", which will override the
configuration file's setting.
Or use Tux Paint Config. and make sure "Disable Quit Button and
[Escape] Key" (under "Simplification") is not checked.
Tux Paint keeps writing weird messages to the screen / to a text file
A few messages are normal, but if Tux Paint is being extremely
verbose (like listing the name of every rubber-stamp image it
finds while loading them), then it was probably compiled with
debugging output turned on.
To change this, you must rebuild Tux Paint from source. Be sure to
remove or comment out any line that says:
#define DEBUG
in the "tuxpaint.c" file in the "src" directory.
Tux Paint is using options I didn't specify!
By default, Tux Paint first looks at configuration files for
options.
* Windows
Under Windows, Tux Paint first examines the configuration
file:
tuxpaint.cfg
Finally, any options sent as command-line arguments are used.
* macOS
* Unix and Linux
Under Unix and Linux, it first examines the system-wide
configuration file, located here:
/etc/tuxpaint/tuxpaint.conf
It then examines the user's personal configuration file:
~/.tuxpaintrc
Finally, any options sent as command-line arguments are used.
* Haiku
This means that if anything is set in a configuration file that
you don't want set, you'll need to either change the config. file
(if you can), or override the option on the command-line.
For example, on Linux and Unix, if "/etc/tuxpaint/tuxpaint.conf"
includes this option to disable sound...
nosound=yes
...then you can reenable sound by either adding this option to
your own ".tuxpaintrc" file:
sound=yes
...or by using this command-line argument:
--sound
Linux and Unix users can also disable the system-wide
configuration file by including the following command-line
argument:
--nosysconfig
Tux Paint will then only look at "~/.tuxpaintrc" and command-line
arguments to determine what options should be set.
----------------------------------------------------------------------
Help / Contact
Any questions you don't see answered? Please let us know! You can
subscribe and post to our "tuxpaint-users" mailing list:
https://tuxpaint.org/lists/
Or, contact lead developer Bill Kendrick directly:
bill@newbreedsoftware.com

View file

@ -0,0 +1,936 @@
Tux Paint
útgáfa 0.9.31
Installation Documentation
Höfundarréttur © 2002-2023 eftir various contributors; sjá AUTHORS-skrá.
https://tuxpaint.org/
13. maí 2023
+----------------------------------------------------+
|Efnisyfirlit |
|----------------------------------------------------|
| * Requirements |
| * Simple DirectMedia Layer library (libSDL) |
| * Other Libraries |
| * Compiling and Installation |
| * Windows |
| * Linux/Unix |
| * macOS |
| * Android |
| * Haiku |
| * Debugging |
| * Uninstalling Tux Paint |
| * Windows |
| * macOS |
| * Linux |
+----------------------------------------------------+
Requirements
Simple DirectMedia Layer library (libSDL)
Tux Paint requires the Simple DirectMedia Layer Library (libSDL), an Open
Source multimedia programming library available under the GNU Lesser
General Public License (LGPL).
Along with libSDL, Tux Paint depends on a number of other SDL 'helper'
libraries: SDL_Image (for graphics files), SDL_gfx (for some graphical
functions, like rotation), SDL_TTF and SDL2_Pango (for True Type Font
support) and, optionally, SDL_Mixer (for sound effects).
The SDL libraries are available as source-code, or as RPM or Debian
packages for various distributions of Linux. They can be downloaded from:
* libSDL: http://www.libsdl.org/
* SDL_image: https://github.com/libsdl-org/SDL_image
* SDL_gfx:
https://www.ferzkopp.net/wordpress/2016/01/02/sdl_gfx-sdl2_gfx/
(https://sourceforge.net/projects/sdlgfx/)
* SDL_ttf: https://github.com/libsdl-org/SDL_ttf
* SDL2_Pango: https://github.com/markuskimius/SDL2_Pango
* SDL_mixer: https://github.com/libsdl-org/SDL_mixer (optional)
They are also typically available along with your Linux distribution (e.g.
on an installation media, or available via package maintainance software
like Debian's "apt").
💡 Note: When installing libraries from packages, be sure to ALSO install
the development versions of the packages. (For example, install both
"SDL2-2.24.0.rpm" and "SDL2-devel-2.24.0.rpm".)
Other Libraries
Tux Paint also takes advantage of a number of other free, LGPL'd
libraries. Under Linux, just like SDL, they should either already be
installed, or are readily available for installation as part of your Linux
distribution.
libPNG
Tux Paint uses PNG (Portable Network Graphics) format for its data
files. SDL_image will require libPNG be installed.
http://www.libpng.org/pub/png/libpng.html
gettext
Tux Paint uses your system's locale settings along with the
"gettext" library to support various languages (e.g., Spanish).
You'll need the gettext library installed.
http://www.gnu.org/software/gettext/
libpaper (Linux/Unix only)
As of Tux Paint 0.9.17, Tux Paint can determine your system's
default paper size (e.g., A4 or Letter), or can be told to use a
particular paper size, thanks to "libpaper".
https://github.com/naota/libpaper
FriBiDi
Tux Paint's "Text" and also "Label" tools support bidirectional
languages, thanks to the "FriBiDi" library.
http://fribidi.org/
SVG graphics support
As of Tux Paint 0.9.17, Tux Paint can load SVG (Scalable Vector
Graphics) images as stamps. Two sets of libraries are supported,
and SVG support can be completely disabled (via "make SVG_LIB:=")
librsvg-2 & libCairo2 (newer libraries)
* libRSVG 2: http://librsvg.sourceforge.net/
* Cairo 2: http://www.cairographics.org/
* These also depend on the following:
* GdkPixbuf & GLib: http://www.gtk.org/
* Pango: http://www.pango.org/
Older SVG libraries
* libcairo1, libsvg1, & libsvg-cairo1:
http://www.cairographics.org/
* These also depend on the following:
* libxml2:
https://gitlab.gnome.org/GNOME/libxml2
Animated GIF Export feature
To support export of animated GIFs (slideshows), the
"libimagequant" library (from the "pngquant2" project) is
required.
https://github.com/ImageOptim/libimagequant
NetPBM Tools (optional) No longer used, by default
📜 Under Linux and Unix, earlier versions of Tux Paint used the
NetPBM tools to assist with printing. (A PNG is generated by Tux
Paint, and converted into a PostScript using the 'pngtopnm' and
'pnmtops' NetPBM command-line tools.)
http://netpbm.sourceforge.net/
Compiling and Installation
Tux Paint is released under the GNU General Public License (GPL) (see
"COPYING.txt" for details), and therefore the 'source code' to the program
is available freely.
------------------------------------------------------------------
Windows
10. júlí 2022 Shin-ichi TOYAMA <dolphin6k@wmail.plala.or.jp>
Compiling Set-Up
As of February 2005 (starting with Tux Paint 0.9.15), the "Makefile"
includes support for building on a Windows system using MinGW/MSYS
(https://sourceforge.net/projects/msys2/).
Many tools and libraries are required to build Tux Paint. The package
management system "pacman" helps you install them automatically solving
complicated dependencies.
MYSYS2
Download the latest MSYS2 environment from https://www.msys2.org/ and
install it where you'd like (the default is "C:\msys64")
Open the MSYS2 shell from the "Start Menu" → "MSYS2 64bit" → "MSYS2 MSYS"
and execute following command:
$ yes "" | pacman -Syu
This will update core system and the window will close automatically. Open
the msys2 shell again and execute following command to finish remaining
updating process.
$ yes "" | pacman -Syu
Within the MSYS2 shell, run the following command to install basic
development tools:
$ yes "" | pacman -S make automake-wrapper autoconf-wrapper libtool git
zip patch gperf dos2unix
Proceed to the next "MinGW 64bit (x86_64) toolchains" section, or skip to
the "MinGW 32bit (i686) toolchains" section if you need only a 32bit build
environment.
-------------------------------------------------------
MinGW 64bit (x86_64) compiler and tools
Within the MSYS2 shell, run the following command to install 64bit
compiler and basic development tools:
$ yes "" | pacman -S mingw-w64-x86_64-{gcc,pkgconf,ntldd-git}
"ntldd" is a small tool which examine windows executable files to list
Dynamic Link Library (.dll) files they depends on. Tux Paint's packaging
process for binary distribution uses it to find required .dll files.
64bit (x86_64) dependency libraries for Tux Paint and Tux Paint Config
You can install tools and libraries required for compiling Tux Paint and
Tux Paint Config on MSYS2/MINGW using "pacman" except for SDL2_Pango and
libunibreak.
FLTK is a cross-platform GUI toolkit used by "Tux Paint Config". You can
skip installing it if you are only building "Tux Paint".
$ pacman -S mingw-w64-x86_64-SDL_{image,ttf,gfx}
$ pacman -S mingw-w64-x86_64-{librsvg,fribidi,libimagequant,fltk}
💡 Note: Close the shell before proceeding to the remaining process.
Install SDL2_Pango and libunibreak on the 64bit environment
SDL2_Pango and libunibreak should be installed manually.
This time, use the MinGW "64bit" shell. Open the shell from the "Start
Menu" → "MSYS2 64bit" → "MSYS2 MinGW 64-bit"
SDL2_Pango
You can fetch the source code from the Mark K. Kim's git repositry,
compile and install it as follows.
$ git clone https://github.com/markuskimius/SDL2_Pango
$ cd SDL2_Pango
$ ./configure --prefix=/mingw64 && make && make install
libunibreak
libunibreak is required for compiling Tux Paint Config. You can skip
installing it if you are only building "Tux Paint".
You can fetch the source code from the git repositry and compile it as
follows.
$ git clone https://github.com/adah1972/libunibreak libunibreak
$ cd libunibreak
$ ./augogen.sh --prefix=/mingw64 && make && make install
Proceed to the next "MinGW 32bit (i686) toolchains" section, or skip to
the "ImageMagick" section if you need only a 64bit build environment.
-------------------------------------------------------
MinGW 32bit (i686) compiler and tools
Within the MSYS2 shell, run the following command to install 32bit
compiler and basic development tools:
$ yes "" | pacman -S mingw-w64-i686-{gcc,pkgconf,ntldd-git}
"ntldd" is a small tool which examine windows executable files to list
Dynamic Link Library (.dll) files they depends on. Tux Paint's packaging
process for binary distribution uses it to find required .dll files.
32bit (i686) dependency libraries for Tux Paint and Tux Paint Config
You can install tools and libraries required for compiling Tux Paint and
Tux Paint Config on MSYS2/MINGW using "pacman" except for SDL2_Pango and
libunibreak.
FLTK is a cross-platform GUI toolkit used by "Tux Paint Config". You can
skip installing it if you are only building "Tux Paint".
$ pacman -S mingw-w64-i686-SDL_{image,ttf,gfx}
$ pacman -S mingw-w64-i686-{librsvg,fribidi,libimagequant,fltk}
💡 Note: Close the shell before proceeding to the remaining process.
Install SDL2_Pango and libunibreak on the 32bit environment
SDL2_Pango and libunibreak should be installed manually.
This time, use the MinGW "32bit" shell. Open the shell from the "Start
Menu" → "MSYS2 64bit" → "MSYS2 MinGW 32-bit"
SDL2_Pango
You can fetch the source code from the Mark K. Kim's git repositry,
compile and install it as follows.
$ git clone https://github.com/markuskimius/SDL2_Pango
$ cd SDL2_Pango
$ ./configure --prefix=/mingw32 && make && make install
libunibreak
libunibreak is required for compiling Tux Paint Config. You can skip
installing it if you are only building "Tux Paint".
You can fetch the source code from the git repositry and compile it as
follows.
$ git clone https://github.com/adah1972/libunibreak libunibreak
$ cd libunibreak
$ ./augogen.sh --prefix=/mingw32 && make && make install
ImageMagick
ImageMagick is a compilation of command line tools to create, edit,
compose, or convert bitmap images supporting quite a large number of image
formats. Tux Paint uses two functions ("convert" and "composite") in it to
generate thumbnails for startar images and templates during the build
process.
Using official binary release available from "Windows Binary Release" is
recommended, due to the commands installed with "pacman" on MinGW/MSYS not
working as expected!
Do not forget to enable "Install legacy utilities (e.g. convert)" while
installing it, because Tux Paint's build process uses them.
Add the path to the directory in which ImageMagick is installed at the top
of your "PATH" environment variable. For example:
$ export PATH=/c/Program\ Files/ImageMagick-7.0.10-Q16-HDRI:$PATH
You can make this permanent by adding the above to your the BASH shell
configuration file, "~/.bash_profile".
Tux Paint & Tux Paint Config.
You can compile 64-bit binaries using "MSYS2 64bit" shell, and 32-bit
binaries using "MSYS2 32bit" shell, respectively.
* Select "MSYS2 64bit" → "MSYS2 MinGW 64-bit" from the "Start Menu" to
open the 64bit shell.
* Select "MSYS2 64bit" → "MSYS2 MinGW 32-bit" from the "Start Menu" to
open the 32bit shell.
Tux Paint Config.
"Tux Paint Config" is a useful graphical tool for tweaking Tux Paint's
behavior. You have to build this component before compiling Tux Paint if
you want to have it included in your package.
You can use either (a) a stable tar-ball release, or (b) the developing
source tree.
a. Using stable tar-ball release:
* Download a source tar-ball
* Expand the tar-ball and change the directory name so that the
final packaging process can find related files.
$ tar zxvf tuxpaint-config-A.B.C.tar.gz
$ mv tuxpaint-config-A.B.C tuxpaint-config
b. Using the developing source tree:
* Fetch the developing source tree from git repository:
$ git clone https://git.code.sf.net/p/tuxpaint/tuxpaint-config
tuxpaint-config
Now you can build Tux Paint Config. as follows:
$ cd tuxpaint-config
$ make win32
Tux Paint
You can use either (a) a stable tar-ball release, or (b) the developing
source tree.
a. Using stable tar-ball release:
* Download a source tar-ball
* Expand the tar-ball and change the directory name so that the
final packaging process can find related files.
$ tar zxvf tuxpaint-A.B.C.tar.gz
$ mv tuxpaint-A.B.C tuxpaint
b. Using the developing source tree:
* Fetch the developing source tree from git repository:
$ git clone https://git.code.sf.net/p/tuxpaint/tuxpaint
tuxpaint
Now you can build Tux Paint as follows:
$ cd tuxpaint
$ make bdist-win32
All the files needed for starting Tux Paint (and Tux Paint Config.) are
collected in the directory for binary distribution "bdist" directory under
"win32". You can start them by double-clicking their executable (.exe)
files in the "bdist" directory.
Building the Tux Paint Windows Installer
Inno Setup is used to build executable installer for Tux Paint. Therefore
you have to install it in the first place.
Inno Setup officially supports translations for only about 20 languages.
However, one of the great points of Tux Paint is it supports so many
languages. Therefore, the set up script "tuxpaint.iss" to build the
installer is written to use much more translations including unofficial
one which are available on "Inno Setup Translations". You have to download
translation files (.isl) required and put them in "Languages" directory
under the directory in which Inno Setup is installed.
Before building an installer, edit the "tuxpaint.iss" file and enable one
of the lines starting with "#define BuildTarget=", depending on the
architecture of the installer you want to create.
Then, you can easily build an executable installer by right-clicking on
the "tuxpaint.iss" icon in the "win32" directory and selecting "Compile"
on the list. It will run for a while, and eventually you will find a
"tuxpaint-X.Y.Z-windows-<arch>-installer.exe" file in the same directory.
Running the Tux Paint Windows Installer
Double-click the Tux Paint installer executable (.EXE file) and follow the
instructions.
First, you will be asked to read the license. (It is the GNU General
Public License (GPL), which is also available as "COPYING.txt".)
You will then be asked whether you want to install shortcuts to Tux Paint
in your Windows Start Menu and on your Windows Desktop. (Both options are
set by default.)
Then you will be asked where you wish to install Tux Paint. The default
should be suitable, as long as there is space available. Otherwise, pick a
different location.
At this point, you can click 'Install' to install Tux Paint!
Changing the Settings Using the Shortcut
To change program settings, right-click on the TuxPaint shortcut and
select 'Properties' (at the bottom).
Make sure the 'Shortcut' tab is selected in the window that appears, and
examine the 'Target:' field. You should see something like this:
"C:\Program Files\TuxPaint\TuxPaint.exe"
You can now add command-line options which will be enabled when you
double-click the icon.
For example, to make the game run in fullscreen mode, with simple shapes
(no rotation option) and in French, add the options (after
'TuxPaint.exe'), like so:
"C:\Program Files\TuxPaint\TuxPaint.exe" -f -s --lang french
(See the main documentation for a full list of available command-line
options.)
If you make a mistake or it all disappears use [Control] + [Z] to undo or
just hit the [Esc] key and the box will close with no changes made (unless
you pushed the "Apply" button!).
When you have finished, click "OK."
If Something Goes Wrong
If, when you double-click on the shortcut to run Tux Paint, nothing
happens, it is probably because some of these command-line options are
wrong. Open an Explorer, and look for a file called "stderr.txt" in your
personal saving folder for TuxPaint which is normaly
"C:\Users\username\AppData\Roaming\TuxPaint".
It will contain a description of what was wrong. Usually it will just be
due to incorrect character-case (capital 'Z' instead of lowercase 'z') or
a missing (or extra) '-' (dash).
------------------------------------------------------------------
Linux/Unix
Compiling:
💡 Note: Tux Paint does not use autoconf/automake, so there is no
"./configure" script to run. Compiling should be straight-forward though,
assuming everything Tux Paint needs is installed.
To compile the program from source, simply run the following command from
a shell prompt (e.g., "$"):
$ make
Disabling SVG support (and hence Cairo, libSVG, and svg-cairo dependencies):
To disable SVG support (e.g., if your system is not currently supported by
the Cairo library or other SVG-related dependencies), you can run "make"
with "SVG_LIB= SVG_CFLAGS= NOSVGFLAG=NOSVG" added:
$ make SVG_LIB= SVG_CFLAGS=
Disabling Sound at Compile-time
If you don't have a sound card, or would prefer to build the program with
no sound support (and therefore without a the SDL_mixer dependency), you
can run "make" with "SDL_MIXER_LIB=" added:
$ make SDL_MIXER_LIB=
Other options
Various other options (e.g., installation paths) may be overridden; see
them in "Makefile" for further details.
If you get errors
If you receive any errors during compile-time, make sure you have the
appropriate libraries installed (see above). If using packaged versions of
the libraries (e.g., RPMs under RedHat or DEBs under Debian), be sure to
get the corresponding "-dev" or "-devel" packages as well, otherwise you
won't be able to compile Tux Paint (and other programs) from source!
Installng
Assuming no fatal errors occured, you can now install the program so that
it can be run by users on the system. By default, this must be done by the
"root" user ('superuser'). Switch to "root" by typing the command:
$ su
Enter "root"'s password at the prompt. You should now be "root" (with a
prompt like "#"). To install the program and its data files, type:
# make install
Finally, you can switch back to your regular user by exiting superuser
mode:
# exit
Alternatively, you may be able to simply use the "sudo" command (e.g., on
Ubuntu Linux):
$ sudo make install
💡 Note: By default, "tuxpaint", the executable program, is placed in
"/usr/local/bin/". The data files (images, sounds, etc.) are placed in
"/usr/local/share/tuxpaint/".
Changing Where Things Go
You can change where things will go by setting "Makefile"variables on the
command line. "DESTDIR" is used to place output in a staging area for
package creation. "PREFIX" is the basis of where all other files go, and
is, by default, set to "/usr/local".
Other variables are:
BIN_PREFIX
Where the "tuxpaint" binary will be installed. (Set to
"$(PREFIX)/bin" by default - e.g., "/usr/local/bin")
DATA_PREFIX
Where the data files (sound, graphics, brushes, stamps, fonts)
will go, and where Tux Paint will look for them when it's run.
(Set to "$(PREFIX)/share/tuxpaint")
DOC_PREFIX
Where the documentation text files (the "docs" directory) will go.
(Set to "$(PREFIX)/share/doc/tuxpaint")
MAN_PREFIX
Where the manual page for Tux Paint will go. (Set to
"$(PREFIX)/share/man")
ICON_PREFIX — $(PREFIX)/share/pixmaps
X11_ICON_PREFIX — $(PREFIX)/X11R6/include/X11/pixmaps
GNOME_PREFIX — $(PREFIX)/share/gnome/apps/Graphics
KDE_PREFIX — $(PREFIX)/share/applnk/Graphics
Where the icons and launchers (for GNOME and KDE) will go.
LOCALE_PREFIX
Where the translation files for Tux Paint will go, and where Tux
Paint will look for them. (Set to "$(PREFIX)/share/locale/")
(Final location of a translation file will be under the locale's
directory (e.g., "es" for Spanish), within the "LC_MESSAGES"
subdirectory.)
💡 Note: This list is out of date. See "Makefile" and "Makefile-i18n" for a
complete list.
------------------------------------------------------------------
macOS
5. júní 2022 Mark Kim <markuskimius@gmail.com>
Starting with Tux Paint 0.9.23, Tux Paint for macOS is built as though it
were a Linux application.
Prerequisites
Although Tux Paint is built without the Xcode IDE, Xcode itself is still
required to build Tux Paint. Download it from the App Store, and launch it
once to accept its license agreements. You may also need to install the
Xcode command line tools using the command:
$ xcode-select --install
Building Tux Paint also requires various libraries. We install them from
MacPorts where possible, source code otherwise. Install MacPorts to the
default /opt/local path according to the instructions found on their
website: https://www.macports.org/
* ImageMagick
* cairo
* fribidi
* lbzip2
* libimagequant^*
* libpaper
* libpng
* librsvg
* libsdl2
* libsdl2_image
* libsdl2_mixer
* libsdl2_pango^*
* libsdl2_ttf
* libsdl2_gfx
* pkgconfig
* zlib
... but you should install any package that is required by the latest
version of Tux Paint.
^* Not available from MacPorts as of this writing, see below.
libimagequant
libimagequant is not available from MacPorts as of this writing. It can be
installed from the source code as follows. It should be installed to
/opt/local (same as MacPorts) for the library to be included in
TuxPaint.dmg.
$ sudo port install rust cargo
$ git clone https://github.com/ImageOptim/libimagequant.git
$ cd libimagequant/imagequant-sys
$ cargo build --release # Must use cargo from MacPorts
$ sudo make PREFIX=/opt/local install
sdl2_pango
sdl2_pango is not available from MacPorts as of this writing. It can be
installed from the source code as follows. It should be installed to
/opt/local (same as MacPorts) for the library to be included in
TuxPaint.dmg.
$ git clone https://github.com/markuskimius/SDL2_Pango.git
$ cd SDL2_Pango
$ ./configure --prefix=/opt/local && make && sudo make install
WARNING: Having any UNIX-like toolset installed on your Mac besides
MacPorts and Xcode, such as Fink or Brew, will prevent your app bundle
from being portable. Be sure Fink and Brew are not accessible from your
build environment.
How to Build
Simply, run:
% make
% make install
... to create the TuxPaint.app application bundle that can be run in-place
or copied to /Applications. To create the DMG file for distribution, use
'make TuxPaint.dmg'.
Additional steps may be required when building for the Apple Silicon. See
"Building for Apple Silicon" below.
Known Issues
* A macOS binary built on a specific version of macOS only runs on that
version of macOS or later. To ensure Tux Paint can run on the oldest
version of macOS possible, build it on the oldest version of macOS
available. As of this writing we know Tux Paint cannot be built to run
on macOS 10.7 or earlier.
See "Old Versions of macOS" below for best-effort instructions on how
to obtain, install, and build Tux Paint on an old version of macOS.
Alternatively, Tux Paint and all of its library dependencies may be
compiled with appropriate options to be runnable on older versions of
macOS. These options are already set on Tux Paint, so only its
dependencies (from MacPorts) need to be recompiled. See "Recompiling
MacPorts" below for the instructions.
Old Versions of macOS
Some old versions of macOS can be downloaded from Apple's support page:
https://support.apple.com/en-us/HT211683
macOS for Intel CPU does allow dual booting of multiple versions of the
OS, but it's safer and easier to install the old macOS onto a flash drive.
Wherever you're installing it, the target drive's partitioniong scheme and
partition type must match what the old macOS expects, so use the Disk
Utility to partition and format the flash drive accordingly.
Dual booting multiple versions of macOS for Apple Silicon has been so far
unsuccessful. Instead of installing an older version of macOS for Apple
Silicon to build Tux Paint to run on the old version of macOS for Apple
Silicon, use the instructions found in the "Recompiling MacPorts" section
to build Tux Paint to run on older versions of macOS for Apple Silicon.
As of this writing, the oldest version of macOS available on Apple's
support site is Yosemite 10.10, which expects "GPT (GUID Partition Table)"
partitioning scheme instead of the older MBR scheme, and "Mac OS Extended
(Journaled)" as the partition type instead of the newer APFS partition
type.
Upon launching the installer, if you get a popup about macOS being too old
or new to be installed, a bootable installer can be created using the
instructions found here: https://support.apple.com/en-mide/HT201372
Once the old macOS is installed, you may find the Xcode on the App Store
is too new to run on the version of the old macOS. Old versions of Xcode
can be downloaded from Apple's Developer site in an area accessible with
free registration: https://developer.apple.com/download/more/
The list of macOS versions and the last version of Xcode compatible with
them are laid out nicely on the Wikipedia page on Xcode:
https://en.wikipedia.org/wiki/Xcode#Version_comparison_table
And because Xcode is being installed manually, you can skip the step to
install the Xcode command line tools (do not run "xcode-select --install")
but otherwise build Tux Paint using the same steps described in the
earlier part of this document.
Recompiling MacPorts
To recompile MacPorts to be usable on older versions of macOS, set the
following options in /opt/local/etc/macports/macports.conf:
buildfromsource always
macosx_deployment_target 10.10
Then uninstall all MacPorts packages:
$ sudo port -fp uninstall installed
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild
libimagequant using the updated Cargo package from MacPorts.
As of this writing, all libraries Tux Paint requires from MacPorts can be
recompiled in this manner to run on macOS 10.10 Yosemite and later on
Intel CPUs, and macOS 11.0 Big Sur and later on Apple Silicon.
Unfortunately, although MacPorts has the option to enable the building of
universal libraries, several libraries Tux Paint require cannot be built
as universal libraries so they can only be built to run natively on the
hardware on which they were built. See "Building a Universal Binary" below
for instructions on how to build Tux Paint as a Universal Binary.
Building for Apple Silicon
macOS for Apple Silicon requires all native Apple Silicon applications be
signed, even if it is signed "ad-hoc" (anonymously). Because of this,
compilers that produce native Apple Silicon applications sign all produced
binaries and libraries as a part of the compilation process.^* However,
the Tux Paint compilation process modifies the libraries to be modular
(using install_name_tool) so they can be added into the application
bundle, which has the unfortunate side effect of breaking the signature.
This can be addressed by signing the application bundle ad-hoc (example
below) or using your own Apple Developer Identity if you have one. The DMG
file, if needed, must be created after signing the App Bundle so the DMG
file is created with signed App Bundle:
$ codesign -s - TuxPaint.app
$ make TuxPaint.dmg
^* For more information on the code signing requirements on the Apple
Silicon, see
https://developer.apple.com/documentation/macos-release-notes/macos-big-sur-11_0_1-universal-apps-release-notes#:~:text=New%20in%20macOS,pass%20through%20Gatekeeper.
If you get an error that the application bundle is already signed, remove
it before signing:
$ codesign --remove-signature TuxPaint.app
If you plan to combine the Apple Silicon bundle with the Intel CPU bundle
to produce the Universal bundle, the code signing must be done after they
are combined. See "Building a Universal Binary" below.
Building a Universal Binary
To build Tux Paint as a Universal Binary, compile Tux Paint for the Intel
CPU and the Apple Silicon separately first. Then rename the app bundle for
the Intel CPU to TuxPaint-x86_64.app, and the bundle for the Apple Silicon
to TuxPaint-arm64.app, copy the app bundle from the Intel machine to the
Apple Silicon machine, then use the provided build-universal.sh script to
combine the two application bundles as below. The produced bundle must be
signed (see "Building for Apple Silicon" above for more details). The DMG
file, if required, must be built after the signing:
$ macos/build-universal.sh
$ codesign -s - TuxPaint.app
$ make TuxPaint.dmg
------------------------------------------------------------------
Android
29. mars 2023 Pere Pujal i Carabantes <perepujal@gmail.com> (Edited by
Bill Kendrick)
As of March 2023, the Android build of Tux Paint is maintained in a
separate code repository at GitHub:
https://github.com/tux4kids/Tuxpaint-Android. Detailed instructions are
there; this acts as an overview.
Prerequisites
You will need recent versions of:
* Gradle — build automation tool
* Android Studio (Software Development Kit (SDK)) — to support Android
app development (Java)
* Android Native Development Kit (NDK) — to support native development
in C/C++
To compile the latest Tux Paint, one has to sync the main SourceForge
project's tuxpaint Git repository with the GitHub project's
TuxPaint-Android Git repository. (Pere uses a shell script that backs up
the app/src/main/jni/tuxpaint directory in the Tuxpaint-Android GitHub
repo and makes a build of SourceForge's tuxpaint to generate translations
and other things that are not autogenerated in the Android builds, and
then copies the SourceForge tuxpaint back to Tuxpaint-Android.) (FIXME: It
should be checked-in somewhere. For now, see
https://sourceforge.net/p/tuxpaint/feature-requests/224/)
For it to run you need the tuxpaint and Tuxpaint-Android sources one next
to one another, and the script in the directory containing both.
Fill the app/src/main/assets directory by running cd
app/src/main/jni/tuxpaint && ./mkzip_assets.sh
Building
The Gradle build generates some variants: PlayStore, debugPlayStore,
offPlayStore and debugoffPlayStore. You must sign the non-debug ones to be
able to install them. (FIXME: Link to info on how to sign.) (Note:
"playStore" ones are intended to be uploaded to Google Play; this is
currently managed by Terrence Sheflin —March 2023. "offPlayStore" is the
flavor that we distribute as APK files on the Tux Paint website and
SourceForge file hosting, and is the variant built by the F-Droid app.
repository.)
To trigger a build from F-droid, it suffices to tag a commit and push it
to GitHub. That doesn't guarantee the build will succeed though, so Pere
usually runs a local F-droid server to test the build and eventually adapt
the F-droid's build receipt before pushing the tag to GitHub.
The builds Pere distributes are all made with that local F-droid server.
It has the advantage of packing the sources and logs, and signing the APK.
Most importantly, it uses the same tools F-Droid will use to build Tux
Paint, so you can detect problems beforehand.
The receipt Pere uses for F-Droid builds is in the metadata dir of
https://gitlab.com/fdroid/fdroiddata. The F-Droid server code is at
https://gitlab.com/fdroid/fdroidserver. To generate the server you will
need 1GB free on disk. Run the makebuildserver tool they provide, then,
from the root of fdroiddata, run ../fdroidserver/fdroid build --server
org.tuxpaint:NNNN (NNNN = version, e.g. 9288)
------------------------------------------------------------------
Haiku
7. maí 2023 Luc Schrijvers <begasus@gmail.com> (Edited by Bill Kendrick)
Prerequisites
Install the required develop packages in Terminal:
32-bit:
pkgman install xcairo_x86_devel fribidi_x86_devel
gdk_pixbuf_x86_devel libiconv_x86_devel libimagequant_x86_devel
gettext_x86_libintl libpaper_x86_devel pango_x86_devel
libpng16_x86_devel librsvg_x86_devel libsdl2_x86_devel
sdl2_image_x86_devel sdl2_gfx_x86_devel sdl2_mixer_x86_devel
sdl2_pango_x86_devel sdl2_ttf_x86_devel zlib_x86_devel
64-bit:
pkgman install xcairo_devel fribidi_devel gdk_pixbuf_devel
libiconv_devel libimagequant_devel gettext_libintl libpaper_devel
pango_devel libpng16_devel librsvg_devel libsdl2_devel
sdl2_image_devel sdl2_gfx_devel sdl2_mixer_devel sdl2_pango_devel
sdl2_ttf_devel zlib_devel
For 32-bit you need to switch to the new compiler (currently gcc 11.2.0)
with setarch x86
Building
make PREFIX=/boot/home/config/non-packaged
Tux Paint Stamps
make install-all
DATA_PREFIX=/boot/home/config/non-packaged/share/tuxpaint/
Debugging
⚙ Debugging output — to "STDOUT" on Linux and Unix, to a "stdout.txt" file
on Windows, and to the file "/tmp/tuxpaint.log" on macOS — can be enabled
by setting "DEBUG" (and, if verbose logging is wanted, "VERBOSE") #defines
in "src/debug.h" and (re)compiling Tux Paint.
Uninstalling Tux Paint
Windows
Using the Uninstaller
If you installed the Start Menu shortcuts (the default), then go to the
TuxPaint folder and select "Uninstall". A box will be displayed that will
confirm that you are about to uninstall Tux Paint and, if you are certain
that you want to permanently remove Tux Paint, click on the 'Uninstall'
button.
When it has finished, click on the close button.
Using the Control Panel
It is also possible to use the entry "TuxPaint (remove only)" in the
Control Panel Add/Remove programs section.
macOS
Delete "TuxPaint.app" from the "Applications" folder. Data files,
including the configuration files, stamps, and saved pictures, may be
found in "/Library/Application Support/TuxPaint" (all users) and
"/Users/USERNAME/Library/Application Support/TuxPaint" (individual users).
Linux
Within the Tux Paint source directory (where you compiled Tux Paint), you
can use the "make uninstall" target to uninstall Tux Paint. By default,
this must be done by the "root" user ('superuser'), but if you installed
Tux Paint somewhere else (e.g., using a "PREFIX=..." setting to "make" and
"make install"), you may not, and will want to provide those same settings
here. (See the installation instructions above for further information.)

File diff suppressed because it is too large Load diff

2011
docs/is_IS.UTF-8/OPTIONS.txt Normal file

File diff suppressed because it is too large Load diff

88
docs/is_IS.UTF-8/PNG.txt Normal file
View file

@ -0,0 +1,88 @@
Tux Paint
útgáfa 0.9.31
PNG Documentation
Höfundarréttur © 2007-2022 eftir various contributors; sjá AUTHORS-skrá.
https://tuxpaint.org/
4. júní 2022
About PNGs
PNG is the Portable Network Graphic format. It is an open standard, not
burdened by patents (like GIFs). It is a highly compressed format (though
not "lossy" like JPEGs - lossiness allows files to be much smaller, but
introduces 'mistakes' in the image when saved), and supports 24-bit color
(16.7 million colors) as well as a full "alpha channel" - that is, each
pixel can have a varying degree of transparency.
For more information, visit: http://www.libpng.org/
These features (openness, losslessness, compression, transparency/alpha)
make it the best choice for Tux Paint. (Tux Paint's support for the PNG
format comes from the Open Source SDL_Image library, which in turn gets it
from the libPNG library.)
Support for many colors allows photo-quality "rubber stamp" images to be
used in Tux Paint, and alpha transparency allows for high-quality brushes.
How To Make PNGs
The following is a very brief list of ways to create PNGs or convert
existing images into PNGs.
GIMP & Krita
Excellent tools with which to create PNG images for use in Tux
Paint are GIMP and Krita, both high-quality Open Source
interactive drawing and photo editing programs.
It is likely that one or both are already installed on your
system. If not, they should be readily available from your Linux
distribution's software repository. If not, or to learn more,
visit http://www.gimp.org/ and http://www.krita.org/,
respectively.
Command-line Tools
NetPBM
The Portable Bitmap tools (collectively known as
"NetPBM") is a collection of Open Source command-line
tools which convert to and from various formats,
including GIF, TIFF, BMP, PNG, and many more.
It is possible that it's already installed on your
system. If not, they it be readily available from
your Linux distribution's software repository. If
not, or to learn more, visit
http://netpbm.sourceforge.net/.
cjpeg/djpeg
The "cjpeg" and "djpeg" command-line programs convert
between the NetPBM Portable Any Map (PNM) format and
JPEGs. It is possible that it's already installed on
your system. If not, they it be readily available
from your Linux distribution's software repository.
If not, or to learn more, visit
https://jpegclub.org/.
Proprietary Software for Windows
* CorelDRAW (Corel) — http://www.corel.com/
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Paint Shop Pro (Corel) — https://www.paintshoppro.com/
* Photoshop (Adobe) —
http://www.adobe.com/products/photoshop.html
* PIXresizer (Bluefive software) —
http://bluefive.pair.com/pixresizer.htm
Macintosh Users
* CorelDRAW (Corel) — http://www.corel.com/
* GraphicConverter (Lemke Software) —
https://www.lemkesoft.de/mac-fotobearbeitung-mac-diashow-mac-grafikprogramm-mac-bildbetrachter/
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Photoshop (Adobe) —
http://www.adobe.com/products/photoshop.html

1257
docs/is_IS.UTF-8/README.txt Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,53 @@
Tux Paint
útgáfa 0.9.31
Signals Documentation
Höfundarréttur © 2019-2022 eftir various contributors; sjá AUTHORS-skrá.
https://tuxpaint.org/
4. júní 2022
Tux Paint responds to the following signals (which can be sent to the
program's process via `kill` or `killall`, for example).
SIGTERM (also, [Control] + [C] from a terminal running `tuxpaint`)
Tux Paint responds as if the "Quit" button were pressed, or the
desktop environment was told to close Tux Paint (e.g., by clicking
a window close button, or pressing [Alt] + [F4] on most systems).
From the main interface, Tux Paint will prompt whether or not you
wish to quit, and (unless overridden by the auto-save option, e.g.
"--autosave") if you'd like to save the current drawing (if
unsaved), and if so, and it's a modified version of an existing
drawing (unless overridden by the options to save over old images,
or always save new images; e.g. "--saveover" and "--saveovernew",
respectively), whether or not to overwrite the existing drawing,
or save to a new file.
Example: killall tuxpaint
💡 Note: From other parts of the interface, the signal is currently
interpreted as a request to go back (e.g., from the "New" dialog
back to the main interface), as if a "Back" button in Tux Paint
were clicked, or the [Esc] was key pressed.
SIGUSR1 & SIGUSR2
Tux Paint responds by setting its auto-save option (as if it had
been launched with "--autosave"), as well as either the option to
always save new images (as if launched with "--saveovernew") in
the case of receiving a SIGUSR1 signal, or to always save over the
existing image (as if launched with "--saveover") in the case of
receiving SIGUSR2. Then Tux Paint sends itself a SIGTERM signal,
in an attempt to quit. (See above.)
So, from the main interface, Tux Paint should quit almost
immediately, with no questions asked.
Example: killall -s SIGUSR1 tuxpaint
💡 Note: From other parts of the interface, unfortunately, Tux
Paint will go back one level in the interface. Therefore, at this
time, it may be necessary to send this signal to Tux Paint a few
times, for it to quit completely.

36
docs/is_IS.UTF-8/SVG.txt Normal file
View file

@ -0,0 +1,36 @@
Tux Paint
útgáfa 0.9.31
SVG Documentation
Höfundarréttur © 2007-2022 eftir various contributors; sjá AUTHORS-skrá.
https://tuxpaint.org/
4. júní 2022
About SVGs
SVG (Scalable Vector Graphics) is an open standard used to describe
two-dimensional vector graphics. It is great for diagrams and shapes,
while PNGs are better for photographs. SVG files are a bit like
instructions on how to make an image. This means that they can be resized
without looking pixelated or blocky.
For more information, visit: https://www.w3.org/Graphics/SVG/
How to make SVGs
An excellent tool with which to create SVG images for use in Tux Paint is
Inkscape, a high-quality Open Source interactive drawing program available
for Windows, macOS, and Linux. There are also other applications that can
produce SVGs, both free/open source, and commerical/proprietary.
Open Source
* Inkscape — http://www.inkscape.org/
* Karbon — https://calligra.org/karbon/
Proprietary
* CorelDRAW (Corel) — https://www.coreldraw.com/en/
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Boxy SVG — https://boxy-svg.com/
* Sketch (Sketch B.V.) — https://boxy-svg.com/

View file

@ -0,0 +1,294 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Tux Paint Advanced Stamps 'How-To' </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
height="210"
alt="Tux Paint"><br>
útgáfa 0.9.31 Advanced Stamps 'How-To' </h1>
<p>
Höfundarréttur &copy; 2006-2022 eftir Albert Cahalan and others; sjá <a href="../../AUTHORS.txt">AUTHORS-skrá</a>.<br>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a>
</p>
<p>
4. júní 2022 </p>
</center>
<hr size="2"
noshade>
<table border="2"
cellspacing="0"
cellpadding="2"
summary="Efnisyfirlit">
<tr>
<th>
Efnisyfirlit </th>
</tr>
<tr>
<td>
<ul>
<li>
<a href="#about">About this 'How-To'</a>
</li>
<li>
<a href="#choice">Image choice is crucial</a>
</li>
<li>
<a href="#prepare_mask">Prepare the mask</a>
</li>
<li>
<a href="#replace_fringe">Replace the fringe and junk pixels</a>
</li>
<li>
<a href="#save">Save the image for Tux Paint</a>
</li>
</ul>
</td>
</tr>
</table>
<hr size="2"
noshade>
<hr size="2"
noshade>
<h2>
<a name="about" id="about">
About this 'How-To' </a>
</h2>
<blockquote>
<p>
This 'How-To' assumes that you want to make an excellent Tux Paint stamp, in PNG bitmapped format, from a JPEG image (e.g., a digital photograph). There are easier and faster methods that produce lower quality. </p>
<p>
This 'How-To' assumes you are dealing with normal opaque objects. Dealing with semi-transparent objects (fire, moving fan blade, kid's balloon) or light-giving objects (fire, lightbulb, sun) is best done with custom software. Images with perfect solid-color backgrounds are also best done with custom software, but are not troublesome to do as follows. </p>
</blockquote>
<hr size="2"
noshade>
<h2>
<a name="choice" id="choice">
Image choice is crucial </a>
</h2>
<blockquote>
<h3>
License </h3>
<blockquote>
<p>
If you wish to submit artwork to the Tux Paint developers for consideration for inclusion in the official project, or if you wish to release your own copy of Tux Paint, bundled with your own graphics, you need an image that is compatible with the GNU General Public License used by Tux Paint. </p>
<p>
Images produced by the US government are Public Domain, but be aware that the US government sometimes uses other images on the web. <a href="http://images.google.com/">Google image</a> queries including either <code>site:gov</code> or <code>site:mil</code> will supply many suitable images. (Note: the *.mil sites include non-military content, too!) </p>
<p>
Your own images can be placed in the Public Domain or a suitable license, such as the <a href="https://creativecommons.org/publicdomain/zero/1.0/">Creative Commons CC0</a> by declaring it so. (Hire a lawyer if you feel the need for legal advice.) </p>
<p>
For personal use, any image you can legitimately modify and use for your own personal use should be fine. </p>
</blockquote>
<h3>
Image Size and Orientation </h3>
<blockquote>
<p>
You need an image that has a useful orientation. Perspective is an enemy. Images that show an object from the corner are difficult to fit into a nice drawing. As a general rule, telephoto side views are the best. The impossible ideal is that, for example, two wheels of a car are perfectly hidden behind the other two. </p>
<p>
Rotating an image can make it blurry, especially if you only rotate by a few degrees. Images that don't need rotation are best, images that need lots of rotation (30 to 60 degrees) are next best, and images that need just a few degrees are worst. Rotation will also make an image darker because most image editing software is very bad about gamma handling. (Rotation is only legitimate for gamma=1.0 images.) </p>
<p>
Very large images are more forgiving of mistakes, and thus easier to work with. Choose an image with an object that is over 1000 pixels across if you can. You can shrink this later to hide your mistakes. </p>
<p>
Be sure that the image is not too grainy, dim, or washed out. </p>
<p>
Pay attention to feet and wheels. If they are buried in something, you will need to draw new ones. If only one is buried, you might be able to copy the other one as a replacement. </p>
</blockquote>
</blockquote>
<hr size="2"
noshade>
<h2>
Prepare the image </h2>
<blockquote>
<p>
First of all, be sure to avoid re-saving the image as a JPEG. This causes quality loss. There is a special tool called <a href="https://jpegclub.org/">jpegtran</a> that lets you crop an image without the normal quality loss. </p>
<blockquote>
<p>
<code>jpegtran -trim -copy none -crop 512x1728+160+128 &lt; src.jpg &gt; cropped.jpg</code>
</p>
</blockquote>
<p>
Bring that image up in your image editor. If you didn't crop it yet, you may find that your image editor is very slow. Rotate and crop the image as needed. Save the image — choose whatever native format supports layers, masks, alpha, etc. <a href="http://www.gimp.org/">GIMP</a> users should choose "XCF", and Adobe Photoshop users should choose "PSD", for example. </p>
<p>
If you have rotated or cropped the image in your image editor, flatten it now. You need to have just one RGB layer <i>without mask or alpha</i>. </p>
<p>
Open the layers dialog box. Replicate the one layer several times. From top to bottom you will need something like this: </p>
<ol>
<li>unmodified image (write-protect this if you can)</li>
<li>an image you will modify — the "work in progress" layer</li>
<li>solid green (write-protect this if you can)</li>
<li>solid magenta (write-protect this if you can)</li>
<li>unmodified image (write-protect this if you can)</li>
</li>
</ol>
<p>
Give the work in progress (WIP) layer a rough initial mask. You might start with a selection, or by using the grayscale value of the WIP layer. You might invert the mask. </p>
<p>
<b>Warning:</b> once you have the mask, you may not rotate or scale the image normally. This would cause data loss. You will be given special scaling instructions later. </p>
</blockquote>
<hr size="2"
noshade>
<h2>
<a name="prepare_mask" id="prepare_mask">
Prepare the mask </a>
</h2>
<blockquote>
<p>
Get used to doing <b>[Control]</b>-click and <b>[Alt]</b>-click on the thumbnail images in the layers dialog. You will need this to control what you are looking at and what you are editing. Sometimes you will be editing things you can't see. For example, you might edit the mask of the WIP layer while looking at the unmodified image. Pay attention so you don't screw up. Always verify that you are editing the right thing. </p>
<p>
Set an unmodified image as what you will view (the top one is easiest). Set the WIP mask as what you will edit. At some point, perhaps not immediately, you should magnify the image to about 400% (each pixel of the image is seen and edited as a 4x4 block of pixels on your screen). </p>
<p>
Select parts of the image that need to be 100% opaque or 0% opaque. If you can select the object or background somewhat accurately by color, do so. As needed to avoid selecting any pixels that should be partially opaque (generally at the edge of the object) you should grow, shrink, and invert the selection. </p>
<p>
Fill the 100% opaque areas with white, and the 0% opaque areas with black. This is most easily done by drag-and-drop from the foreground/background color indicator. You should not see anything happen, because you are viewing the unmodified image layer while editing the mask of the WIP layer. Large changes might be noticable in the thumbnail. </p>
<p>
Now you must be zoomed in. </p>
<p>
Check your work. Hide the top unmodified image layer. Display just the mask, which should be a white object on a black background (probably with unedited grey at the edge). Now display the WIP layer normally, so that the mask is active. This should show your object over top of the next highest enabled layer, which should be green or magenta as needed for maximum contrast. You might wish to flip back and forth between those backgrounds by repeatedly clicking to enable/disable the green layer. Fix any obvious and easy problems by editing the mask while viewing the mask. </p>
<p>
Go back to viewing the top unmodified layer while editing the WIP mask. Set your drawing tool the paintbrush. For the brush, choose a small fuzzy circle. The 5x5 size is good for most uses. </p>
<p>
With a steady hand, trace around the image. Use black around the outside, and white around the inside. Avoid making more than one pass without switching colors (and thus sides). </p>
<p>
Flip views a bit, checking to see that the mask is working well. When the WIP layer is composited over the green or magenta, you should see a tiny bit of the original background as an ugly fringe around the edge. If this fringe is missing, then you made the object mask too small. The fringe consists of pixels that are neither 100% object nor 0% object. For them, the mask should be neither 100% nor 0%. The fringe gets removed soon. </p>
<p>
View and edit the mask. Select by color, choosing either black or white. Most likely you will see unselected specks that are not quite the expected color. Invert the selection, then paint these away using the pencil tool. Do this operation for both white and black. </p>
</blockquote>
<hr size="2"
noshade>
<h2>
<a name="replace_fringe" id="replace_fringe">
Replace the fringe and junk pixels </a>
</h2>
<blockquote>
<p>
Still viewing the mask, select by color. Choose black. Shrink the selection by several pixels, being sure to NOT shrink from the edges of the mask (the shrink helps you avoid and recover from mistakes). </p>
<p>
Now disable the mask. View and edit the unmasked WIP layer. Using the color picker tool, choose a color that is average for the object. Drag-and-drop this color into the selection, thus removing most of the non-object pixels. </p>
<p>
This solid color will compress well and will help prevent ugly color fringes when Tux Paint scales the image down. If the edge of the object has multiple colors that are very different, you should split up your selection so that you can color the nearby background to be similar. </p>
<p>
Now you will paint away the existing edge fringe. Be sure that you are editing and viewing the WIP image. Frequent layer visibility changes will help you to see what you are doing. You are likely to use all of: </p>
<ul>
<li>composited over grænt (mask enabled)</li>
<li>composited over magenta (mask enabled)</li>
<li>original (the top or bottom layer)</li>
<li>composited over the original (mask enabled)</li>
<li>raw WIP layer (mask <strong>disabled</strong>)</li>
</ul>
<p>
To reduce accidents, you may wish to select only those pixels that are not grey in the mask. (Select by color from the mask, choose black, add mode, choose white, invert. Alternately: Select all, select by color from the mask, subtract mode, choose black, choose white.) If you do this, you'll probably want to expand the selection a bit and/or hide the "crawling ants" line that marks the selection. </p>
<p>
Use the clone tool and the brush tool. Vary the opacity as needed. Use small round brushes mostly, perhaps 3x3 or 5x5, fuzzy or not. (It is generally nice to pair up fuzzy brushes with 100% opacity and non-fuzzy brushes with about 70% opacity.) Unusual drawing modes can be helpful with semi-transparent objects. </p>
<p>
The goal is to remove the edge fringe, both inside and outside of the object. The inside fringe, visible when the object is composited over magenta or green, must be removed for obvious reasons. The outside fringe must also be removed because it will become visible when the image is scaled down. As an example, consider a 2x2 region of pixels at the edge of a sharp-edged object. The left half is black and 0% opaque. The right half is white and 100% opaque. That is, we have a white object on a black background. When Tux Paint scales this to 50% (a 1x1 pixel area), the result will be a grey 50% opaque pixel. The correct result would be a white 50% opaque pixel. To get this result, we would paint away the black pixels. They matter, despite being 0% opaque. </p>
<p>
Tux Paint can scale images down by a very large factor, so it is important to extend the edge of your object outward by a great deal. Right at the edge of your object, you should be very accurate about this. As you go outward away from the object, you can get a bit sloppy. It is reasonable to paint outward by a dozen pixels or more. The farther you go, the more Tux Paint can scale down without creating ugly color fringes. For areas that are more than a few pixels away from the object edge, you should use the pencil tool (or sloppy select with drag-and-drop color) to ensure that the result will compress well. </p>
</blockquote>
<hr size="2"
noshade>
<h2>
<a name="save" id="save">
Save the image for Tux Paint </a>
</h2>
<blockquote>
<p>
It is very easy to ruin your hard work. Image editors can silently destroy pixels in 0% opaque areas. The conditions under which this happens may vary from version to version. If you are very trusting, you can try saving your image directly as a PNG. Be sure to read it back in again to verify that the 0% opaque areas didn't turn black or white, which would create fringes when Tux Paint scales the image down. If you need to scale your image to save space (and hide your mistakes), you are almost certain to destroy all the 0% opaque areas. So here is a better way... </p>
<h3>
A Safer Way to Save </h3>
<blockquote>
<p>
Drag the mask from the layers dialog to the unused portion of the toolbar (right after the last drawing tool). This will create a new image consisting of one layer that contains the mask data. Scale this as desired, remembering the settings you use. Often you should start with an image that is about 700 to 1500 pixels across, and end up with one that is 300 to 400. </p>
<p>
Save the mask image as a NetPBM portable greymap ("<code>.pgm</code>") file. (If you are using an old release of The GIMP, you might need to convert the image to greyscale before you can save it.) Choose the more compact "RAW PGM" format. (The second character of the file should be the ASCII digit "5", hex byte 0x35.) </p>
<p>
You may close the mask image. </p>
<p>
Going back to the multi-layer image, now select the WIP layer. As you did with the mask, drag this from the layers dialog to the toolbar. You should get a single-layer image of your WIP data. If the mask came along too, get rid of it. You should be seeing the object and the painted-away surroundings, without any mask thumbnail in the layers dialog. If you scaled the mask, then scale this image in exactly the same way. Save this image as a NetPBM portable pixmap ("<code>.ppm</code>") file. (Note: <code>.ppm</code>, not <code>.pgm</code>.) (If you choose the RAW PPM format, the second byte of the file should be the ASCII digit "6", hex byte 0x36.) </p>
<p>
Now you need to merge the two files into one. Do that with the <a href="http://netpbm.sourceforge.net/">pnmtopng</a> command, like this: </p>
<blockquote>
<p>
<code>pnmtopng -force -compression 9 -alpha mask.pgm fg.ppm &gt; final-stamp.png</code>
</p>
</blockquote>
</blockquote>
</blockquote>
</body>
</html>

View file

@ -0,0 +1,134 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Tux Paint Environment Variables Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
height="210"
alt="Tux Paint"><br>
útgáfa 0.9.31<br/>
Environment Variables Documentation </h1>
<p>
Höfundarréttur &copy; 2021-2023 eftir various contributors; sjá <a href="../../AUTHORS.txt">AUTHORS-skrá</a>.<br>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a>
</p>
<p>
5. maí 2023 </p>
</center>
<hr>
<p>
Tux Paint understands a number of environment variables, either directly, or indirectly by the libraries that it utilizes. </p>
<h2>
Storage-related environment variables </h2>
<dl>
<dt>
<code>HOME</code>
</dt>
<dd>
<p>
Specifies the user's "home directory", which is used to locate numerous other files or directories. In some cases, it is utilized as part of a fall-back location, when other environment variables (elsewhere in this documentation) are not set. Sometimes, the location to use can be overridden by options provided on the command-line or via Tux Paint's configuration file. See the "OPTIONS" documentation for details. </p>
<p>
A few examples of where "<code>$HOME</code>" is used include: </p>
<ul>
<li>The location of Tux Paint's configuration file</li>
<li>The basis of where Tux Paint saves and loads users' drawings</li>
<li>The location of a user's private collection of data files &mdash; stamps, brushes, etc. &mdash; (versus those available system wide)</li>
</ul>
</dd>
<dt>
<code>XDG_CONFIG_HOME</code>
</dt>
<dd>
<p>
On Linux and other platforms where the X Desktop Group standards are used, the location of the user's configuration files. Specifically, where to find "<code>user-dirs.dirs</code>", where the "<code>XDG_PICTURES_DIR</code>" might be defined. It is used for exporting drawings and animated GIFs. Generally it's set to something like "<code>$HOME/Pictures/</code>". If not specified, Tux Paint checks in the directory "<code>$HOME/.config/</code>". If the configuration cannot be found, Tux Paint simply exports drawings and GIFs to "<code>$HOME</code>". </p>
</dd>
<dt>
<code>XDG_DATA_HOME</code>
</dt>
<dd>
<p>
On Linux and other platforms where the X Desktop Group standards are used, the location of the user's data directories. Specifically, where to find the "<code>Trash</code>" directory. It is used when deleting images from Tux Paint's "Open" dialog. If not set, the location "<code>$HOME/.local/share/Trash/</code>" is used, if available. If not, images are simply deleted, rather than moved anywhere. </p>
</dd>
<dt>
<code>TEMP</code>
</dt>
<dd>
<p>
Specifies the location where temporary files may be created. Only used by Tux Paint on Microsoft Windows OSes. Uses "<code>userdata</code>" if not set. </p>
</dl>
<h2>
Language-related environment variables </h2>
<dl>
<dt>
<code>LANG</code>
</dt>
<dt>
<code>LANGUAGE</code>
</dt>
<dt>
<code>LC_ALL</code>
</dt>
<dt>
<code>LC_MESSAGES</code>
</dt>
<dd>
<p>
Specify the language Tux Paint should utilize in its user interface. Overridde by the "<code>--lang</code>" and "<code>--locale</code>" command-line options or their configuration file counterparts. The "<code>LANGUAGE</code>" environment variable is used, if set. If not, "<code>LC_ALL</code>" is used as a fallback. Then "<code>LC_MESSAGES</code>", and finally "<code>LANG</code>". </p>
</dd>
</dl>
<h2>
Display-related environment variables </h2>
<p>
The following are a few of the environment variables supported by Simple DirectMedia Layer (libSDL) &mdash; which Tux Paint utilizes for displaying graphics, playing sounds, and receiving mouse, keyboard, and joystick input &mdash; and which may be useful to users of Tux Paint.
<dl>
<dt>
<code>SDL_VIDEO_ALLOW_SCREENSAVER</code>
</dt>
<dd>
<p>
Specifies whether Tux Paint should allow a screensaver to run. Can be set to '1' (true) by Tux Paint itself by issuing the command-line option "<code>--allowscreensaver</code>" or its configuration file counterpart. </p>
</dd>
<dt>
<code>SDL_VIDEO_WINDOW_POS</code>
</dt>
<dd>
<p>
Requests where to position Tux Paint's window, and can be used to specify what display to place a fullscreen Tux Paint in a multi-monitor configuration. If not set, or set to "<code>nopref</code>" (meaning "no preference"), Simple DirectMedia Layer (libSDL) decides. Can be set to an <code>X,Y</code> coordinate (e.g. <code>200,100</code>), or "<code>center</code>" (meaning "center"). </p>
</dd>
</dl>
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,805 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Tux Paint Frequently Asked Questions </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
height="210"
alt="Tux Paint"><br>
útgáfa 0.9.31 Frequently Asked Questions </h1>
<p>
Höfundarréttur &copy; 2002-2023 eftir various contributors; sjá <a href="../../AUTHORS.txt">AUTHORS-skrá</a>.<br>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a>
</p>
<p>
16. mars 2023 </p>
</center>
<hr size="2"
noshade>
<table border="2"
cellspacing="0"
cellpadding="2"
summary="Efnisyfirlit">
<tr>
<th>
Efnisyfirlit </th>
</tr>
<tr>
<td>
<ul>
<li>
<a href="#drawing">Drawing-related</a>
</li>
<li>
<a href="#interface">Interface Problems</a>
</li>
<li>
<a href="#printing">Printing</a>
</li>
<li>
<a href="#saving">Saving</a>
</li>
<li>
<a href="#audio">Audio Problems</a>
</li>
<li>
<a href="#fullscreen">Fullscreen Mode Problems</a>
</li>
<li>
<a href="#other">Other Problems</a>
</li>
<li>
<a href="#contact">Help / Contact</a>
</li>
</ul>
</td>
</tr>
</table>
<hr size="2"
noshade>
<h2>
<a name="drawing" id="drawing">
Drawing-related </a>
</h2>
<dl>
<dt>
Fonts I added to Tux Paint only show squares </dt>
<dd>
The TrueType Font you're using might have the wrong encoding. If it's 'custom' encoded, for example, you can try running it through FontForge (<a href="http://fontforge.sourceforge.net/">http://fontforge.sourceforge.net/</a>) to convert it to an ISO-8859 format. (Email us if you need help with special fonts.) </dd>
<dt>
The Rubber Stamp tool is greyed out! </dt>
<dd>
<p>
This means that Tux Paint either couldn't find any stamp images, or was asked not to load them. </p>
<p>
If you installed Tux Paint, but did not install the separate, optional "Stamps" collection, quit Tux Paint and install it now. It should be available from the same place you got the main Tux Paint program. <i>(Note: As of version 0.9.14, Tux Paint comes with a small collection of example stamps.)</i> </p>
<p>
If you don't want to install the default collection of stamps, you can just create your own. See the "Extending Tux Paint" documentation for more on creating PNG and SVG image files, TXT text description files, Ogg Vorbis, MP3 or WAV sound files, and DAT text data files that make up stamps. </p>
<p>
Finally, if you installed stamps, and think they should be loading, check to see that the "nostamps" option isn't being set. (Either via a "<code>--nostamps</code>" option to Tux Paint's command line, or "<code>nostamps=yes</code>" in the configuration file.) </p>
<p>
Either change/remove the "nostamps" option, or you can override it with "<code>--stamps</code>" on the command line or either "<code>nostamps=no</code>" or "<code>stamps=yes</code>" in a configuration file. </p>
</dd>
<dt>
Stamp outlines are always rectangles </dt>
<dd>
<p>
Tux Paint was built with low-quality (but faster) stamp outlines. </p>
<p>
To change this, you must rebuild Tux Paint from source. Be sure to remove or comment out any line that says: </p>
<blockquote>
<p>
<code>#define LOW_QUALITY_STAMP_OUTLINE</code>
</p>
</blockquote>
<p>
in the "tuxpaint.c" file in the "src" directory. </p>
</dd>
</dl>
<hr size="2"
noshade>
<h2>
<a name="interface" id="interface">
Interface Problems </a>
</h2>
<dl>
<dt>
Stamp thumbnails in the Stamp Selector look bad </dt>
<dd>
<p>
Tux Paint was probably compiled with the faster, lower quality thumbnail code enabled. Run the command: "<code>tuxpaint --verbose-version</code>" from a command line. If, amongst the other output, you see the text: "Low Quality Thumbnails enabled", then this is what's happening. </p>
<p>
To change this, you must rebuild Tux Paint from source. Be sure to remove or comment out any line that says: </p>
<blockquote>
<p>
<code>#define LOW_QUALITY_THUMBNAILS</code>
</p>
</blockquote>
<p>
in the "tuxpaint.c" file in the "src" directory. </p>
</dd>
<dt>
Pictures in the 'Open' dialog look bad </dt>
<dd>
"Low Quality Thumbnails" is probably enabled. See: "Stamp thumbnails in the Stamp Selector look bad", above. </dd>
<dt>
All of the text is in uppercase! </dt>
<dd>
<p>
The "uppercase" option is on. </p>
<p>
Either change/remove the "uppercase" option, or you can override it with "<code>--mixedcase</code>" on the command line or either "<code>uppercase=no</code>" or "<code>mixedcase=yes</code>" in a configuration file. </dd>
<dt>
Tux Paint is in a different language </dt>
<dd>
Make sure your locale setting is correct. See "Tux Paint won't switch to my language", below. </dd>
<dt>
Tux Paint won't switch to my language </dt>
<dd>
<ul>
<li>
<i>Linux and Unix users: Make sure the locale is available</i>
<p>
Make sure the locale you want is available. Check your "/etc/locale.gen" file. See the "Options Documentation" for the locales Tux Paint uses (especially when using the "<code>--lang</code>" option). </p>
<p>
Note: Debian and derivative (e.g., Ubuntu) users can simply run "<code>dpkg-reconfigure locales</code>" if the locales are managed by "dpkg". </p>
</li>
<li>If you're using the "<code>--lang</code>" command-line option <p>
Try using the "<code>--locale</code>" command-line option, or your operating system's locale settings (e.g., the "<code>$LANG</code>" environment variable), and please e-mail us regarding your trouble. </p>
</li>
<li>If you're using the "<code>--locale</code>" command-line option <p>
If this doesn't work, please e-mail us regarding your trouble. </p>
</li>
<li>If you're trying to use your Operating System's locale <p>
If this doesn't work, please e-mail us regarding your trouble. </p>
</li>
<li>Make sure you have the necessary font <p>
Some translations require their own font. Chinese and Korean, for example, need Chinese and Korean TrueType Fonts installed and placed in the proper location, respectively. </p>
<p>
The appropriate fonts for such locales can be downloaded from the Tux Paint website: </p>
<blockquote>
<p>
<a href=
"https://tuxpaint.org/download/fonts/">https://tuxpaint.org/download/fonts/</a>
</p>
</blockquote>
</li>
</ul>
</dd>
</dl>
<hr size="2"
noshade>
<h2>
<a name="printing" id="printing">
Printing </a>
</h2>
<dl>
<dt>
Tux Paint won't print, gives an error, or prints garbage (Unix/Linux) </dt>
<dd>
<p>
Tux Paint prints by creating a PostScript rendition of the picture and sending it to an external command. By default, this command is the "<code>lpr</code>" printing tool. </p>
<p>
If that program is not available (for example, you're using CUPS, the Common Unix Printing System, and do not have "<code>cups-lpr</code>" installed), you will need to specify an appropriate command using the "<code>printcommand</code>" option in Tux Paint's configuration file. (See the "Options Documentation".) </p>
<p>
<i>Note:</i> Versions of Tux Paint prior to 0.9.15 used a different default command for printing, "<code>pngtopnm | pnmtops | lpr</code>", as Tux Paint output PNG format, rather than PostScript. </p>
<p>
If you had changed your "printcommand" option prior to Tux Paint 0.9.15, you will need to go back and alter it to accept PostScript. </p>
</dd>
<dt>
I get the message "You can't print yet!" when I go to print </dt>
<dd>
<p>
The "print delay" option is on. You can only print once every <i>X</i> seconds. </p>
<p>
If you're running Tux Paint from a command-line, make sure you're not giving it a "<code>--printdelay=...</code>" option. </p>
<p>
If you're running Tux Paint by double-clicking an icon, check the properties of the icon to see if "<code>--printdelay=...</code>" is listed as a command-line argument. </p>
<p>
If a "<code>--printdelay=...</code>" option isn't being sent on the command line, check Tux Paint's configuration file for a line reading: "<code>printdelay=...</code>". </p>
<p>
Either remove that line, set the delay value to 0 (no delay), or decrease the delay to a value you prefer. (See the "Options Documentation".) </p>
<p>
Or, you can simply run Tux Paint with the command-line argument: "<code>--printdelay=0</code>", which will override the configuration file's setting, and allow unlimited printing. (You won't have to wait between prints.) </p>
</dd>
<dt>
I simply can't print! The button is greyed out! </dt>
<dd>
<p>
The "no print" option is on. </p>
<p>
If you're running Tux Paint from a command-line, make sure you're not giving it a "<code>--noprint</code>" option. </p>
<p>
If you're running Tux Paint by double-clicking an icon, check the properties of the icon to see if "<code>--noprint</code>" is listed as a command-line argument. </p>
<p>
If a "<code>--noprint</code>" option isn't being sent on the command line, check Tux Paint's configuration file for a line reading: "<code>noprint=yes</code>". </p>
<p>
Either remove that line, or simply run Tux Paint with the command-line argument: "<code>--print</code>", which will override the configuration file's setting. </p>
<p>
Or use Tux Paint Config. and make sure "Allow Printing" (under "Printing") is checked. </p>
</dd>
</dl>
<hr size="2"
noshade>
<h2>
<a name="saving" id="saving">
Saving </a>
</h2>
<dl>
<dt>
Where does Tux Paint save my drawings? </dt>
<dd>
<p>
Unless you asked Tux Paint to save into a specific location (using the "savedir" option), Tux Paint saves into a standard location on your local drive: </p>
<dl>
<dt>
Windows Vista, Windows 8, Windows 10, Windows 11
</dt>
<dd>
In the user's "AppData" folder:<br> e.g., <code>C:\Users\<i>Username</i>\AppData\Roaming\TuxPaint\saved</code> </dd>
<dt>
macOS
</dt>
<dd>
In the user's "Application Support" folder:<br> e.g., <code>/Users/<i>Username</i>/Library/Applicaton Support/TuxPaint/saved/</code> </dd>
<dt>
Linux / Unix
</dt>
<dd>
In the user's home directory ("<code>$HOME</code>"), under a ".tuxpaint" subfolder:<br> e.g., <code>/home/<i>username</i>/.tuxpaint/saved/</code> </dd>
</dl>
<p>
The images are stored as PNG bitmaps, which most modern programs should be able to load (image editors, word processors, web browsers, etc.) </p>
</dd>
<dt>
Tux Paint always saves over my old picture </dt>
<dd>
<p>
The "save over" option is enabled. (This disables the prompt that would appear when you click 'Save.') </p>
<p>
If you're running Tux Paint from a command-line, make sure you're not giving it a "<code>--saveover</code>" option. </p>
<p>
If you're running Tux Paint by double-clicking an icon, check the properties of the icon to see if "<code>--saveover</code>" is listed as a command-line argument. </p>
<p>
If a "--saveover" option isn't being sent on the command line, check Tux Paint's configuration file for a line reading: "saveover=yes". </p>
<p>
Either remove that line, or simply run Tux Paint with the command-line argument: "<code>--saveoverask</code>", which will override the configuration file's setting. </p>
<p>
Or use Tux Paint Config. and make sure "Ask Before Overwriting" (under "Saving") is checked. </p>
<p>
Also, see "Tux Paint always saves a new picture!", below. </p>
</dd>
<dt>
Tux Paint always saves a new picture! </dt>
<dd>
<p>
The "never save over" option is enabled. (This disables the prompt that would appear when you click 'Save.') </p>
<p>
If you're running Tux Paint from a command-line, make sure you're not giving it a "<code>--saveovernew</code>" option. </p>
<p>
If you're running Tux Paint by double-clicking an icon, check the properties of the icon to see if "<code>--saveovernew</code>" is listed as a command-line argument. </p>
<p>
If a "<code>--saveovernew</code>" option isn't being sent on the command line, check Tux Paint's configuration file for a line reading: "<code>saveover=new</code>". </p>
<p>
Either remove that line, or simply run Tux Paint with the command-line argument: "<code>--saveoverask</code>", which will override the configuration file's setting. </p>
<p>
Or use Tux Paint Config. and make sure "Ask Before Overwriting" (under "Saving") is checked. </p>
<p>
Also, see "Tux Paint always saves over my old picture!", above. </p>
</dd>
</dl>
<hr size="2"
noshade>
<h2>
<a name="audio" id="audio">
Audio Problems </a>
</h2>
<dl>
<dt>
There's no sound! </dt>
<dd>
<ul>
<li>
<em>First, check the obvious:</em>
<ul>
<li>Are your speakers connected and turned on?</li>
<li>Is the volume turned up on your speakers?</li>
<li>Is the volume turned up in your Operating System's "mixer?"</li>
<li>Are you certain you're using a computer with a sound card?</li>
<li>Are any other programs running that use sound? (They may be 'blocking' Tux Paint from accessing your sound device)</li>
<li>(Unix/Linux) Are you using a sound system, such as aRts, ESD or GStreamer? If so, try setting the "SDL_AUDIODRIVER" environment variable before running Tux Paint (e.g., "<code>export SDL_AUDIODRIVER=arts</code>"). Or, run Tux Paint through the system's rerouter (e.g., run "<code>artsdsp tuxpaint</code>" or "<code>esddsp tuxpaint</code>", instead of simply "<code>tuxpaint</code>"). </li>
</ul>
</li>
<li>
<em>Is sound disabled in Tux Paint?</em>
<p>
If sound seems to work otherwise (and you're sure no other program is "blocking" the sound device), then Tux Paint may be running with a "no sound" option. </p>
<p>
If you're running Tux Paint from a command-line, make sure you're not giving it a "--nosound" option. </p>
<p>
If you're running Tux Paint by double-clicking an icon, check the properties of the icon to see if "--nosound" is listed as a command-line argument. </p>
If a "<code>--nosound</code>" option isn't being sent on the command line, check Tux Paint's configuration file for a line reading: "<code>nosound=yes</code>". </p>
<p>
Either remove that line, or simply run Tux Paint with the command-line argument: "<code>--sound</code>", which will override the configuration file's setting. </p>
<p>
Or, you can simply run Tux Paint with the command-line argument: "Enable Sound Effects", which will override the configuration file's setting, and allow unlimited printing. (You won't have to wait between prints.) </p>
</li>
<li>
<em>Were sounds temporarily disabled?</em>
<p>
Even if sounds are enabled in Tux Paint, it is possible to disable and re-enable them temporarily using the <b>[Alt]</b> + <b>[S]</b> key sequence. Try pressing those keys to see if sounds begin working again. </p>
</li>
<li>
<em>Was Tux Paint built without sound support?</em>
<p>
Tux Paint may have been compiled with sound support disabled. To test whether sound support was enabled when Tux Paint was compiled, run Tux Paint from a command line, like so: </p>
<blockquote>
<p>
<code>tuxpaint --verbose-version</code>
</p>
</blockquote>
<p>
If, amongst the other information, you see "Sound disabled", then the version of Tux Paint you're running has sound disabled. Recompile Tux Paint, and be sure NOT to build the "nosound" target. (i.e., don't run "<code>make nosound</code>") Be sure the SDL_mixer library and its development headers are available! </p>
</li>
</ul>
</dd>
<dt>
Tux Paint makes too much noise! Can I turn them off? </dt>
<dd>
<p>
Yes, there are a number of ways to disable sounds in Tux Paint: </p>
<ul>
<li>Press <b>[Alt]</b> + <b>[S]</b> while in Tux Paint to temporarily disable sounds. (Press that key sequence again to re-enable sounds.) </li>
<li>Run Tux Paint with the "no sound" option: <ul>
<li>Run "<code>tuxpaint --nosound</code>" from the command line or shortcut or desktop icon. </li>
<li>Edit Tux Paint's configuration file (see "Options Documentation" for details) and add a line containing "<code>nosound=yes</code>". </li>
<li>
Or use Tux Paint Config. and make sure "Enable Sound Effects" (under "Video &amp; Sound") is not checked. </li>
<li>
Alternatively, recompile Tux Paint with sound support disabled. (See above, and the 'Install' documentation. </li>
</ul>
</li>
</ul>
</dd>
<dt>
The stereo panning of sound effects is bothersome; can sound effects be monophonic? </dt>
<dd>
<p>
Run Tux Paint with the "no stereo" option: </p>
<ul>
<li>Run "<code>tuxpaint --nostereo</code>" from the command line or shortcut or desktop icon. </li>
<li>Edit Tux Paint's configuration file (see "Options Documentation" for details) and add a line containing "<code>nostereo=yes</code>". </li>
<li>
Or use Tux Paint Config. and make sure "Enable Stereo Effects" (under "Video &amp; Sound") is not checked. </li>
</ul>
</dd>
<dt>
The sound effects sound strange </dt>
<dd>
<p>
This could have to do with how SDL and SDL_mixer were initialized. (The buffer size chosen.) </p>
<p>
Please e-mail us with details about your computer system. (Operating system and version, sound card, which version of Tux Paint you're running (run "<code>tuxpaint --version</code>" to verify), and so on.) </p>
</dd>
</dl>
<hr size="2"
noshade>
<h2>
<a name="fullscreen" id="fullscreen">
Fullscreen Mode Problems </a>
</h2>
<dl>
<dt>
When I run Tux Paint full-screen and <b>[Alt]</b> + <b>[Tab]</b> out, the window turns black! </dt>
<dd>
This is apparently a bug in the SDL library. Sorry. </dd>
<dt>
When I run Tux Paint full-screen, it has large borders around it </dt>
<dd>
<p>
Linux users - Your X-Window server is probably not set with the ability to switch to the desired resolution: 800×600. (or whatever resolution you have Tux Paint set to run at.) (This is typically done manually under the X-Window server by pressing <span style="white-space: nowrap;"><b><code>[Control]</code></b> + <b><code>[Alt]</code></b> + <b><code>[<span style="white-space: nowrap;">Keypad Plus (+)</span>]</code></b></span> and <span style="white-space: nowrap;"><b><code>[Control]</code></b> + <b><code>[Alt]</code></b> + <b><code>[<span style="white-space: nowrap;">Keypad Minus (-)</span>]</code></b></span>.) </p>
<p>
For this to work, your monitor must support that resolution, and you need to have it listed in your X server configuration. </p>
<p>
Check the "Display" subsection of the "Screen" section of your XFree86 or X.org configuration file (typically "<code>/etc/X11/XF86Config-4</code>" or "<code>/etc/X11/XF86Config</code>", depending on the version of XFree86 you're using; 3.x or 4.x, respectively, or "<code>/etc/X11/xorg.conf</code>" for X.org). </p>
<p>
Add "<code>800x600</code>" (or whatever resolution(s) you want) to the appropriate "Modes" line. (e.g., in the "Display" subsection that contains 24-bit color depth ("Depth 24"), which is what Tux Paint tries to use.) </p>
<blockquote>
<p>
<code>Modes "1280x1024" "1024x768" "800x600" "640x480"</code>
</p>
</blockquote>
<p>
Note that some Linux distributions have tools that can make these changes for you. Debian users can run the command "<code>dpkg-reconfigure xserver-xfree86</code>" as root, for example. </p>
</dd>
<dt>
Tux Paint keeps running in Full Screen mode - I want it windowed! </dt>
<dd>
<p>
The "fullscreen" option is set. </p>
<p>
If you're running Tux Paint from a command-line, make sure you're not giving it a "<code>--fullscreen</code>" option. </p>
<p>
If you're running Tux Paint by double-clicking an icon, check the properties of the icon to see if "<code>--fullscreen</code>" is listed as a command-line argument. </p>
<p>
If a "<code>--fullscreen</code>" option isn't being sent on the command line, check Tux Paint's configuration file for a line reading: "<code>fullscreen=yes</code>". </p>
<p>
Either remove that line, or simply run Tux Paint with the command-line argument: "<code>--windowed</code>", which will override the configuration file's setting. </p>
<p>
Or use Tux Paint Config. and make sure "Fullscreen" (under "Video &amp; Sound") is not checked. </p>
</dd>
</dl>
<hr size="2"
noshade>
<h2>
<a name="other" id="other">
Other Problems </a>
</h2>
<dl>
<dt>
Tux Paint won't run </dt>
<dd>
<p>
If Tux Paint aborts with the message: "You're already running a copy of Tux Paint!", this means it has been launched in the last 30 seconds. (On Unix/Linux, this message would appear in a terminal console if you ran Tux Paint from a command-line. On Windows, this message would appear in a file named "<code>stdout.txt</code>" in the same folder where <code>TuxPaint.exe</code> resides (e.g., in "<code>C:\Program Files\TuxPaint</code>"). </p>
<p>
A lockfile ("~/.tuxpaint/lockfile.dat" on Linux and Unix, "userdata\lockfile.dat" on Windows) is used to make sure Tux Paint isn't run too many times at once (e.g., due to a child impatiently clicking its icon more than once). </p>
<p>
Even if the lockfile exists, it contains the 'time' Tux Paint was last run. If it's been more than 30 seconds, Tux Paint should run fine, and simply update the lockfile with the current time. </p>
<p>
If multiple users are sharing the directory where this file is stored (e.g., on a shared network drive), then you'll need to disable this feature. </p>
<p>
To disable the lockfile, add the "<code>--nolockfile</code>" argument to Tux Paint's command-line, or "<code>nolockfile=yes</code>" to the configuration file. </p>
</dd>
<dt>
I can't quit Tux Paint </dt>
<dd>
<p>
The "no quit" option is set. This disables the "Quit" button in Tux Paint's toolbar (greying it out), and prevents Tux Paint from being exited via the <b>[Escape]</b> key. </p>
<p>
If Tux Paint is not in fullscreen mode, simply click the window close button on Tux Paint's title bar. (i.e., the "&#9447;" at the upper right.) </p>
<p>
If Tux Paint is in fullscreen mode, you will need to use the <b>[Shift]</b> + <b>[Control]</b> + <b>[Escape]</b> sequence on the keyboard to quit Tux Paint. </p>
<p>
(Note: with or without "no quit" set, you can always use the <b>[Alt]</b> + <b>[F4]</b> combination on your keyboard to quit Tux Paint.) </p>
</dd>
<dt>
I don't want "no quit" mode enabled! </dt>
<dd>
<p>
If you're running Tux Paint from a command-line, make sure you're not giving it a "--noquit" option. </p>
<p>
If you're running Tux Paint by double-clicking an icon, check the properties of the icon to see if "<code>--noquit</code>" is listed as a command-line argument. </p>
<p>
If a "<code>--noquit</code>" option isn't being sent on the command line, check Tux Paint's configuration file for a line reading: "<code>noquit=yes</code>". </p>
<p>
Either remove that line, or simply run Tux Paint with the command-line argument: "<code>--quit</code>", which will override the configuration file's setting. </p>
<p>
Or use Tux Paint Config. and make sure "Disable Quit Button and [Escape] Key" (under "Simplification") is not checked. </p>
</dd>
<dt>
Tux Paint keeps writing weird messages to the screen / to a text file </dt>
<dd>
<p>
A few messages are normal, but if Tux Paint is being extremely verbose (like listing the name of every rubber-stamp image it finds while loading them), then it was probably compiled with debugging output turned on. </p>
<p>
To change this, you must rebuild Tux Paint from source. Be sure to remove or comment out any line that says: </p>
<blockquote>
<p>
<code>#define DEBUG</code>
</p>
</blockquote>
<p>
in the "tuxpaint.c" file in the "src" directory. </p>
</dd>
<dt>
Tux Paint is using options I didn't specify! </dt>
<dd>
<p>
By default, Tux Paint first looks at configuration files for options. </p>
<ul>
<li>
<i>Windows</i>
<p>
Under Windows, Tux Paint first examines the configuration file: </p>
<blockquote>
<p>
<code>tuxpaint.cfg</code>
</p>
</blockquote>
<p>
Finally, any options sent as command-line arguments are used. </p>
</li>
<li>
<i>macOS</i>
<p>
</p>
</li>
<li>
<i>Unix and Linux</i>
<p>
Under Unix and Linux, it first examines the system-wide configuration file, located here: </p>
<blockquote>
<p>
<code>/etc/tuxpaint/tuxpaint.conf</code>
</p>
</blockquote>
<p>
It then examines the user's personal configuration file: </p>
<blockquote>
<p>
<code>~/.tuxpaintrc</code>
</p>
</blockquote>
<p>
Finally, any options sent as command-line arguments are used. </p>
</li>
<li>
<i>Haiku</i>
<p>
</p>
</li>
</ul>
<p>
This means that if anything is set in a configuration file that you don't want set, you'll need to either change the config. file (if you can), or override the option on the command-line. </p>
<p>
For example, on Linux and Unix, if "/etc/tuxpaint/tuxpaint.conf" includes this option to disable sound... </p>
<blockquote>
<p>
<code>nosound=yes</code>
</p>
</blockquote>
<p>
...then you can reenable sound by either adding this option to your own ".tuxpaintrc" file: </p>
<blockquote>
<p>
<code>sound=yes</code>
</p>
</blockquote>
<p>
...or by using this command-line argument: </p>
<blockquote>
<p>
<code>--sound</code>
</p>
</blockquote>
<p>
Linux and Unix users can also disable the system-wide configuration file by including the following command-line argument: </p>
<blockquote>
<p>
<code>--nosysconfig</code>
</p>
</blockquote>
<p>
Tux Paint will then only look at "~/.tuxpaintrc" and command-line arguments to determine what options should be set. </p>
</dd>
</dl>
<hr size="2"
noshade>
<h2>
<a name="contact" id="contact">
Help / Contact </a>
</h2>
<p>
Any questions you don't see answered? Please let us know! You can subscribe and post to our "tuxpaint-users" mailing list: </p>
<blockquote>
<p>
<a href="https://tuxpaint.org/lists/">https://tuxpaint.org/lists/</a>
</p>
</blockquote>
<p>
Or, contact lead developer Bill Kendrick directly: </p>
<blockquote>
<p>
<a href=
"mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>
</p>
</blockquote>
</body>
</html>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,212 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Tux Paint PNG Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul, p + ol {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<section class="outer">
<header>
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
height="210"
alt="Tux Paint"><br>
útgáfa 0.9.31<br/>
PNG Documentation </h1>
<p>
Höfundarréttur &copy; 2007-2022 eftir various contributors; sjá <a href="../../AUTHORS.txt">AUTHORS-skrá</a>.<br>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a>
</p>
<p>
4. júní 2022 </p>
</center>
</header>
</section>
<section class="indent">
<header>
<h1>About PNGs</h1>
</header>
<p>
PNG is the Portable Network Graphic format. It is an open standard, not burdened by patents (like GIFs). It is a highly compressed format (though not "lossy" like JPEGs - lossiness allows files to be much smaller, but introduces 'mistakes' in the image when saved), and supports 24-bit color (16.7 million colors) as well as a full "alpha channel" - that is, each pixel can have a varying degree of transparency. </p>
<p>
For more information, visit: <a href="http://www.libpng.org/">http://www.libpng.org/</a> </p>
<p>
These features (openness, losslessness, compression, transparency/alpha) make it the best choice for Tux Paint. (Tux Paint's support for the PNG format comes from the Open Source SDL_Image library, which in turn gets it from the libPNG library.) </p>
<p>
Support for many colors allows photo-quality "rubber stamp" images to be used in Tux Paint, and alpha transparency allows for high-quality brushes. </p>
</section>
<section class="indent">
<header>
<h2>How To Make PNGs</h2>
</header>
<p>The following is a very <em>brief</em> list of ways to create PNGs or convert existing images into PNGs.
<dl>
<dt>GIMP &amp; Krita</dt>
<dd>
<p>
Excellent tools with which to create PNG images for use in Tux Paint are GIMP and Krita, both high-quality Open Source interactive drawing and photo editing programs. </p>
<p>
It is likely that one or both are already installed on your system. If not, they should be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="http://www.gimp.org/">http://www.gimp.org/</a> and <a href="http://www.krita.org/">http://www.krita.org/</a>, respectively. </p>
</dd>
<dt>Command-line Tools</dt>
<dd>
<dl>
<dt>NetPBM</dt>
<dd>
<p>
The Portable Bitmap tools (collectively known as "NetPBM") is a collection of Open Source command-line tools which convert to and from various formats, including GIF, TIFF, BMP, PNG, and many more. </p>
<p>
It is possible that it's already installed on your system. If not, they it be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="http://netpbm.sourceforge.net/">http://netpbm.sourceforge.net/</a>. </p>
</dd>
<dt>cjpeg/djpeg</dt>
<dd>
<p>
The "cjpeg" and "djpeg" command-line programs convert between the NetPBM Portable Any Map (PNM) format and JPEGs.
It is possible that it's already installed on your system. If not, they it be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="https://jpegclub.org/">https://jpegclub.org/</a>. </p>
</dd>
</dl>
</dd>
<dt>Proprietary Software for Windows</dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
&mdash;
<a href="http://www.corel.com/">http://www.corel.com/</a>
<li> <cite>Illustrator</cite>
(Adobe)
&mdash;
<a href="http://www.adobe.com/products/illustrator.html">http://www.adobe.com/products/illustrator.html</a>
<li> <cite>Paint Shop Pro</cite>
(Corel)
&mdash;
<a href="https://www.paintshoppro.com/">https://www.paintshoppro.com/</a>
<li> <cite>Photoshop</cite>
(Adobe)
&mdash;
<a href="http://www.adobe.com/products/photoshop.html">http://www.adobe.com/products/photoshop.html</a>
<li> <cite>PIXresizer</cite>
(Bluefive software)
&mdash;
<a href="http://bluefive.pair.com/pixresizer.htm">http://bluefive.pair.com/pixresizer.htm</a>
</ul>
</dd>
<dt>Macintosh Users</dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
&mdash;
<a href="http://www.corel.com/">http://www.corel.com/</a>
<li> <cite>GraphicConverter</cite>
(Lemke Software)
&mdash;
<a href="https://www.lemkesoft.de/mac-fotobearbeitung-mac-diashow-mac-grafikprogramm-mac-bildbetrachter/">https://www.lemkesoft.de/mac-fotobearbeitung-mac-diashow-mac-grafikprogramm-mac-bildbetrachter/</a>
<li> <cite>Illustrator</cite>
(Adobe)
&mdash;
<a href="http://www.adobe.com/products/illustrator.html">http://www.adobe.com/products/illustrator.html</a>
<li> <cite>Photoshop</cite>
(Adobe)
&mdash;
<a href="http://www.adobe.com/products/photoshop.html">http://www.adobe.com/products/photoshop.html</a>
</ul>
</dd>
</dl>
</section>
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,149 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Tux Paint Signals Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul, p + ol {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<section class="outer">
<center>
<header>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
height="210"
alt="Tux Paint"><br>
útgáfa 0.9.31<br/>
Signals Documentation </h1>
<p>
Höfundarréttur &copy; 2019-2022 eftir various contributors; sjá <a href="../../AUTHORS.txt">AUTHORS-skrá</a>.<br>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a>
</p>
<p>
4. júní 2022 </p>
</header>
</center>
</section>
<section>
<p>
Tux Paint responds to the following signals (which can be sent to the program's process via `<code>kill</code>` or `<code>killall</code>`, for example). </p>
<dl>
<dt>
<code>SIGTERM</code>
(also, <b><code>[Control]</code></b> + <b><code>[C]</code></b> from a terminal running `<code>tuxpaint</code>`) </dt>
<dd>
<p>
Tux Paint responds as if the "Quit" button were pressed, or the desktop environment was told to close Tux Paint (e.g., by clicking a window close button, or pressing <b><code>[Alt]</code></b> + <b><code>[F4]</code></b> on most systems). </p>
<p>
From the main interface, Tux Paint will prompt whether or not you wish to quit, and (unless overridden by the auto-save option, e.g. "<code>--autosave</code>") if you'd like to save the current drawing (if unsaved), and if so, and it's a modified version of an existing drawing (unless overridden by the options to save over old images, or always save new images; e.g. "<code>--saveover</code>" and "<code>--saveovernew</code>", respectively), whether or not to overwrite the existing drawing, or save to a new file. </p>
<p>
Example: <code>killall tuxpaint</code> </p>
<p class="note">
<span title="Information">&#128161;</span> <strong>Note:</strong> From other parts of the interface, the signal is currently interpreted as a request to go back (e.g., from the "New" dialog back to the main interface), as if a "Back" button in Tux Paint were clicked, or the <b><code>[Esc]</code></b> was key pressed. </p>
</dd>
<dt>
<code>SIGUSR1</code> &amp; <code>SIGUSR2</code>
</dt>
<dd>
<p>
Tux Paint responds by setting its auto-save option (as if it had been launched with "<code>--autosave</code>"), as well as either the option to always save new images (as if launched with "<code>--saveovernew</code>") in the case of receiving a <code>SIGUSR1</code> signal, or to always save over the existing image (as if launched with "<code>--saveover</code>") in the case of receiving <code>SIGUSR2</code>. Then Tux Paint sends itself a <code>SIGTERM</code> signal, in an attempt to quit. (See above.) </p>
<p>
So, from the main interface, Tux Paint should quit almost immediately, with no questions asked. </p>
<p>
Example: <code>killall -s SIGUSR1 tuxpaint</code> </p>
<p class="note">
<span title="Information">&#128161;</span> <strong>Note:</strong> From other parts of the interface, unfortunately, Tux Paint will go back one level in the interface. Therefore, at this time, it may be necessary to send this signal to Tux Paint a few times, for it to quit completely. </p>
</dd>
</dl>
</section>
</body>
</html>

View file

@ -0,0 +1,169 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Tux Paint SVG Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul, p + ol {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<!-- Title -->
<section class="outer">
<header>
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
height="210"
alt="Tux Paint"><br>
útgáfa 0.9.31<br/>
SVG Documentation </h1>
<p>
Höfundarréttur &copy; 2007-2022 eftir various contributors; sjá <a href="../../AUTHORS.txt">AUTHORS-skrá</a>.<br>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a>
</p>
<p>
4. júní 2022 </p>
</center>
</header>
</section>
<section class="indent">
<header>
<h1>About SVGs</h1>
</header>
<p>
SVG (Scalable Vector Graphics) is an open standard used to describe two-dimensional vector graphics. It is great for diagrams and shapes, while PNGs are better for photographs. SVG files are a bit like instructions on how to make an image. This means that they can be resized without looking pixelated or blocky. </p>
<p>
For more information, visit: <a href="https://www.w3.org/Graphics/SVG/">https://www.w3.org/Graphics/SVG/</a> </p>
</section>
<section class="indent">
<header>
<h1>How to make SVGs</h1>
</header>
<p>
An excellent tool with which to create SVG images for use in Tux Paint is Inkscape, a high-quality Open Source interactive drawing program available for Windows, macOS, and Linux. There are also other applications that can produce SVGs, both free/open source, and commerical/proprietary. </p>
<dl>
<dt><strong>Open Source</strong></dt>
<dd>
<ul>
<li> <cite>Inkscape</cite>
&mdash;
<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>
</li>
<li> <cite>Karbon</cite>
&mdash;
<a href="https://calligra.org/karbon/">https://calligra.org/karbon/</a>
</li>
</ul>
</dd>
<dt><strong>Proprietary</strong></dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
&mdash;
<a href="https://www.coreldraw.com/en/">https://www.coreldraw.com/en/</a>
</li>
<li> <cite>Illustrator</cite>
(Adobe)
&mdash;
<a href="http://www.adobe.com/products/illustrator.html">http://www.adobe.com/products/illustrator.html</a>
</li>
<li> <cite>Boxy SVG</cite>
&mdash;
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
</li>
<li> <cite>Sketch</cite>
(Sketch B.V.)
&mdash;
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
</li>
</ul>
</dl>
</section>
</body>
</html>

View file

@ -0,0 +1,680 @@
/* tp_magic_example.c
An example of a "Magic" tool plugin for Tux Paint
13. apríl 2023
*/
/* Inclusion of header files */
/* ---------------------------------------------------------------------- */
#include <stdio.h>
#include <string.h> // Fyrir "strdup()"
#include <libintl.h> // Fyrir "gettext()"
#include "tp_magic_api.h" // Tux Paint "Magic" tool API header
#include "SDL_image.h" // For IMG_Load(), to load our PNG icon
#include "SDL_mixer.h" // For Mix_LoadWAV(), to load our sound effects
/* Tool Enumerations: */
/* ---------------------------------------------------------------------- */
/* What tools we contain: */
enum
{
TOOL_ONE, // Becomes '0'
TOOL_TWO, // Becomes '1'
NUM_TOOLS // Becomes '2'
};
/* Lists of filenames for sounds and icons to load at startup: */
const char *sound_filenames[NUM_TOOLS] = {
"tool_one.wav",
"tool_two.wav"
};
const char *icon_filenames[NUM_TOOLS] = {
"tool_one.png",
"tool_two.png"
};
/*
NOTE: We use a macro called "gettext_noop()" below in some arrays of
strings (char *'s) that hold the names and descriptions of our "Magic"
tools. This allows the strings to be localized into other languages.
*/
/* A list of names for the tools */
const char *tool_names[NUM_TOOLS] = {
gettext_noop("A tool"),
gettext_noop("Another tool")
};
/* How to group the tools with other similar tools, within the 'Magic' selector: */
const int tool_groups[NUM_TOOLS] = {
MAGIC_TYPE_PAINTING,
MAGIC_TYPE_DISTORTS
};
/* A list of descriptions of the tools */
const char *tool_descriptions[NUM_TOOLS] = {
gettext_noop("This is example tool number 1."),
gettext_noop("This is example tool number 2.")
};
/* Our global variables: */
/* ---------------------------------------------------------------------- */
/* Sound effects: */
Mix_Chunk *sound_effects[NUM_TOOLS];
/* The current color (an "RGB" -- red, green, blue -- value) the user has
selected in Tux Paint (for tool 1): */
Uint8 example_r, example_g, example_b;
/* The size the user has selected in Tux Paint (for tool 2): */
Uint8 example_stærð;
/* Our local function prototypes: */
/* ---------------------------------------------------------------------- */
/*
These functions are called by other functions within our plugin, so we
provide a 'prototype' of them, so the compiler knows what they accept and
return. This lets us use them in other functions that are declared
_before_ them.
*/
void example_drag(magic_api * api, int which, SDL_Surface * canvas,
SDL_Surface * skjámynd, int old_x, int old_y, int x, int y,
SDL_Rect * update_rect);
void example_line_callback(void *pointer, int which, SDL_Surface * canvas,
SDL_Surface * skjámynd, int x, int y);
/* Setup Functions: */
/* ---------------------------------------------------------------------- */
/*
API Version check
The running copy of Tux Paint that has loaded us first asks us what version
of the Tux Paint 'Magic' tool plugin API we were built against. If it
deems us compatible, we'll be used!
All we need to do here is return "TP_MAGIC_API_VERSION", which is defined
(#define) in the header file "tp_magic_api.h".
*/
Uint32 example_api_version(void)
{
return (TP_MAGIC_API_VERSION);
}
/*
Frumstilling
This happens once, when Tux Paint starts up and is loading all of the
'Magic' tool plugins. (Assuming what we returned from api_version was
acceptable!)
All we're doing in this example is loading our sound effects, which we'll
use later (in example_click(), example_drag(), and example_release()) when
the user is using our Magic tools.
The memory we allocate here to store the sounds will be freed (aka
released, aka deallocated) when the user quits Tux Paint, when our
example_shutdown() function is called.
*/
int example_init(magic_api * api, Uint32 disabled_features)
{
int i;
char filename[1024];
for (i = 0; i < NUM_TOOLS; i++)
{
/*
Assemble the filename from the "sound_filenames[]" array into a full path
to a real file.
Use "api->data_directory" to figure out where our sounds should be. (The
"tp-magic-config --dataprefix" command would have told us when we installed
our plugin and its data.)
*/
snprintf(filename, sizeof(filename), "%s/sounds/magic/%s", api->data_directory,
sound_filenames[i]);
printf("Trying to load %s sound file\n", filename);
/* Try to load the file! */
sound_effects[i] = Mix_LoadWAV(filename);
}
return (1);
}
/*
Report our tool count
Tux Paint needs to know how many 'Magic' tools we'll be providing. Return
that number here. (We simply grab the value of 'NUM_TOOLS' from our 'enum'
above!)
When Tux Paint is starting up and loading plugins, it will call some of the
following setup functions once for each tool we report.
*/
int example_get_tool_count(magic_api * api)
{
return (NUM_TOOLS);
}
/*
Load our icons
When Tux Paint is starting up and loading plugins, it asks us to provide icons for the 'Magic' tool buttons.
*/
SDL_Surface *example_get_icon(magic_api * api, int which)
{
char filename[1024];
/*
Assemble the filename from the "icon_filenames[]" array into a full path to
a real file.
Use "api->data_directory" to figure out where our sounds should be. (The
"tp-magic-config --dataprefix" command would have told us when we installed
our plugin and its data.)
We use "which" (which of our tools Tux Paint is asking about) as an index
into the array.
*/
snprintf(filename, sizeof(filename), "%s/images/magic/%s",
api->data_directory, icon_filenames[which]);
printf("Trying to load %s icon\n", filename);
/* Try to load the image, and return the results to Tux Paint: */
return (IMG_Load(filename));
}
/*
Report our 'Magic' tool names
When Tux Paint is starting up and loading plugins, it asks us to provide
names (labels) for the 'Magic' tool buttons.
*/
char *example_get_name(magic_api * api, int which)
{
const char *our_name_english;
const char *our_name_localized;
/*
Get our name from the "tool_names[]" array.
We use 'which' (which of our tools Tux Paint is asking about) as an index
into the array.
*/
our_name_english = tool_names[which];
/*
Return a localized (aka translated) version of our name, if possible.
We send "gettext()" the English version of the name from our array.
*/
our_name_localized = gettext(our_name_english);
/*
Finally, duplicate the string into a new section of memory, and send it to
Tux Paint. (Tux Paint keeps track of the string and will free it for us,
so we have one less thing to keep track of.)
*/
return (strdup(our_name_localized));
}
/*
Report our 'Magic' tool groups
When Tux Paint is starting up and loading plugins, it asks us to specify
where the tool should be grouped.
*/
int example_get_group(magic_api * api, int which)
{
/*
Return our group, found in the "tool_groups[]" array.
We use 'which' (which of our tools Tux Paint is asking about) as an index
into the array.
*/
return (tool_groups[which]);
}
/*
Report our 'Magic' tool descriptions
When Tux Paint is starting up and loading plugins, it asks us to provide
descriptions of each 'Magic' tool.
*/
char *example_get_description(magic_api * api, int which, int hamur)
{
const char *our_desc_english;
const char *our_desc_localized;
/*
Get our description from the "tool_descriptions[]" array.
We use 'which' (which of our tools Tux Paint is asking about) as an index
into the array.
*/
our_desc_english = tool_descriptions[which];
/*
Return a localized (aka translated) version of our description, if
possible.
We send "gettext" the English version of the description from our array.
*/
our_desc_localized = gettext(our_desc_english);
/*
Finally, duplicate the string into a new section of memory, and send it to
Tux Paint. (Tux Paint keeps track of the string and will free it for us,
so we have one less thing to keep track of.)
*/
return (strdup(our_desc_localized));
}
// Report whether we accept colors
int example_requires_colors(magic_api * api, int which)
{
if (which == TOOL_ONE)
return 1;
else
return 0;
}
// Report what modes we work in
int example_modes(magic_api * api, int which)
{
/*
Both of our tools are painted (neither affect the full-screen), so we're
always returning 'MODE_PAINT'
*/
return MODE_PAINT;
}
// Report whether the tools offer sizing options
Uint8 example_accepted_sizes(magic_api * api, int which, int hamur)
{
if (which == TOOL_ONE)
return 1;
else
return 4;
}
// Return our default sizing option
Uint8 example_default_size(magic_api * api, int which, int hamur)
{
return 1;
}
/*
Slökkva
Tux Paint is quitting. When it quits, it asks all of the plugins to 'clean
up' after themselves. We, for example, loaded some sound effects at
startup (in our example_init() function), so we should free the memory used
by them now.
*/
void example_shutdown(magic_api * api)
{
int i;
/*
Free (aka release, aka deallocate) the memory used to store the sound
effects that we loaded during example_init():
*/
for (i = 0; i < NUM_TOOLS; i++)
Mix_FreeChunk(sound_effects[i]);
}
/* Functions that respond to events in Tux Paint: */
/* ---------------------------------------------------------------------- */
/* Affect the canvas on click: */
void
example_click(magic_api * api, int which, int hamur,
SDL_Surface * canvas, SDL_Surface * skjámynd, int x, int y,
SDL_Rect * update_rect)
{
/*
In our case, a single click (which is also the start of a drag!) is
identical to what dragging does, but just at one point, rather than across
a line.
So we 'cheat' here, by calling our "example_draw()" function with (x,y) for
both the beginning and end points of a line.
*/
example_drag(api, which, canvas, skjámynd, x, y, x, y, update_rect);
}
/* Affect the canvas on drag: */
void
example_drag(magic_api * api, int which,
SDL_Surface * canvas, SDL_Surface * skjámynd,
int old_x, int old_y, int x, int y,
SDL_Rect * update_rect)
{
/*
Call Tux Paint's "line()" (line-traversing) function.
It will calculate a straight line between (old_x,old_y) and (x,y). Every
N steps along that line (in this case, N is '1'), it will call _our_
function, "example_line_callback()", and send the current X,Y
coordinates along the line, as well as other useful things (which of our
'Magic' tools is being used and the current and snapshot canvases).
*/
SDL_LockSurface(skjámynd);
SDL_LockSurface(canvas);
api->line((void *) api, which, canvas, skjámynd,
old_x, old_y, x, y, 1,
example_line_callback);
SDL_UnlockSurface(canvas);
SDL_UnlockSurface(skjámynd);
/*
If we need to, swap the X and/or Y values, so that the coordinates
(old_x,old_y) is always the top left, and the coordinates (x,y) is
always the bottom right, so the values we put inside "update_rect" make
sense:
*/
if (old_x > x)
{
int bráðabirgða = old_x;
old_x = x;
x = bráðabirgða;
}
if (old_y > y)
{
int bráðabirgða = old_y;
old_y = y;
y = bráðabirgða;
}
/*
Fill in the elements of the "update_rect" SDL_Rect structure that Tux
Paint is sharing with us, therefore telling Tux Paint which part of the
canvas has been modified and should be updated.
*/
if (which == TOOL_ONE) {
update_rect->x = old_x;
update_rect->y = old_y;
update_rect->w = (x - old_x) + 1;
update_rect->h = (y - old_y) + 1;
} else {
update_rect->x = old_x - example_stærð;
update_rect->y = old_y - example_stærð;
update_rect->w = (x + example_stærð) - update_rect->x + 1;
update_rect->h = (y + example_stærð) - update_rect->y + 1;
}
/*
Play the appropriate sound effect
We're calculating a value between 0-255 for where the mouse is
horizontally across the canvas (0 is the left, ~128 is the center, 255
is the right).
These are the exact values Tux Paint's "playsound()" wants, to determine
what speaker to play the sound in. (So the sound will pan from speaker
to speaker as you drag the mouse around the canvas!)
*/
api->playsound(sound_effects[which],
(x * 255) / canvas->w, /* vinstri/hægri hliðrun */
255 /* Near/far distance (loudness) */);
}
/* Affect the canvas on release: */
void
example_release(magic_api * api, int which,
SDL_Surface * canvas, SDL_Surface * skjámynd, int x, int y,
SDL_Rect * update_rect)
{
/*
Neither of our effects do anything special when the mouse is released
from a click or click-and-drag, so there's no code here...
*/
}
/*
Accept colors
When any of our 'Magic' tools are activated by the user, if that tool
accepts colors, the current color selection is sent to us.
Additionally, if one of our color-accepting tools is active when the user
changes their chosen, we'll be informed of that as well.
The color comes in as RGB (red, green, and blue) values from 0 (darkest) to
255 (brightest).
*/
void example_set_color(magic_api * api, int which, SDL_Surface * canvas, SDL_Surface * skjámynd, Uint8 r, Uint8 g, Uint8 b, SDL_Rect * update_rect)
{
/*
We simply store the RGB values in the global variables we declared at
the top of this file.
*/
example_r = r;
example_g = g;
example_b = b;
}
/*
Accept sizes
When any of our 'Magic' tools are activated by the user, if that tool
offer's sizes, the current size selection is sent to us.
Additionally, if the user changes the tool's size, we'll be informed of
that as well.
The size comes in as an unsigned integer (Uint8) between 1 and the value
returned by our example_accepted_sizes() function during setup.
*/
void example_set_size(magic_api * api, int which, SDL_Surface * canvas, SDL_Surface * skjámynd, Uint8 stærð, SDL_Rect * update_rect)
{
/*
Store the new size into the global variable we declared at the top of
this file.
*/
example_size = size * 4;
}
/* The Magic Effect Routines! */
/* ---------------------------------------------------------------------- */
/*
Our 'callback' function
We do the 'work' in this callback. Our plugin file has just one. Some
'Magic' tool plugins may have more, depending on the tools they're
providing. Some have none (since they're not click-and-drag painting-style
tools).
Our callback function gets called once for every point along a line between
the mouse's previous and current position, as it's being dragged.
Our callback pays attention to 'which' to determine which of our plugin's
tools is currently selected.
*/
void example_line_callback(void *pointer, int which, SDL_Surface * canvas,
SDL_Surface * skjámynd, int x, int y)
{
/*
For technical reasons, we can't accept a pointer to the Tux Paint API's
"magic_api" struct, like the other functions do.
Instead, we receive a 'generic' pointer (a "void *"). The line below
declares a local "magic_api" pointer variable called "api", and then
assigns it to the value of the 'generic' pointer we received.
The "(magic_api *)" seen below casts the generic "void *" pointer into
the 'type' of pointer we want, a pointer to a "magic_api" struct.)
*/
magic_api *api = (magic_api *) pointer;
int xx, yy;
/*
This function handles both of our tools, so we need to check which is
being used right now. We compare the 'which' argument that Tux Paint
sends to us with the values we enumerated above.
*/
if (which == TOOL_ONE)
{
/*
Tool number 1 simply draws a single pixel at the (x,y) location. It acts
as a 1x1 pixel brush.
*/
api->putpixel(canvas, x, y,
SDL_MapRGB(canvas->format,
example_r, example_g, example_b));
/*
We use "SDL_MapRGB()" to convert the RGB value we receive from Tux Paint
for the user's current color selection to a 'Uint32' pixel value we can
send to Tux Paint's "putpixel()" function.
*/
}
else if (which == TOOL_TWO)
{
/*
Tool number 2 copies a square of pixels (of the size chosen by the user)
from the opposite side of the canvas and puts it under the cursor.
*/
for (yy = -example_stærð; yy < example_stærð; yy++)
{
for (xx = -example_stærð; xx < example_stærð; xx++)
{
api->putpixel(canvas, x + xx, y + yy,
api->getpixel(skjámynd,
skjámynd->w - x - xx,
skjámynd->h - y - yy));
/*
Here we have simply use Tux Paint's "getpixel()" routine to pull pixel
values from the 'snapshot', and then "putpixel()" to draw them right
into the 'canvas'.
Note: putpixel() and getpixel() are safe to use, even if your X,Y values
are outside of the SDL surface (e.g., negative, or greater than the
surface's width and/or height).
*/
}
}
}
}
/*
Switch-In event
This happens whenever a Magic tool is enabled, either because the user just
selected it, or they just came back to 'Magic' after using another tool
(e.g., Brush or Text), and this was the most-recently selected Magic tool.
(This also applies to momentary tools, like Undo and Redo, and
image-changing tools such as New and Open.)
It also happens when a Magic tool's mode changes (we will first receive a
call to 'example_switchout()', below, for the old mode).
Our example doesn't do anything when we switch to, or away from, our Magic
tools, so we just do nothing here.
*/
void example_switchin(magic_api * api, int which, int hamur,
SDL_Surface * canvas)
{
}
/*
Switch-Out event
This happens whenever a Magic tool is disabled, either because the user
selected a different Magic tool, or they selected a completely different
tool (e.g., Brush or Text).
(This also applies to momentary tools, like Undo and Redo, and
image-changing tools such as New and Open.)
(And in that case, our example_switchin() function will be called moments
later.
It also happens when a Magic tool's mode changes (we will then receive a
call to 'example_switchin()', above, for the new mode).
Our example doesn't do anything when we switch to, or away from, our Magic
tools, so we just do nothing here.
*/
void example_switchout(magic_api * api, int which, int hamur,
SDL_Surface * canvas)
{
}

View file

@ -0,0 +1,232 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Tux Paint 0.9.29 Quickstart Guide </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8" />
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<h1>Tux Paint 0.9.29 Quickstart Guide</h1>
<h2>Tools (Drawing)</h2>
<h3>🖌Paint</h3>
<ul>
<li>Choose a brush on the right.</li></li>
<li>Some brushes are animated 🎞, some are directional ✲, some are both.</li>
<li>Change brush spacing with the bars 📶 at the bottom right.</li>
<li>Choose a color (see "Colors").</li>
<li>Click/tap and drag in the canvas to paint.</li>
</ul>
<h3>⌧Stamps</h3>
<ul>
<li>Change categories with the arrow buttons ⇦⇨ near the bottom right.</li>
<li>Choose a stamp on the right.</li>
<li>Some stamps may be mirrored 🪞, and/or flipped ↕, using controls near the bottom right.</li>
<li>Some stamps allow you to choose their color (see "Colors").</li>
<li>Change stamp size with the bars 📶 at the bottom right.</li>
<li>Rotation ⟳ may be enabled, if desired.</li>
<li>
Click/tap in the canvas to place a stamp. <ul>
<li>If rotation is enabled, drag to rotate it, and click/tap again to add it to the drawing.</li>
</ul>
</li>
<li>Some stamps play sound effects; press the speaker 🕪 button to hear it again.</li>
<li>Some stamps play descriptive sounds; press the headphones 🎧 button to hear it again.</li>
</ul>
<h3>⚟Lines</h3>
<ul>
<li>(See Paint)</li>
<li>Click/tap and drag to draw a line.</li>
</ul>
<h3>⭓Shapes</h3>
<ul>
<li>Choose a shape on the right.</li>
<li>Select whether you want to extend the shape from the center ⧈, or a corner ◰, using controls at the bottom right.</li>
<li>Click/tap to position, and drag to set the size of the shape.</li>
<li>Drag to rotate it, and click/tap again to add it to the drawing.</li>
</ul>
<h3>🄰Text</h3>
<ul>
<li>Choose a font on the right.</li>
<li>Select whether you want the text bold 𝗔 and/or italic 𝘈, using controls near the bottom right.</li>
<li>Change text size using the up 🡁 and down 🡃 arrow buttons at the bottom right.</li>
<li>Choose a color (see "Colors").</li>
<li>Click/tap the canvas to position an insertion cursor.</li>
<li>Enter text via your keyboard or the on-screen keyboard.</li>
<li>Click/tap the canvas again if you wish to reposition the text.</li>
<li>Press [Enter]/[Return] or click/tap ⮨ to add the text to the drawing and begin entering more text one line down.</li>
<li>Or, press [Tab] or click/tap or ⟷ to add the text to the drawing and continue entering more text immediately to the right.</li>
<li>
Using the on-screen keyboard: <ul>
<li>"Cmp" can be used to compose characters, e.g. Cmp ' a results in á.</li>
<li>"AltGr" can be used to quickly access more characters.</li>
<li>Left/Right arrows switches keyboard layouts (e.g., "QWERTY" vs. "ABC")</li>
</ul>
</li>
</ul>
<h3>🅰Label</h3>
<ul>
<li>(See Text)</li>
<li>Labels float 'above' the drawing; you cannot paint or stamp over them, apply Magic effects, etc.</li>
<li>Labels may be edited, repositioned, and styled after they've been added to the drawing.</li>
<li>Click/tap the ☝ button near the lower right to choose a label. Click/tap the label you wish to modify, then click/tap somewhere else in the canvas to reposition, or change the font/style, change color, and/or type to edit the text.</li>
<li>Or, use the 🖑 button near the lower right to "flatten" a label, applying it to the canvas; it may no longer be edited with the Label tool.</li>
</ul>
<h3>🪣Fill</h3>
<ul>
<li>Choose a fill mode on the right.</li>
<li>Choose a color (see "Colors").</li>
<li>
Click/tap (and drag, with Brush and Linear modes) to fill an area of the picture with a color. <ul>
<li>Solid - Flood-fills an area with a solid color</li>
<li>Brush - Paints with a solid color, without drawing outside the chosen area</li>
<li>Linear - Fills the area with a linear gradient (drag to choose angle and gradient)</li>
<li>Radial - Fills the area with a radial gradient, centered where you clicked/tapped</li>
<li>Shaped - Fills the area with a gradient that follows the contours of the area being filled</li>
</ul>
</li>
</ul>
<h3>🪄Magic</h3>
<ul>
<li>Choose a magic tool on the right.</li>
<li>Change categories with the arrow buttons ⇦⇨ near the bottom right.</li>
<li>Some magic tools draw or apply effects via click/tap and drag 〰🪄, some affect the entire drawing 🖻🪄, and some offer both options; use the controls at the bottom right.</li>
<li>Some magic tools offer various sizes; change it with the bars 📶 at the bottom right.</li>
<li>Some magic tools allow you to choose their color.</li>
</ul>
<h3>🖓Undo</h3>
<ul>
<li>Use to undo the most recent changes (multiple undo available).</li>
<li>Shortcut: [Ctrl]+[Z]</li>
</ul>
<h3>🖒Redo</h3>
<ul>
<li>Use to redo the most recent undone change (multiple redo available).</li>
<li>Shortcut: [Ctrl]+[R]</li>
</ul>
<h3>◪Eraser</h3>
<ul>
<li>Choose the size and shape of the eraser on the right.</li>
<li>Click/tap and drag to erase parts of the picture (solid color, or starter or template image).</li>
<li>Shortcut: [X] and click/tap in the drawing (not always available)</li>
</ul>
<h2>Tools (Controls)</h2>
<h3>🗏New</h3>
<ul>
<li>
Choose a solid color, starter, or template image to start with. <ul>
<li>Starters allow drawing "under" a picture (e.g., a coloring book outline), sometimes with a background layer, too.</li>
<li>Templates are pictures to start with (background only).</li>
<li>Eraser tool ◪ reveals the solid color, or starter/template background.</li>
</ul>
</li>
<li>Click/tap "🕮⮫Open" to begin a new drawing.</li>
<li>Click/tap "⤺Back" to abort and return to your current drawing.</li>
<li>Shortcut: [Ctrl]+[N]</li>
</ul>
<h3>🕮⮫Open</h3>
<ul>
<li>Choose a previously-saved drawing to open (or export or erase).</li>
<li>Click/tap "🕮⮫Open" to open the saved drawing and continue editing it.</li>
<li>Click/tap "🗏⮫Export" to save the drawing to your system's "Pictures" folder.</li>
<li>Click/tap "🗑Erase" to move the drawing to your system's Trash/Recycle Bin.</li>
<li>Click/tap "⤺Back" to abort and return to your current drawing.</li>
<li>
Click/tap "📽Slides" to switch to slideshow mode: <ul>
<li>Click/tap two or more of your previously-saved drawings, in the order you want them shown. Numbers will appear on them.</li>
<li>Choose the playback speed using the bars 📶 near the lower left.</li>
<li>Click/tap "⯈Play" to watch the slideshow/animation.</li>
<li>Or, click/tap "🎞GIF Export" to save an animated GIF of the animation to your system's "Pictures" folder.</li>
<li>Click/tap "⤺Back" to return to the Open dialog.</li>
</ul>
</li>
<li>Shortcut: [Ctrl]+[O]</li>
</ul>
<h3>🕮⮪Save</h3>
<ul>
<li>Click/tap to save your drawing.</li>
<li>If you've saved previously, you'll be prompted whether to overwrite the previously-saved drawing (a la "File→Save") or create a new saved drawing (a la "File→Save As...")</li>
<li>Shortcut: [Ctrl]+[S]</li>
</ul>
<h3>🖶Print</h3>
<ul>
<li>Click/tap to print your drawing.</li>
<li>Hold [Alt] or [Option] while clicking/tapping to bring up printer dialog, if available.</li>
<li>Shortcut: [Ctrl]+[P]</li>
</ul>
<h3>🗙Quit</h3>
<ul>
<li>Click/tap to quit Tux Paint.</li>
<li>Shortcut: [Esc]</li>
</ul>
<h2>Colors</h2>
<ul>
<li>Click/tap to choose a color to use with the Paint, Lines, and Shapes tools, and Stamps and Magic tools that support colors.</li>
<li>
Use the pipette / color picker 💉 button to choose a color from a pixel in your current drawing. <ul>
<li>Shortcut: When colors are available, press [Ctrl] and click/tap in your drawing, to quickly pick a color from your drawing.</li>
</ul>
</li>
<li>
Click/tap the rainbow 🌈 button to choose a arbitrary color. <ul>
<li>Click/tap in the rainbow square to pick a color (hue and saturation).</li>
<li>Click/tap in the grey gradient bar to adjust brightness (value).</li>
<li>Click/tap the green checkbox ✓ to accept.</li>
<li>Click/tap "⤺Back" to abort and dismiss the palette.</li>
<li>You may grab the currently-chosen built-in color (if any), the color in the pipette / color picker, or the color in the color mixer, by clicking one of the colored arrow ⇫ buttons.</li>
</ul>
<li>
Click/tap the paint palette 🎨 button to create a color by mixing primary colors: red, yellow, and blue, and white (tint), grey (tone), and black (shade). <ul>
<li>Click/tap the green checkbox ✓ to accept.</li>
<li>Color mixing offers its own 🖓Undo and 🖒Redo options.</li>
<li>Click/tap "🗑Clear" to start over with no mixed colors.</li>
<li>Click/tap "⤺Back" to abort and dismiss the color mixer.</li>
</ul>
</li>
</ul>
<h2>Shortcuts while drawing:</h2>
<ul>
<li>[Ctrl]+Click/tap - Quick pipette / color picker 💉 access</li>
<li>[X]+Click/tap - Quick eraser ◪ access</li>
<li>[Ctrl]+[Z] - 🖓Undo</li>
<li>[Ctrl]+[R] - 🖒Redo</li>
<li>[Ctrl]+[N] - 🗏New</li>
<li>[Ctrl]+[O] - 🕮⮫Open</li>
<li>[Ctrl]+[S] - 🕮⮪Save</li>
<li>[Ctrl]+[P] - 🖶Print</li>
<li>[Alt]+[S] - Toggle sound effects on/off</li>
<li>[Esc] - ⤺Back or 🗙Quit</li>
</ul>
<p>
<em>Last updated: 9. maí 2023</em>
</p>
</body>
</html>

View file

@ -0,0 +1,680 @@
/* tp_magic_example.c
An example of a "Magic" tool plugin for Tux Paint
13. apríl 2023
*/
/* Inclusion of header files */
/* ---------------------------------------------------------------------- */
#include <stdio.h>
#include <string.h> // Fyrir "strdup()"
#include <libintl.h> // Fyrir "gettext()"
#include "tp_magic_api.h" // Tux Paint "Magic" tool API header
#include "SDL_image.h" // For IMG_Load(), to load our PNG icon
#include "SDL_mixer.h" // For Mix_LoadWAV(), to load our sound effects
/* Tool Enumerations: */
/* ---------------------------------------------------------------------- */
/* What tools we contain: */
enum
{
TOOL_ONE, // Becomes '0'
TOOL_TWO, // Becomes '1'
NUM_TOOLS // Becomes '2'
};
/* Lists of filenames for sounds and icons to load at startup: */
const char *sound_filenames[NUM_TOOLS] = {
"tool_one.wav",
"tool_two.wav"
};
const char *icon_filenames[NUM_TOOLS] = {
"tool_one.png",
"tool_two.png"
};
/*
NOTE: We use a macro called "gettext_noop()" below in some arrays of
strings (char *'s) that hold the names and descriptions of our "Magic"
tools. This allows the strings to be localized into other languages.
*/
/* A list of names for the tools */
const char *tool_names[NUM_TOOLS] = {
gettext_noop("A tool"),
gettext_noop("Another tool")
};
/* How to group the tools with other similar tools, within the 'Magic' selector: */
const int tool_groups[NUM_TOOLS] = {
MAGIC_TYPE_PAINTING,
MAGIC_TYPE_DISTORTS
};
/* A list of descriptions of the tools */
const char *tool_descriptions[NUM_TOOLS] = {
gettext_noop("This is example tool number 1."),
gettext_noop("This is example tool number 2.")
};
/* Our global variables: */
/* ---------------------------------------------------------------------- */
/* Sound effects: */
Mix_Chunk *sound_effects[NUM_TOOLS];
/* The current color (an "RGB" -- red, green, blue -- value) the user has
selected in Tux Paint (for tool 1): */
Uint8 example_r, example_g, example_b;
/* The size the user has selected in Tux Paint (for tool 2): */
Uint8 example_stærð;
/* Our local function prototypes: */
/* ---------------------------------------------------------------------- */
/*
These functions are called by other functions within our plugin, so we
provide a 'prototype' of them, so the compiler knows what they accept and
return. This lets us use them in other functions that are declared
_before_ them.
*/
void example_drag(magic_api * api, int which, SDL_Surface * canvas,
SDL_Surface * skjámynd, int old_x, int old_y, int x, int y,
SDL_Rect * update_rect);
void example_line_callback(void *pointer, int which, SDL_Surface * canvas,
SDL_Surface * skjámynd, int x, int y);
/* Setup Functions: */
/* ---------------------------------------------------------------------- */
/*
API Version check
The running copy of Tux Paint that has loaded us first asks us what version
of the Tux Paint 'Magic' tool plugin API we were built against. If it
deems us compatible, we'll be used!
All we need to do here is return "TP_MAGIC_API_VERSION", which is defined
(#define) in the header file "tp_magic_api.h".
*/
Uint32 example_api_version(void)
{
return (TP_MAGIC_API_VERSION);
}
/*
Frumstilling
This happens once, when Tux Paint starts up and is loading all of the
'Magic' tool plugins. (Assuming what we returned from api_version was
acceptable!)
All we're doing in this example is loading our sound effects, which we'll
use later (in example_click(), example_drag(), and example_release()) when
the user is using our Magic tools.
The memory we allocate here to store the sounds will be freed (aka
released, aka deallocated) when the user quits Tux Paint, when our
example_shutdown() function is called.
*/
int example_init(magic_api * api, Uint32 disabled_features)
{
int i;
char filename[1024];
for (i = 0; i < NUM_TOOLS; i++)
{
/*
Assemble the filename from the "sound_filenames[]" array into a full path
to a real file.
Use "api->data_directory" to figure out where our sounds should be. (The
"tp-magic-config --dataprefix" command would have told us when we installed
our plugin and its data.)
*/
snprintf(filename, sizeof(filename), "%s/sounds/magic/%s", api->data_directory,
sound_filenames[i]);
printf("Trying to load %s sound file\n", filename);
/* Try to load the file! */
sound_effects[i] = Mix_LoadWAV(filename);
}
return (1);
}
/*
Report our tool count
Tux Paint needs to know how many 'Magic' tools we'll be providing. Return
that number here. (We simply grab the value of 'NUM_TOOLS' from our 'enum'
above!)
When Tux Paint is starting up and loading plugins, it will call some of the
following setup functions once for each tool we report.
*/
int example_get_tool_count(magic_api * api)
{
return (NUM_TOOLS);
}
/*
Load our icons
When Tux Paint is starting up and loading plugins, it asks us to provide icons for the 'Magic' tool buttons.
*/
SDL_Surface *example_get_icon(magic_api * api, int which)
{
char filename[1024];
/*
Assemble the filename from the "icon_filenames[]" array into a full path to
a real file.
Use "api->data_directory" to figure out where our sounds should be. (The
"tp-magic-config --dataprefix" command would have told us when we installed
our plugin and its data.)
We use "which" (which of our tools Tux Paint is asking about) as an index
into the array.
*/
snprintf(filename, sizeof(filename), "%s/images/magic/%s",
api->data_directory, icon_filenames[which]);
printf("Trying to load %s icon\n", filename);
/* Try to load the image, and return the results to Tux Paint: */
return (IMG_Load(filename));
}
/*
Report our 'Magic' tool names
When Tux Paint is starting up and loading plugins, it asks us to provide
names (labels) for the 'Magic' tool buttons.
*/
char *example_get_name(magic_api * api, int which)
{
const char *our_name_english;
const char *our_name_localized;
/*
Get our name from the "tool_names[]" array.
We use 'which' (which of our tools Tux Paint is asking about) as an index
into the array.
*/
our_name_english = tool_names[which];
/*
Return a localized (aka translated) version of our name, if possible.
We send "gettext()" the English version of the name from our array.
*/
our_name_localized = gettext(our_name_english);
/*
Finally, duplicate the string into a new section of memory, and send it to
Tux Paint. (Tux Paint keeps track of the string and will free it for us,
so we have one less thing to keep track of.)
*/
return (strdup(our_name_localized));
}
/*
Report our 'Magic' tool groups
When Tux Paint is starting up and loading plugins, it asks us to specify
where the tool should be grouped.
*/
int example_get_group(magic_api * api, int which)
{
/*
Return our group, found in the "tool_groups[]" array.
We use 'which' (which of our tools Tux Paint is asking about) as an index
into the array.
*/
return (tool_groups[which]);
}
/*
Report our 'Magic' tool descriptions
When Tux Paint is starting up and loading plugins, it asks us to provide
descriptions of each 'Magic' tool.
*/
char *example_get_description(magic_api * api, int which, int hamur)
{
const char *our_desc_english;
const char *our_desc_localized;
/*
Get our description from the "tool_descriptions[]" array.
We use 'which' (which of our tools Tux Paint is asking about) as an index
into the array.
*/
our_desc_english = tool_descriptions[which];
/*
Return a localized (aka translated) version of our description, if
possible.
We send "gettext" the English version of the description from our array.
*/
our_desc_localized = gettext(our_desc_english);
/*
Finally, duplicate the string into a new section of memory, and send it to
Tux Paint. (Tux Paint keeps track of the string and will free it for us,
so we have one less thing to keep track of.)
*/
return (strdup(our_desc_localized));
}
// Report whether we accept colors
int example_requires_colors(magic_api * api, int which)
{
if (which == TOOL_ONE)
return 1;
else
return 0;
}
// Report what modes we work in
int example_modes(magic_api * api, int which)
{
/*
Both of our tools are painted (neither affect the full-screen), so we're
always returning 'MODE_PAINT'
*/
return MODE_PAINT;
}
// Report whether the tools offer sizing options
Uint8 example_accepted_sizes(magic_api * api, int which, int hamur)
{
if (which == TOOL_ONE)
return 1;
else
return 4;
}
// Return our default sizing option
Uint8 example_default_size(magic_api * api, int which, int hamur)
{
return 1;
}
/*
Slökkva
Tux Paint is quitting. When it quits, it asks all of the plugins to 'clean
up' after themselves. We, for example, loaded some sound effects at
startup (in our example_init() function), so we should free the memory used
by them now.
*/
void example_shutdown(magic_api * api)
{
int i;
/*
Free (aka release, aka deallocate) the memory used to store the sound
effects that we loaded during example_init():
*/
for (i = 0; i < NUM_TOOLS; i++)
Mix_FreeChunk(sound_effects[i]);
}
/* Functions that respond to events in Tux Paint: */
/* ---------------------------------------------------------------------- */
/* Affect the canvas on click: */
void
example_click(magic_api * api, int which, int hamur,
SDL_Surface * canvas, SDL_Surface * skjámynd, int x, int y,
SDL_Rect * update_rect)
{
/*
In our case, a single click (which is also the start of a drag!) is
identical to what dragging does, but just at one point, rather than across
a line.
So we 'cheat' here, by calling our "example_draw()" function with (x,y) for
both the beginning and end points of a line.
*/
example_drag(api, which, canvas, skjámynd, x, y, x, y, update_rect);
}
/* Affect the canvas on drag: */
void
example_drag(magic_api * api, int which,
SDL_Surface * canvas, SDL_Surface * skjámynd,
int old_x, int old_y, int x, int y,
SDL_Rect * update_rect)
{
/*
Call Tux Paint's "line()" (line-traversing) function.
It will calculate a straight line between (old_x,old_y) and (x,y). Every
N steps along that line (in this case, N is '1'), it will call _our_
function, "example_line_callback()", and send the current X,Y
coordinates along the line, as well as other useful things (which of our
'Magic' tools is being used and the current and snapshot canvases).
*/
SDL_LockSurface(skjámynd);
SDL_LockSurface(canvas);
api->line((void *) api, which, canvas, skjámynd,
old_x, old_y, x, y, 1,
example_line_callback);
SDL_UnlockSurface(canvas);
SDL_UnlockSurface(skjámynd);
/*
If we need to, swap the X and/or Y values, so that the coordinates
(old_x,old_y) is always the top left, and the coordinates (x,y) is
always the bottom right, so the values we put inside "update_rect" make
sense:
*/
if (old_x > x)
{
int bráðabirgða = old_x;
old_x = x;
x = bráðabirgða;
}
if (old_y > y)
{
int bráðabirgða = old_y;
old_y = y;
y = bráðabirgða;
}
/*
Fill in the elements of the "update_rect" SDL_Rect structure that Tux
Paint is sharing with us, therefore telling Tux Paint which part of the
canvas has been modified and should be updated.
*/
if (which == TOOL_ONE) {
update_rect->x = old_x;
update_rect->y = old_y;
update_rect->w = (x - old_x) + 1;
update_rect->h = (y - old_y) + 1;
} else {
update_rect->x = old_x - example_stærð;
update_rect->y = old_y - example_stærð;
update_rect->w = (x + example_stærð) - update_rect->x + 1;
update_rect->h = (y + example_stærð) - update_rect->y + 1;
}
/*
Play the appropriate sound effect
We're calculating a value between 0-255 for where the mouse is
horizontally across the canvas (0 is the left, ~128 is the center, 255
is the right).
These are the exact values Tux Paint's "playsound()" wants, to determine
what speaker to play the sound in. (So the sound will pan from speaker
to speaker as you drag the mouse around the canvas!)
*/
api->playsound(sound_effects[which],
(x * 255) / canvas->w, /* vinstri/hægri hliðrun */
255 /* Near/far distance (loudness) */);
}
/* Affect the canvas on release: */
void
example_release(magic_api * api, int which,
SDL_Surface * canvas, SDL_Surface * skjámynd, int x, int y,
SDL_Rect * update_rect)
{
/*
Neither of our effects do anything special when the mouse is released
from a click or click-and-drag, so there's no code here...
*/
}
/*
Accept colors
When any of our 'Magic' tools are activated by the user, if that tool
accepts colors, the current color selection is sent to us.
Additionally, if one of our color-accepting tools is active when the user
changes their chosen, we'll be informed of that as well.
The color comes in as RGB (red, green, and blue) values from 0 (darkest) to
255 (brightest).
*/
void example_set_color(magic_api * api, int which, SDL_Surface * canvas, SDL_Surface * skjámynd, Uint8 r, Uint8 g, Uint8 b, SDL_Rect * update_rect)
{
/*
We simply store the RGB values in the global variables we declared at
the top of this file.
*/
example_r = r;
example_g = g;
example_b = b;
}
/*
Accept sizes
When any of our 'Magic' tools are activated by the user, if that tool
offer's sizes, the current size selection is sent to us.
Additionally, if the user changes the tool's size, we'll be informed of
that as well.
The size comes in as an unsigned integer (Uint8) between 1 and the value
returned by our example_accepted_sizes() function during setup.
*/
void example_set_size(magic_api * api, int which, SDL_Surface * canvas, SDL_Surface * skjámynd, Uint8 stærð, SDL_Rect * update_rect)
{
/*
Store the new size into the global variable we declared at the top of
this file.
*/
example_size = size * 4;
}
/* The Magic Effect Routines! */
/* ---------------------------------------------------------------------- */
/*
Our 'callback' function
We do the 'work' in this callback. Our plugin file has just one. Some
'Magic' tool plugins may have more, depending on the tools they're
providing. Some have none (since they're not click-and-drag painting-style
tools).
Our callback function gets called once for every point along a line between
the mouse's previous and current position, as it's being dragged.
Our callback pays attention to 'which' to determine which of our plugin's
tools is currently selected.
*/
void example_line_callback(void *pointer, int which, SDL_Surface * canvas,
SDL_Surface * skjámynd, int x, int y)
{
/*
For technical reasons, we can't accept a pointer to the Tux Paint API's
"magic_api" struct, like the other functions do.
Instead, we receive a 'generic' pointer (a "void *"). The line below
declares a local "magic_api" pointer variable called "api", and then
assigns it to the value of the 'generic' pointer we received.
The "(magic_api *)" seen below casts the generic "void *" pointer into
the 'type' of pointer we want, a pointer to a "magic_api" struct.)
*/
magic_api *api = (magic_api *) pointer;
int xx, yy;
/*
This function handles both of our tools, so we need to check which is
being used right now. We compare the 'which' argument that Tux Paint
sends to us with the values we enumerated above.
*/
if (which == TOOL_ONE)
{
/*
Tool number 1 simply draws a single pixel at the (x,y) location. It acts
as a 1x1 pixel brush.
*/
api->putpixel(canvas, x, y,
SDL_MapRGB(canvas->format,
example_r, example_g, example_b));
/*
We use "SDL_MapRGB()" to convert the RGB value we receive from Tux Paint
for the user's current color selection to a 'Uint32' pixel value we can
send to Tux Paint's "putpixel()" function.
*/
}
else if (which == TOOL_TWO)
{
/*
Tool number 2 copies a square of pixels (of the size chosen by the user)
from the opposite side of the canvas and puts it under the cursor.
*/
for (yy = -example_stærð; yy < example_stærð; yy++)
{
for (xx = -example_stærð; xx < example_stærð; xx++)
{
api->putpixel(canvas, x + xx, y + yy,
api->getpixel(skjámynd,
skjámynd->w - x - xx,
skjámynd->h - y - yy));
/*
Here we have simply use Tux Paint's "getpixel()" routine to pull pixel
values from the 'snapshot', and then "putpixel()" to draw them right
into the 'canvas'.
Note: putpixel() and getpixel() are safe to use, even if your X,Y values
are outside of the SDL surface (e.g., negative, or greater than the
surface's width and/or height).
*/
}
}
}
}
/*
Switch-In event
This happens whenever a Magic tool is enabled, either because the user just
selected it, or they just came back to 'Magic' after using another tool
(e.g., Brush or Text), and this was the most-recently selected Magic tool.
(This also applies to momentary tools, like Undo and Redo, and
image-changing tools such as New and Open.)
It also happens when a Magic tool's mode changes (we will first receive a
call to 'example_switchout()', below, for the old mode).
Our example doesn't do anything when we switch to, or away from, our Magic
tools, so we just do nothing here.
*/
void example_switchin(magic_api * api, int which, int hamur,
SDL_Surface * canvas)
{
}
/*
Switch-Out event
This happens whenever a Magic tool is disabled, either because the user
selected a different Magic tool, or they selected a completely different
tool (e.g., Brush or Text).
(This also applies to momentary tools, like Undo and Redo, and
image-changing tools such as New and Open.)
(And in that case, our example_switchin() function will be called moments
later.
It also happens when a Magic tool's mode changes (we will then receive a
call to 'example_switchin()', above, for the new mode).
Our example doesn't do anything when we switch to, or away from, our Magic
tools, so we just do nothing here.
*/
void example_switchout(magic_api * api, int which, int hamur,
SDL_Surface * canvas)
{
}

View file

@ -0,0 +1,215 @@
Tux Paint 0.9.29 Quickstart Guide
Tools (Drawing)
🖌Paint
* Choose a brush on the right.
* Some brushes are animated 🎞, some are directional ✲, some are both.
* Change brush spacing with the bars 📶 at the bottom right.
* Choose a color (see "Colors").
* Click/tap and drag in the canvas to paint.
⌧Stamps
* Change categories with the arrow buttons ⇦⇨ near the bottom right.
* Choose a stamp on the right.
* Some stamps may be mirrored 🪞, and/or flipped ↕, using controls near
the bottom right.
* Some stamps allow you to choose their color (see "Colors").
* Change stamp size with the bars 📶 at the bottom right.
* Rotation ⟳ may be enabled, if desired.
* Click/tap in the canvas to place a stamp.
* If rotation is enabled, drag to rotate it, and click/tap again to
add it to the drawing.
* Some stamps play sound effects; press the speaker 🕪 button to hear it
again.
* Some stamps play descriptive sounds; press the headphones 🎧 button to
hear it again.
⚟Lines
* (See Paint)
* Click/tap and drag to draw a line.
⭓Shapes
* Choose a shape on the right.
* Select whether you want to extend the shape from the center ⧈, or a
corner ◰, using controls at the bottom right.
* Click/tap to position, and drag to set the size of the shape.
* Drag to rotate it, and click/tap again to add it to the drawing.
🄰Text
* Choose a font on the right.
* Select whether you want the text bold 𝗔 and/or italic 𝘈, using
controls near the bottom right.
* Change text size using the up 🡁 and down 🡃 arrow buttons at the bottom
right.
* Choose a color (see "Colors").
* Click/tap the canvas to position an insertion cursor.
* Enter text via your keyboard or the on-screen keyboard.
* Click/tap the canvas again if you wish to reposition the text.
* Press [Enter]/[Return] or click/tap ⮨ to add the text to the drawing
and begin entering more text one line down.
* Or, press [Tab] or click/tap or ⟷ to add the text to the drawing and
continue entering more text immediately to the right.
* Using the on-screen keyboard:
* "Cmp" can be used to compose characters, e.g. Cmp ' a results in
á.
* "AltGr" can be used to quickly access more characters.
* Left/Right arrows switches keyboard layouts (e.g., "QWERTY" vs.
"ABC")
🅰Label
* (See Text)
* Labels float 'above' the drawing; you cannot paint or stamp over them,
apply Magic effects, etc.
* Labels may be edited, repositioned, and styled after they've been
added to the drawing.
* Click/tap the ☝ button near the lower right to choose a label.
Click/tap the label you wish to modify, then click/tap somewhere else
in the canvas to reposition, or change the font/style, change color,
and/or type to edit the text.
* Or, use the 🖑 button near the lower right to "flatten" a label,
applying it to the canvas; it may no longer be edited with the Label
tool.
🪣Fill
* Choose a fill mode on the right.
* Choose a color (see "Colors").
* Click/tap (and drag, with Brush and Linear modes) to fill an area of
the picture with a color.
* Solid - Flood-fills an area with a solid color
* Brush - Paints with a solid color, without drawing outside the
chosen area
* Linear - Fills the area with a linear gradient (drag to choose
angle and gradient)
* Radial - Fills the area with a radial gradient, centered where
you clicked/tapped
* Shaped - Fills the area with a gradient that follows the contours
of the area being filled
🪄Magic
* Choose a magic tool on the right.
* Change categories with the arrow buttons ⇦⇨ near the bottom right.
* Some magic tools draw or apply effects via click/tap and drag 〰🪄, some
affect the entire drawing 🖻🪄, and some offer both options; use the
controls at the bottom right.
* Some magic tools offer various sizes; change it with the bars 📶 at the
bottom right.
* Some magic tools allow you to choose their color.
🖓Undo
* Use to undo the most recent changes (multiple undo available).
* Shortcut: [Ctrl]+[Z]
🖒Redo
* Use to redo the most recent undone change (multiple redo available).
* Shortcut: [Ctrl]+[R]
◪Eraser
* Choose the size and shape of the eraser on the right.
* Click/tap and drag to erase parts of the picture (solid color, or
starter or template image).
* Shortcut: [X] and click/tap in the drawing (not always available)
Tools (Controls)
🗏New
* Choose a solid color, starter, or template image to start with.
* Starters allow drawing "under" a picture (e.g., a coloring book
outline), sometimes with a background layer, too.
* Templates are pictures to start with (background only).
* Eraser tool ◪ reveals the solid color, or starter/template
background.
* Click/tap "🕮⮫Open" to begin a new drawing.
* Click/tap "⤺Back" to abort and return to your current drawing.
* Shortcut: [Ctrl]+[N]
🕮⮫Open
* Choose a previously-saved drawing to open (or export or erase).
* Click/tap "🕮⮫Open" to open the saved drawing and continue editing it.
* Click/tap "🗏⮫Export" to save the drawing to your system's "Pictures"
folder.
* Click/tap "🗑Erase" to move the drawing to your system's Trash/Recycle
Bin.
* Click/tap "⤺Back" to abort and return to your current drawing.
* Click/tap "📽Slides" to switch to slideshow mode:
* Click/tap two or more of your previously-saved drawings, in the
order you want them shown. Numbers will appear on them.
* Choose the playback speed using the bars 📶 near the lower left.
* Click/tap "⯈Play" to watch the slideshow/animation.
* Or, click/tap "🎞GIF Export" to save an animated GIF of the
animation to your system's "Pictures" folder.
* Click/tap "⤺Back" to return to the Open dialog.
* Shortcut: [Ctrl]+[O]
🕮⮪Save
* Click/tap to save your drawing.
* If you've saved previously, you'll be prompted whether to overwrite
the previously-saved drawing (a la "File→Save") or create a new saved
drawing (a la "File→Save As...")
* Shortcut: [Ctrl]+[S]
🖶Print
* Click/tap to print your drawing.
* Hold [Alt] or [Option] while clicking/tapping to bring up printer
dialog, if available.
* Shortcut: [Ctrl]+[P]
🗙Quit
* Click/tap to quit Tux Paint.
* Shortcut: [Esc]
Colors
* Click/tap to choose a color to use with the Paint, Lines, and Shapes
tools, and Stamps and Magic tools that support colors.
* Use the pipette / color picker 💉 button to choose a color from a pixel
in your current drawing.
* Shortcut: When colors are available, press [Ctrl] and click/tap
in your drawing, to quickly pick a color from your drawing.
* Click/tap the rainbow 🌈 button to choose a arbitrary color.
* Click/tap in the rainbow square to pick a color (hue and
saturation).
* Click/tap in the grey gradient bar to adjust brightness (value).
* Click/tap the green checkbox ✓ to accept.
* Click/tap "⤺Back" to abort and dismiss the palette.
* You may grab the currently-chosen built-in color (if any), the
color in the pipette / color picker, or the color in the color
mixer, by clicking one of the colored arrow ⇫ buttons.
* Click/tap the paint palette 🎨 button to create a color by mixing
primary colors: red, yellow, and blue, and white (tint), grey (tone),
and black (shade).
* Click/tap the green checkbox ✓ to accept.
* Color mixing offers its own 🖓Undo and 🖒Redo options.
* Click/tap "🗑Clear" to start over with no mixed colors.
* Click/tap "⤺Back" to abort and dismiss the color mixer.
Shortcuts while drawing:
* [Ctrl]+Click/tap - Quick pipette / color picker 💉 access
* [X]+Click/tap - Quick eraser ◪ access
* [Ctrl]+[Z] - 🖓Undo
* [Ctrl]+[R] - 🖒Redo
* [Ctrl]+[N] - 🗏New
* [Ctrl]+[O] - 🕮⮫Open
* [Ctrl]+[S] - 🕮⮪Save
* [Ctrl]+[P] - 🖶Print
* [Alt]+[S] - Toggle sound effects on/off
* [Esc] - ⤺Back or 🗙Quit
Last updated: 9. maí 2023

View file

@ -0,0 +1,17 @@
Tux Paint "Magic" Tool: 3D Glasses
Group: Color Filters
Author: Bill Kendrick <bill@newbreedsoftware.com>
This tool horizontally separates your entire picture's red and cyan color
channels, letting you create anaglyphic pictures that can be viewed with
3D glasses.
This tool is operated in a freehand fashion.
See also: Color Sep. & Double Vision.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,14 @@
Tux Paint "Magic" Tool: Blind
Group: Picture Decorations
Author: Pere Pujal i Carabantes <pere@fornol.no-ip.org>
Click towards the edge of your picture to pull window blinds over it. Move
perpendicularly to open or close the blinds.
This tool is operated in a freehand fashion.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,17 @@
Tux Paint "Magic" Tool: Blocks
Group: Distorts
Authors: Bill Kendrick <bill@newbreedsoftware.com>
Albert Cahalan <albert@users.sf.net>
This makes the picture blocky looking ("pixelated") wherever you drag the
mouse.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,15 @@
Tux Paint "Magic" Tool: Bloom
Group: Color Filters
Author: Bill Kendrick <bill@newbreedsoftware.com>
Add a glowing "bloom" effect to pictures.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,18 @@
Tux Paint "Magic" Tool: Blur
Group: Distorts
Authors: Bill Kendrick <bill@newbreedsoftware.com>
Albert Cahalan <albert@users.sf.net>
This makes the picture fuzzy wherever you drag the mouse.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
See also: Sharpen & Smudge.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,19 @@
Tux Paint "Magic" Tool: Bricks
Group: Painting
Author: Albert Cahalan <albert@users.sf.net>
These two tools intelligently paint large and small brick patterns on the
canvas. The bricks can be tinted various redish hues by selecting
different colors in the color palette.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
See also: Pixels.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,14 @@
Tux Paint "Magic" Tool: Calligraphy
Group: Painting
Author: Bill Kendrick <bill@newbreedsoftware.com>
This paints on the canvas with a calligraphy pen. The quicker you move,
the thinner the lines.
This tool is operated in a freehand fashion.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,16 @@
Tux Paint "Magic" Tool: Cartoon
Group: Color Filters
Author: Bill Kendrick <bill@newbreedsoftware.com>
This makes the picture look like a cartoon — with thick outlines and
bright, solid colors — wherever you move the mouse.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,16 @@
Tux Paint "Magic" Tool: Chalk
Group: Distorts
Author: Bill Kendrick <bill@newbreedsoftware.com>
This makes parts of the picture (where you move the mouse) look like a
chalk drawing.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,14 @@
Tux Paint "Magic" Tool: Checkerboard
Group: Picture Decorations
Author: Bill Kendrick <bill@newbreedsoftware.com>
This covers the entire canvas with a checkboard pattern using the current
color. Drag to change the size of the squares.
This tool is operated in a freehand fashion.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,16 @@
Tux Paint "Magic" Tool: Circles
Group: Distorts
Author: Bill Kendrick <bill@newbreedsoftware.com>
This transforms the picture into circular brush strokes around where you
clicked.
This tool offers both freehand and one-click operation.
See also: Rays.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,17 @@
Tux Paint "Magic" Tool: Clone
Group: Distorts
Author: Bill Kendrick <bill@newbreedsoftware.com>
Clone (copy, via painting) part of the picture. Click ones to choose the
source, then click and drag to clone it elsewhere in the drawing. Once you
release, click to choose another source and start again.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,17 @@
Tux Paint "Magic" Tool: Color and White
Group: Color Filters
Author: Andrew Corcoran <akanewbie@gmail.com>
This makes parts of your picture two colors: white, and the color chosen
in the palette. (i.e., if you choose black, you'll get a black and white
picture).
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,15 @@
Tux Paint "Magic" Tool: Color Shift
Group: Color Filters
Author: Andrew Corcoran <akanewbie@gmail.com>
This shifts the colors in your picture.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,17 @@
Tux Paint "Magic" Tool: Color Sep.
Group: Color Filters
Author: Bill Kendrick <bill@newbreedsoftware.com>
This tool separates one color out of your entire picture, shifting colors
away from each other (similar to '3D Glasses', but you may choose the any
color to separate, and may move in any direction).
This tool is operated in a freehand fashion.
See also: 3D Glasses & Double Vision.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,15 @@
Tux Paint "Magic" Tool: Confetti
Group: Painting
Author: Adam Rakowski <foo-script@o2.pl>
Throw confetti around your picture!
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,18 @@
Tux Paint "Magic" Tool: Darken
Group: Color Filters
Author: Bill Kendrick <bill@newbreedsoftware.com>
This darkens the colors wherever you drag the mouse. (Do it to the same
spot many times, and it will eventually become black.)
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
See also: Lighten, Tint, Saturate, & Desaturate.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,18 @@
Tux Paint "Magic" Tool: Desaturate
Group: Color Filters
Author: Bill Kendrick <bill@newbreedsoftware.com>
This desaturates the colors wherever you drag the mouse. (Do it to the
same spot many times, and it will eventually become greyscale.)
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
See also: Saturate, Darken, Lighten, Tint, Remove Color, & Keep Color.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,15 @@
Tux Paint "Magic" Tool: Distortion
Group: Distorts
Author: Bill Kendrick <bill@newbreedsoftware.com>
This slightly distorts the picture wherever you move the mouse.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,15 @@
Tux Paint "Magic" Tool: Double Vision
Group: Color Filters
Author: Bill Kendrick <bill@newbreedsoftware.com>
This blends the image with itself, to simulate double vision.
This tool is operated in a freehand fashion.
See also: 3D Glasses & Double Vision.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,15 @@
Tux Paint "Magic" Tool: Drip
Group: Distorts
Author: Bill Kendrick <bill@newbreedsoftware.com>
This makes the paint "drip" wherever you move the mouse.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,17 @@
Tux Paint "Magic" Tool: Edges
Group: Distorts
Author: Andrew Corcoran <akanewbie@gmail.com>
Trace the edges in your picture, over a white background.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
See also: Emboss & Silhouette.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,19 @@
Tux Paint "Magic" Tool: Emboss
Group: Distorts
Author: Bill Kendrick <bill@newbreedsoftware.com>
This makes parts of your picture look "embossed." Wherever there are sharp
edges in your picture, the picture will look raised like it was stamped in
metal.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
See also: Edges & Silhouette.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,17 @@
Tux Paint "Magic" Tool: Fisheye
Group: Distorts
Author: Adam Rakowski <foo-script@o2.pl>
Warp parts of your picture like it's being seen through a fisheye lens.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
See also: Ripples.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,16 @@
Tux Paint "Magic" Tool: Flip
Group: Picture Warps
Author: Bill Kendrick <bill@newbreedsoftware.com>
Similar to "Mirror." Click and the entire image will be turned
upside-down.
This tool is operated with a single click.
See also: Mirror.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,21 @@
Tux Paint "Magic" Tool: Flower
Group: Artistic
Author: Bill Kendrick <bill@newbreedsoftware.com>
This tool draws small flowers, with leafy bases and stalks. Click to set
the base, then drag the mouse upwards to draw the stalk, and finally
release the mouse button to finish the flower. It will be drawn in the
currently-selected color. The shape and length of the stalk depends on how
you move the mouse while you drag.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
See also: Grass.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,15 @@
Tux Paint "Magic" Tool: Foam
Group: Painting
Author: Bill Kendrick <bill@newbreedsoftware.com>
Click and drag the mouse to draw foamy bubbles. The more you drag the
mouse in a particular spot, the more likely small bubbles will combine to
form bigger bubbles.
This tool is operated in a freehand fashion.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,16 @@
Tux Paint "Magic" Tool: Fold
Group: Picture Warps
Authors: Adam Rakowski <foo-script@o2.pl>
Bill Kendrick <bill@newbreedsoftware.com>
Pere Pujal i Carabantes <pere@fornol.no-ip.org>
Click a corner of your picture and drag towards the center to fold it up
like a piece of paper.
This tool is operated in a freehand fashion.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,13 @@
Tux Paint "Magic" Tool: Fretwork
Group: Painting
Author: Pere Pujal i Carabantes <pere@fornol.no-ip.org>
Draw an interlaced decorative design that looks like wooden fretwork.
This tool offers both freehand and one-click operation.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,13 @@
Tux Paint "Magic" Tool: Fur
Group: Painting
Author: Bill Kendrick <bill@newbreedsoftware.com>
Add fur to your drawing.
This tool is operated in a freehand fashion.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,14 @@
Tux Paint "Magic" Tool: Glass Tile
Group: Distorts
Author: Bill Kendrick <bill@newbreedsoftware.com>
Click and drag over your picture to make it look like it's being seen
through glass tiles.
This tool offers both freehand and one-click operation.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,15 @@
Tux Paint "Magic" Tool: Googly Eyes
Group: Artistic
Author: Bill Kendrick <bill@newbreedsoftware.com>
Draws a googly eye where you click. Drag to position the pupil.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,17 @@
Tux Paint "Magic" Tool: Grass
Group: Painting
Author: Albert Cahalan <albert@users.sf.net>
This paints grass on the image. The higher up the canvas, the smaller the
grass is drawn, giving an illusion of perspective. The grass can be tinted
various greenish hues by selecting different colors in the color palette.
This tool is operated in a freehand fashion.
See also: Flower.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,15 @@
Tux Paint "Magic" Tool: Halftone
Group: Distorts
Author: Bill Kendrick <bill@newbreedsoftware.com>
This makes parts of your picture look like newsprint. Different sizes of
cyan, magenta, yellow, and black "ink" will appear in place of your
picture.
This tool offers both freehand and one-click operation.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,15 @@
Tux Paint "Magic" Tool: Hexagon Mosaic
Group: Distorts
Author: Pere Pujal i Carabantes <pere@fornol.no-ip.org>
Converts parts of your picture into a mosaic of hexagon cells.
This tool offers both freehand and one-click operation.
See also: Irregular Mosaic, Square Mosaic, & Mosaic.
----------------------------------------------------------------------
Tux Paint 0.9.31

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: 3D Glasses</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: 3D Glasses</h1>
<h2 align="center">Group: Color Filters</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This tool horizontally separates your entire picture's red and cyan color channels, letting you create anaglyphic pictures that can be viewed with 3D glasses.</p>
<p align=center><img src="../../../html/images/magic_examples/3dglasses.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<p>See also: <a href="colorsep.html">Color Sep.</a> &amp; <a href="doublevision.html">Double Vision</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Blind</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Blind</h1>
<h2 align="center">Group: Picture Decorations</h2>
<h3 align="center">Author:
Pere Pujal i Carabantes &lt;<a href="mailto:pere@fornol.no-ip.org">pere@fornol.no-ip.org</a>&gt;</h3>
<p>Click towards the edge of your picture to pull window blinds over it. Move perpendicularly to open or close the blinds.</p>
<p align=center><img src="../../../html/images/magic_examples/blinds.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Blocks</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Blocks</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Authors:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;<br>
Albert Cahalan &lt;<a href="mailto:albert@users.sf.net">albert@users.sf.net</a>&gt;<br>
</h3>
<p>This makes the picture blocky looking ("pixelated") wherever you drag the mouse.</p>
<p align=center><img src="../../../html/images/magic_examples/blocks.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Bloom</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Bloom</h1>
<h2 align="center">Group: Color Filters</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>Add a glowing "bloom" effect to pictures.</p>
<p align=center><img src="../../../html/images/magic_examples/bloom.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Blur</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Blur</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Authors:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;<br>
Albert Cahalan &lt;<a href="mailto:albert@users.sf.net">albert@users.sf.net</a>&gt;<br>
</h3>
<p>This makes the picture fuzzy wherever you drag the mouse.</p>
<p align=center><img src="../../../html/images/magic_examples/blur.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<p>See also: <a href="sharpen.html">Sharpen</a> &amp; <a href="smudge.html">Smudge</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Bricks</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Bricks</h1>
<h2 align="center">Group: Painting</h2>
<h3 align="center">Author:
Albert Cahalan &lt;<a href="mailto:albert@users.sf.net">albert@users.sf.net</a>&gt;</h3>
<p>These two tools intelligently paint large and small brick patterns on the canvas. The bricks can be tinted various redish hues by selecting different colors in the color palette.</p>
<p align=center><img src="../../../html/images/magic_examples/bricks.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<p>This tool offers multiple size settings.</p>
<p>See also: <a href="pixels.html">Pixels</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Calligraphy</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Calligraphy</h1>
<h2 align="center">Group: Painting</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This paints on the canvas with a calligraphy pen. The quicker you move, the thinner the lines.</p>
<p align=center><img src="../../../html/images/magic_examples/calligraphy.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Cartoon</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Cartoon</h1>
<h2 align="center">Group: Color Filters</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This makes the picture look like a cartoon &mdash; with thick outlines and bright, solid colors &mdash; wherever you move the mouse.</p>
<p align=center><img src="../../../html/images/magic_examples/cartoon.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Chalk</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Chalk</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This makes parts of the picture (where you move the mouse) look like a chalk drawing.</p>
<p align=center><img src="../../../html/images/magic_examples/chalk.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Checkerboard</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Checkerboard</h1>
<h2 align="center">Group: Picture Decorations</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This covers the entire canvas with a checkboard pattern using the current color. Drag to change the size of the squares.</p>
<p align=center><img src="../../../html/images/magic_examples/checkerboard.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Circles</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Circles</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This transforms the picture into circular brush strokes around where you clicked.</p>
<p align=center><img src="../../../html/images/magic_examples/circles.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>See also: <a href="rays.html">Rays</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Clone</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Clone</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>Clone (copy, via painting) part of the picture. Click ones to choose the source, then click and drag to clone it elsewhere in the drawing. Once you release, click to choose another source and start again.</p>
<p align=center><img src="../../../html/images/magic_examples/clone.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Color and White</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Color and White</h1>
<h2 align="center">Group: Color Filters</h2>
<h3 align="center">Author:
Andrew Corcoran &lt;<a href="mailto:akanewbie@gmail.com">akanewbie@gmail.com</a>&gt;</h3>
<p>This makes parts of your picture two colors: white, and the color chosen in the palette. (i.e., if you choose black, you'll get a black and white picture).</p>
<p align=center><img src="../../../html/images/magic_examples/color_and_white.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Color Shift</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Color Shift</h1>
<h2 align="center">Group: Color Filters</h2>
<h3 align="center">Author:
Andrew Corcoran &lt;<a href="mailto:akanewbie@gmail.com">akanewbie@gmail.com</a>&gt;</h3>
<p>This shifts the colors in your picture.</p>
<p align=center><img src="../../../html/images/magic_examples/color_shift.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Color Sep.</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Color Sep.</h1>
<h2 align="center">Group: Color Filters</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This tool separates one color out of your entire picture, shifting colors away from each other (similar to '3D Glasses', but you may choose the any color to separate, and may move in any direction).</p>
<p align=center><img src="../../../html/images/magic_examples/colorsep.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<p>See also: <a href="3dglasses.html">3D Glasses</a> &amp; <a href="doublevision.html">Double Vision</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Confetti</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Confetti</h1>
<h2 align="center">Group: Painting</h2>
<h3 align="center">Author:
Adam Rakowski &lt;<a href="mailto:foo-script@o2.pl">foo-script@o2.pl</a>&gt;</h3>
<p>Throw confetti around your picture!</p>
<p align=center><img src="../../../html/images/magic_examples/confetti.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<p>This tool offers multiple size settings.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Darken</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Darken</h1>
<h2 align="center">Group: Color Filters</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This darkens the colors wherever you drag the mouse. (Do it to the same spot many times, and it will eventually become black.)</p>
<p align=center><img src="../../../html/images/magic_examples/darken.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<p>See also: <a href="lighten.html">Lighten</a>, <a href="tint.html">Tint</a>, <a href="saturate.html">Saturate</a>, &amp; <a href="desaturate.html">Desaturate</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Desaturate</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Desaturate</h1>
<h2 align="center">Group: Color Filters</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This desaturates the colors wherever you drag the mouse. (Do it to the same spot many times, and it will eventually become greyscale.)</p>
<p align=center><img src="../../../html/images/magic_examples/desaturate.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<p>See also: <a href="saturate.html">Saturate</a>, <a href="darken.html">Darken</a>, <a href="lighten.html">Lighten</a>, <a href="tint.html">Tint</a>, <a href="remove_color.html">Remove Color</a>, &amp; <a href="keep_color.html">Keep Color</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Distortion</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Distortion</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This slightly distorts the picture wherever you move the mouse.</p>
<p align=center><img src="../../../html/images/magic_examples/distortion.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Double Vision</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Double Vision</h1>
<h2 align="center">Group: Color Filters</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This blends the image with itself, to simulate double vision.</p>
<p align=center><img src="../../../html/images/magic_examples/doublevision.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<p>See also: <a href="3dglasses.html">3D Glasses</a> &amp; <a href="doublevision.html">Double Vision</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Drip</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Drip</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This makes the paint "drip" wherever you move the mouse.</p>
<p align=center><img src="../../../html/images/magic_examples/drip.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Edges</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Edges</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Author:
Andrew Corcoran &lt;<a href="mailto:akanewbie@gmail.com">akanewbie@gmail.com</a>&gt;</h3>
<p>Trace the edges in your picture, over a white background.</p>
<p align=center><img src="../../../html/images/magic_examples/edges.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<p>See also: <a href="emboss.html">Emboss</a> &amp; <a href="silhouette.html">Silhouette</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Emboss</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Emboss</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This makes parts of your picture look "embossed." Wherever there are sharp edges in your picture, the picture will look raised like it was stamped in metal.</p>
<p align=center><img src="../../../html/images/magic_examples/emboss.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<p>See also: <a href="edges.html">Edges</a> &amp; <a href="silhouette.html">Silhouette</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Fisheye</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Fisheye</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Author:
Adam Rakowski &lt;<a href="mailto:foo-script@o2.pl">foo-script@o2.pl</a>&gt;</h3>
<p>Warp parts of your picture like it's being seen through a fisheye lens.</p>
<p align=center><img src="../../../html/images/magic_examples/fisheye.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<p>This tool offers multiple size settings.</p>
<p>See also: <a href="ripples.html">Ripples</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Flip</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Flip</h1>
<h2 align="center">Group: Picture Warps</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>Similar to "Mirror." Click and the entire image will be turned upside-down.</p>
<p align=center><img src="../../../html/images/magic_examples/flip.png"></p>
<p>This tool is operated with a single click.</p>
<p>See also: <a href="mirror.html">Mirror</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Flower</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Flower</h1>
<h2 align="center">Group: Artistic</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This tool draws small flowers, with leafy bases and stalks. Click to set the base, then drag the mouse upwards to draw the stalk, and finally release the mouse button to finish the flower. It will be drawn in the currently-selected color. The shape and length of the stalk depends on how you move the mouse while you drag.</p>
<p align=center><img src="../../../html/images/magic_examples/flower.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<p>This tool offers multiple size settings.</p>
<p>See also: <a href="grass.html">Grass</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Foam</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Foam</h1>
<h2 align="center">Group: Painting</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>Click and drag the mouse to draw foamy bubbles. The more you drag the mouse in a particular spot, the more likely small bubbles will combine to form bigger bubbles.</p>
<p align=center><img src="../../../html/images/magic_examples/foam.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Fold</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Fold</h1>
<h2 align="center">Group: Picture Warps</h2>
<h3 align="center">Authors:
Adam Rakowski &lt;<a href="mailto:foo-script@o2.pl">foo-script@o2.pl</a>&gt;<br>
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;<br>
Pere Pujal i Carabantes &lt;<a href="mailto:pere@fornol.no-ip.org">pere@fornol.no-ip.org</a>&gt;<br>
</h3>
<p>Click a corner of your picture and drag towards the center to fold it up like a piece of paper.</p>
<p align=center><img src="../../../html/images/magic_examples/fold.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Fretwork</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Fretwork</h1>
<h2 align="center">Group: Painting</h2>
<h3 align="center">Author:
Pere Pujal i Carabantes &lt;<a href="mailto:pere@fornol.no-ip.org">pere@fornol.no-ip.org</a>&gt;</h3>
<p>Draw an interlaced decorative design that looks like wooden fretwork.</p>
<p align=center><img src="../../../html/images/magic_examples/fretwork.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Fur</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Fur</h1>
<h2 align="center">Group: Painting</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>Add fur to your drawing.</p>
<p align=center><img src="../../../html/images/magic_examples/fur.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Glass Tile</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Glass Tile</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>Click and drag over your picture to make it look like it's being seen through glass tiles.</p>
<p align=center><img src="../../../html/images/magic_examples/glass_tile.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Googly Eyes</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Googly Eyes</h1>
<h2 align="center">Group: Artistic</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>Draws a googly eye where you click. Drag to position the pupil.</p>
<p align=center><img src="../../../html/images/magic_examples/googlyeyes.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<p>This tool offers multiple size settings.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Grass</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Grass</h1>
<h2 align="center">Group: Painting</h2>
<h3 align="center">Author:
Albert Cahalan &lt;<a href="mailto:albert@users.sf.net">albert@users.sf.net</a>&gt;</h3>
<p>This paints grass on the image. The higher up the canvas, the smaller the grass is drawn, giving an illusion of perspective. The grass can be tinted various greenish hues by selecting different colors in the color palette.</p>
<p align=center><img src="../../../html/images/magic_examples/grass.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<p>See also: <a href="flower.html">Flower</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Halftone</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Halftone</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>This makes parts of your picture look like newsprint. Different sizes of cyan, magenta, yellow, and black "ink" will appear in place of your picture.</p>
<p align=center><img src="../../../html/images/magic_examples/halftone.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Hexagon Mosaic</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Hexagon Mosaic</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Author:
Pere Pujal i Carabantes &lt;<a href="mailto:pere@fornol.no-ip.org">pere@fornol.no-ip.org</a>&gt;</h3>
<p>Converts parts of your picture into a mosaic of hexagon cells.</p>
<p align=center><img src="../../../html/images/magic_examples/hexagon_mosaic.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>See also: <a href="irregular_mosaic.html">Irregular Mosaic</a>, <a href="square_mosaic.html">Square Mosaic</a>, &amp; <a href="mosaic.html">Mosaic</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,128 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: List of Magic Tools</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: List of Magic Tools</h1>
<h2>Distorts</h2>
<ul>
<li><a href="blocks.html">Blocks</a></li>
<li><a href="blur.html">Blur</a></li>
<li><a href="chalk.html">Chalk</a></li>
<li><a href="circles.html">Circles</a></li>
<li><a href="clone.html">Clone</a></li>
<li><a href="distortion.html">Distortion</a></li>
<li><a href="drip.html">Drip</a></li>
<li><a href="edges.html">Edges</a></li>
<li><a href="emboss.html">Emboss</a></li>
<li><a href="fisheye.html">Fisheye</a></li>
<li><a href="glass_tile.html">Glass Tile</a></li>
<li><a href="halftone.html">Halftone</a></li>
<li><a href="hexagon_mosaic.html">Hexagon Mosaic</a></li>
<li><a href="irregular_mosaic.html">Irregular Mosaic</a></li>
<li><a href="mosaic.html">Mosaic</a></li>
<li><a href="noise.html">Noise</a></li>
<li><a href="puzzle.html">Puzzle</a></li>
<li><a href="rays.html">Rays</a></li>
<li><a href="ripples.html">Ripples</a></li>
<li><a href="sharpen.html">Sharpen</a></li>
<li><a href="silhouette.html">Silhouette</a></li>
<li><a href="smudge.html">Smudge</a></li>
<li><a href="square_mosaic.html">Square Mosaic</a></li>
<li><a href="tv.html">TV</a></li>
<li><a href="tv_bright.html">TV (Bright)</a></li>
</ul>
<h2>Color Filters</h2>
<ul>
<li><a href="3dglasses.html">3D Glasses</a></li>
<li><a href="bloom.html">Bloom</a></li>
<li><a href="cartoon.html">Cartoon</a></li>
<li><a href="color_and_white.html">Color and White</a></li>
<li><a href="colorsep.html">Color Sep.</a></li>
<li><a href="color_shift.html">Color Shift</a></li>
<li><a href="darken.html">Darken</a></li>
<li><a href="desaturate.html">Desaturate</a></li>
<li><a href="doublevision.html">Double Vision</a></li>
<li><a href="keep_color.html">Keep Color</a></li>
<li><a href="lighten.html">Lighten</a></li>
<li><a href="negative.html">Negative</a></li>
<li><a href="opposite.html">Opposite</a></li>
<li><a href="remove_color.html">Remove Color</a></li>
<li><a href="saturate.html">Saturate</a></li>
<li><a href="tint.html">Tint</a></li>
<li><a href="xor_colors.html">Xor Colors</a></li>
</ul>
<h2>Picture Warps</h2>
<ul>
<li><a href="flip.html">Flip</a></li>
<li><a href="fold.html">Fold</a></li>
<li><a href="kaleidoscope_lens.html">Kaleido-4, Kaleido-6, and Kaleido-8</a></li>
<li><a href="mirror.html">Mirror</a></li>
<li><a href="panels.html">Panels</a></li>
<li><a href="perspective.html">Perspective</a></li>
<li><a href="reflection.html">Reflection</a></li>
<li><a href="rush.html">Rush</a></li>
<li><a href="shift.html">Shift</a></li>
<li><a href="stretch.html">Stretch</a></li>
<li><a href="tilezoom.html">Tile Zoom</a></li>
<li><a href="wavelets.html">Wavelets</a></li>
<li><a href="waves.html">Waves</a></li>
<li><a href="zoom.html">Zoom</a></li>
</ul>
<h2>Painting</h2>
<ul>
<li><a href="bricks.html">Bricks</a></li>
<li><a href="calligraphy.html">Calligraphy</a></li>
<li><a href="confetti.html">Confetti</a></li>
<li><a href="foam.html">Foam</a></li>
<li><a href="fretwork.html">Fretwork</a></li>
<li><a href="fur.html">Fur</a></li>
<li><a href="grass.html">Grass</a></li>
<li><a href="light.html">Light</a></li>
<li><a href="loops.html">Loops</a></li>
<li><a href="maze.html">Maze</a></li>
<li><a href="metal_paint.html">Metal Paint</a></li>
<li><a href="pixels.html">Pixels</a></li>
<li><a href="rails.html">Rails</a></li>
<li><a href="rain.html">Rain</a></li>
<li><a href="rainbow.html">Rainbow</a></li>
<li><a href="rainbow_cycle.html">Rainbow Cycle</a></li>
<li><a href="ribbon.html">Ribbon</a></li>
<li><a href="smooth.html">Smooth</a></li>
<li><a href="smooth_rainbow.html">Smooth Rainbow</a></li>
<li><a href="squiggles.html">Squiggles</a></li>
<li><a href="toothpaste.html">Toothpaste</a></li>
<li><a href="wet_paint.html">Wet Paint</a></li>
</ul>
<h2>Pattern Painting</h2>
<ul>
<li><a href="kaleidoscope.html">Kaleidoscope</a></li>
<li><a href="pattern.html">Pattern</a></li>
<li><a href="picasso.html">Picasso</a></li>
<li><a href="rosette.html">Rosette</a></li>
<li><a href="symmetry_left_right.html">Symmetry Left/Right</a></li>
<li><a href="symmetry_up_down.html">Symmetry Up/Down</a></li>
<li><a href="tiles.html">Tiles</a></li>
</ul>
<h2>Picture Decorations</h2>
<ul>
<li><a href="blinds.html">Blind</a></li>
<li><a href="checkerboard.html">Checkerboard</a></li>
<li><a href="snow_ball.html">Snow Ball</a></li>
<li><a href="snow_flake.html">Snow Flake</a></li>
</ul>
<h2>Artistic</h2>
<ul>
<li><a href="flower.html">Flower</a></li>
<li><a href="googlyeyes.html">Googly Eyes</a></li>
<li><a href="lightning.html">Lightning</a></li>
<li><a href="real_rainbow.html">Real Rainbow</a></li>
<li><a href="roygbiv_rainbow.html">ROYGBIV Rainbow</a></li>
<li><a href="string_corner.html">String Corner</a></li>
<li><a href="string_edges.html">String Edges</a></li>
<li><a href="string_v.html">String V</a></li>
<li><a href="tornado.html">Tornado</a></li>
</ul>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: Irregular Mosaic</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
<h1 align="center">Tux Paint "Magic" Tool: Irregular Mosaic</h1>
<h2 align="center">Group: Distorts</h2>
<h3 align="center">Author:
Pere Pujal i Carabantes &lt;<a href="mailto:pere@fornol.no-ip.org">pere@fornol.no-ip.org</a>&gt;</h3>
<p>Converts parts of your picture into a mosaic of irregularly-shaped cells.</p>
<p align=center><img src="../../../html/images/magic_examples/irregular_mosaic.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>See also: <a href="hexagon_mosaic.html">Hexagon Mosaic</a>, <a href="square_mosaic.html">Square Mosaic</a>, &amp; <a href="mosaic.html">Mosaic</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.31</p>
</body></html>

Some files were not shown because too many files have changed in this diff Show more