Sync docs after Swedish update (needs work)

Many strings ended up being fuzzy; will talk with Daniel
This commit is contained in:
Bill Kendrick 2025-04-19 12:32:19 -07:00
parent 34937ef37a
commit 136d77ac27
308 changed files with 29528 additions and 0 deletions

View file

@ -93,6 +93,9 @@ https://tuxpaint.org/
* Swedish translation * Swedish translation
Daniel Nylander <po@danielnylander.se> Daniel Nylander <po@danielnylander.se>
* Swedish documentation
Daniel Nylander <po@danielnylander.se>
* Ports & Building: * Ports & Building:
----------------- -----------------
+ Don't use Linux-specific invocation of "install"; use "mkdir" & "cp" + Don't use Linux-specific invocation of "install"; use "mkdir" & "cp"

View file

@ -0,0 +1,286 @@
Tux Paint
version 0.9.35
Advanced Stamps 'How-To'
Copyright © 2006-2024 by Albert Cahalan med flera; see AUTHORS.txt.
https://tuxpaint.org/
juni 2, 2024
+----------------------------------------+
| Table of Contents |
|----------------------------------------|
| * 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 ###
## Licens ##
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 [Kontroll]-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ön (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...
## Ett säkrare sätt att spara ##
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,101 @@
Tux Paint
version 0.9.35
Environment Variables Documentation
Copyright © 2021-2024 by olika bidragsgivare; see AUTHORS.txt.
https://tuxpaint.org/
maj 14, 2024
-------------------------------------------------------------------------------
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:
o The location of Tux Paint's configuration file
o The basis of where Tux Paint saves and loads users' drawings
o 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.
Overridden 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

695
docs/sv_SE.UTF-8/FAQ.txt Normal file
View file

@ -0,0 +1,695 @@
Tux Paint
version 0.9.35
Frequently Asked Questions
Copyright © 2002-2025 by olika bidragsgivare; see AUTHORS.txt.
https://tuxpaint.org/
januari 23, 2025
+------------------------------+
| Table of Contents |
|------------------------------|
| * Drawing-related |
| * Interface Problems |
| * Printing |
| * Saving |
| * Ljudproblem |
| * Fullscreen Mode Problems |
| * Other Problems |
| * Hjälp / Kontakt |
+------------------------------+
-------------------------------------------------------------------------------
### 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:
Tux Paint ships with a very 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 text är skriven med versaler! ←
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 ←
o 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".
o 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.
o If you're using the "--locale" command-line option
If this doesn't work, please e-mail us regarding your trouble.
o If you're trying to use your Operating System's locale
If this doesn't work, please e-mail us regarding your trouble.
o 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".)
→ 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 Windows 8, Windows 10, Windows 11 ←
In the user's "AppData" folder:
e.g., "C:\Users\användarnamn\AppData\Roaming\TuxPaint\saved\"
(Note: The "AppData" folder is hidden (not visible) by default. You can
enter the path manually in the location bar of your file browser (e.g.,
File Explorer).)
You can use the %APPDATA% variable as a shorthand, i.e.
"%APPDATA%\Tuxpaint\Saved".
You can use the [⊞ (Windows)] + [R] key combination to bring up the Run
command window, and then type the path and hit [Enter / Return].
→ macOS ←
In the user's "Application Support" folder:
e.g.,
"/Användare/användarnamn/Bibliotek/Application Support/TuxPaint/saved/"
→ Linux / Unix ←
In the user's "home directory" folder:
e.g., "/home/användarnamn/.tuxpaint/saved/"
(Note: The ".tuxpaint" folder is hidden (not visible) by default. You
can enter the path manually in the location bar of your file browser
(e.g., GNOME-filer eller Dolphin).)
You can use the $HOME variable as a shorthand, i.e.
"$HOME/.tuxpaint/saved".
→ Haiku ←
In the user's "settings" folder:
e.g., "/boot/home/config/settings/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.
-------------------------------------------------------------------------------
### Ljudproblem ###
→ There's no sound! ←
o 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").
o 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:
"Aktivera ljudeffekter", which will override the configuration file's
setting, and allow unlimited printing. (You won't have to wait between
prints.)
o 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.
o 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:
o Press [Alt] + [S] while in Tux Paint to temporarily disable sounds.
(Press that key sequence again to re-enable sounds.)
o 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 "Aktivera ljudeffekter"
(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:
o Run "tuxpaint --nostereo" from the command line or shortcut or desktop
icon.
o Edit Tux Paint's configuration file (see "Options Documentation" for
details) and add a line containing "nostereo=yes".
o Or use Tux Paint Config. and make sure "Aktivera stereoeffekter" (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 [Kontroll] + [Alt] + [Keypad Plus (+)] and
[Kontroll] + [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=yes" or "--fullscreen=
native" is listed as a command-line argument.
If "--fullscreen=yes" or "--fullscreen=native" options aren't being sent on
the command line, check Tux Paint's configuration file for a line reading:
"fullscreen=yes" or "fullscreen=native".
Either remove that line, or simply run Tux Paint with the command-line
argument: "--windowed" or "--fullscreen=no", which will override the
configuration file's setting.
Or use Tux Paint Config. and make sure "Helskärm" (under "Video & Sound")
is not checked.
→ How do I access other applications when Tux Paint is running in Full Screen?
o Windows and Linux users, try the [Alt] + [Tab] key combination to
switch between applications.
o macOS users, switch to other applications using [Kontroll] + [Left
Arrow], then back to Tux Paint using [Kontroll] + [Pil höger].
-------------------------------------------------------------------------------
### 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 (e.g., "/home/användarnamn/.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.
→ Tux Paint launches very slowly ←
The first time Tux Paint is launched (for a particular user), it may take a
minute or more to respond. The font system used by Tux Paint (FontConfig,
via Pango) is creating a 'cache' of information about the fonts on your
system. Subsequent launches of Tux Paint should be fast.
While the font cache is generated behind the scenes, Tux Paint should
remain interactive (showing an animated 'please wait' animation) as this
process runs.
If this delay persists or reoccurs, it could be that the cache is being
deleted — for example, in an environment (such as a school computer lab)
where a system is returned into a default state when a user finishes using
the program. Some versions of Tux Paint ship with a file, "fonts.conf" (
documented at freedesktop.org), which can be modified to have FontConfig
store the file elsewhere, e.g.:
<cachedir>C:\Documents and Settings\All Users\Application Data\
fontconfig\cache</cachedir>
→ 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] +
[Kontroll] + [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.
o Windows
Under Windows, it first examines the system-wide configuration file,
located here:
C:\Program Files\TuxPaint\tuxpaint.cfg
It then examines the user's personal configuration file:
C:\Users\användarnamn\AppData\Roaming\TuxPaint\tuxpaint.cfg
Finally, any options sent as command-line arguments are used.
o macOS
Under macOS, it first examines the system-wide configuration file,
located here:
/Bibliotek/Application Support/TuxPaint/tuxpaint.cfg
It then examines the user's personal configuration file:
/Användare/användarnamn/Bibliotek/Application Support/TuxPaint/tuxpaint.cfg
Finally, any options sent as command-line arguments are used.
o Linux / Unix
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:
/home/användarnamn/.tuxpaintrc
Finally, any options sent as command-line arguments are used.
o Haiku
Under Haiku, Tux Paint first examines the configuration file:
/boot/home/config/settings/TuxPaint/tuxpaint.conf
Finally, any options sent as command-line arguments are used.
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
"/home/användarnamn/.tuxpaintrc" file:
sound=yes
...or by using this command-line argument:
--sound
On platforms where Tux Paint offers a system-wide configuration file, the
settings in that file may be skipped (so only the user configuration file
and other command-line arguments will be used) by including the following
command-line argument:
--nosysconfig
→ I need to deploy Tux Paint on many Windows systems at once ←
The installers for both Tux Paint (plus Tux Paint Config.)
(tuxpaint-X.Y.Z-windows-ARCH-installer.exe) and Tux Paint Stamps
(tuxpaint-stamps-YYYY.MM.DD-windows-installer.exe) accept the command-line
options "/SILENT" ("silent") or "/VERYSILENT" ("very silent") which can be
used to install and uninstall their component without use of an interactive
set-up window. This can be useful for automating installation on a
collection of PCs, for example using Microsoft Intune cloud-based endpoint
management solution (see https://learn.microsoft.com/mem/intune/).
-------------------------------------------------------------------------------
### Hjälp / Kontakt ###
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,914 @@
Tux Paint
version 0.9.35
Installation Documentation
Copyright © 2002-2025 by olika bidragsgivare; see AUTHORS.txt.
https://tuxpaint.org/
januari 23, 2025
+---------------------------------------------------+
| Table of Contents |
|---------------------------------------------------|
| * Requirements |
| + Simple DirectMedia Layer library (libSDL) |
| + Other Libraries |
| * Compiling and Installation |
| + Windows |
| + Linux/Unix |
| + macOS |
| + Android |
| + Haiku |
| * Felsökning |
| * Avinstallera Rita med Tux |
| + 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 (valfritt)
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) ←
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 ←
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 (nyare bibliotek) ←
@ 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 (valfritt) 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 ###
juli 10, 2022 Shin-ichi TOYAMA <dolphin6k@wmail.plala.or.jp>
## Compiling Set-Up ##
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. Använda källkodsträdet för utveckling:
+ 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. Använda källkodsträdet för utveckling:
+ 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!
💡 The installers for both Tux Paint (plus Tux Paint Config.)
(tuxpaint-X.Y.Z-windows-ARCH-installer.exe) and Tux Paint Stamps
(tuxpaint-stamps-YYYY.MM.DD-windows-installer.exe) accept the command-line
options "/SILENT" ("silent") or "/VERYSILENT" ("very silent") which can be used
to install and uninstall their component without use of an interactive set-up
window. This can be useful for automating installation on a collection of PCs,
for example using Microsoft Intune cloud-based endpoint management solution
(see https://learn.microsoft.com/mem/intune/).
## 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 [Kontroll] + [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\användarnamn\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 ###
## Kompilera: ##
💡 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 och 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 ###
juni 5, 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
$ export MACOSX_DEPLOYMENT_TARGET=11.0 # on Apple Silicon CPU; use "10.10"
on Intel CPU
$ ./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.
## Hur man bygger ##
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 are required when building a Unviersal Binary. See "Building a
Universal Binary" below.
## Kända problem ##
* 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 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 DMG file can be built afterwards:
$ macos/build-universal.sh
$ make TuxPaint.dmg
-----------------------------------------------------------------------
### Android ###
mars 29, 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 ###
maj 7, 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/
Felsökning
⚙ 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.
Avinstallera Rita med Tux
### Windows ###
## Använda avinstallationsprogrammet ##
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.
## Använda kontrollpanelen ##
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
"/Bibliotek/Application Support/TuxPaint/" (all users) and
"/Användare/användarnamn/Bibliotek/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

2222
docs/sv_SE.UTF-8/OPTIONS.txt Normal file

File diff suppressed because it is too large Load diff

90
docs/sv_SE.UTF-8/PNG.txt Normal file
View file

@ -0,0 +1,90 @@
Tux Paint
version 0.9.35
PNG Documentation
Copyright © 2007-2022 by olika bidragsgivare; see AUTHORS.txt.
https://tuxpaint.org/
juni 4, 2022
Om PNG
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.
### Hur man skapar PNG-filer ###
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 ←
o CorelDRAW (Corel) — http://www.corel.com/
o Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
o Paint Shop Pro (Corel) — https://www.paintshoppro.com/
o Photoshop (Adobe) — http://www.adobe.com/products/photoshop.html
o PIXresizer (Bluefive software) — http://bluefive.pair.com/
pixresizer.htm
→ Macintosh Users ←
o CorelDRAW (Corel) — http://www.corel.com/
o GraphicConverter (Lemke Software) — https://www.lemkesoft.de/
mac-fotobearbeitung-mac-diashow-mac-grafikprogramm-mac-bildbetrachter/
o Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
o Photoshop (Adobe) — http://www.adobe.com/products/photoshop.html

1489
docs/sv_SE.UTF-8/README.txt Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,57 @@
Tux Paint
version 0.9.35
Signals Documentation
Copyright © 2019-2022 by olika bidragsgivare; see AUTHORS.txt.
https://tuxpaint.org/
juni 4, 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, [Kontroll] + [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.
Exempel: 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.
Exempel: 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/sv_SE.UTF-8/SVG.txt Normal file
View file

@ -0,0 +1,36 @@
Tux Paint
version 0.9.35
SVG Documentation
Copyright © 2007-2022 by olika bidragsgivare; see AUTHORS.txt.
https://tuxpaint.org/
juni 4, 2022
Om SVG:er
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/
Hur man gör SVG:er
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 ←
o Inkscape — http://www.inkscape.org/
o Karbon — https://calligra.org/karbon/
→ Proprietär ←
o CorelDRAW (Corel) — https://www.coreldraw.com/en/
o Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
o Boxy SVG — https://boxy-svg.com/
o Sketch (Sketch B.V.) — https://boxy-svg.com/

View file

@ -0,0 +1,346 @@
<!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">
<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">
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
height="210"
alt="Tux Paint"><br>
version 0.9.35<br/>
Advanced Stamps 'How-To' </h1>
<p>
Copyright &copy; 2006-2024 by Albert Cahalan med flera; see <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a>
</p>
<p>
juni 2, 2024 </p>
</center>
<table border="2"
cellspacing="0"
cellpadding="2"
summary="Table of Contents"
align="center"
style="page-break-inside: avoid;">
<tr>
<th>
Table of Contents </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>
<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>
Licens </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>[Kontroll]</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ön (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>
Ett säkrare sätt att spara </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,204 @@
<!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">
<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">
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
height="210"
alt="Tux Paint"><br>
version 0.9.35<br/>
Environment Variables Documentation </h1>
<p>
Copyright &copy; 2021-2024 by olika bidragsgivare; see <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a>
</p>
<p>
maj 14, 2024 </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. Overridden 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,924 @@
<!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">
<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">
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
height="210"
alt="Tux Paint"><br>
version 0.9.35<br/>
Frequently Asked Questions </h1>
<p>
Copyright &copy; 2002-2025 by olika bidragsgivare; see <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a>
</p>
<p>
januari 23, 2025 </p>
</center>
<table border="2"
cellspacing="0"
cellpadding="2"
summary="Table of Contents"
align="center"
style="page-break-inside: avoid;">
<tr>
<th>
Table of Contents </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">Ljudproblem</a></li> <li><a href="#fullscreen">Fullscreen Mode Problems</a></li> <li><a href="#other">Other Problems</a></li> <li><a href="#contact">Hjälp / Kontakt</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: Tux Paint ships with a very 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 text är skriven med versaler! </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>
</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>
<cite>Windows Windows 8, Windows 10, Windows 11</cite>
</dt>
<dd>
In the user's "AppData" folder:<br> e.g., <nobr>"<code style='background: #EEE;'>C:\Users\<i>användarnamn</i>\AppData\Roaming\TuxPaint\saved\</code>"</nobr> <br/>
<br/>
(Note: The "<nobr><code style='background: #EEE;'>AppData</code></nobr>" folder is hidden (not visible) by default. You can enter the path manually in the location bar of your file browser (e.g., <cite>File Explorer</cite>).) <br/>
<br/>
You can use the <nobr><code style='background: #EEE;'>%APPDATA%</code></nobr> variable as a shorthand, i.e. <nobr>"<code style='background: #EEE;'>%APPDATA%\Tuxpaint\Saved</code>"</nobr>. <br/>
<br/>
You can use the <b><code>[&#8862; (Windows)]</code></b> + <b><code>[R]</code></b> key combination to bring up the <cite>Run</cite> command window, and then type the path and hit <b><code>[Enter / Return]</code></b>. </dd>
<dt>
<cite>macOS</cite>
</dt>
<dd>
In the user's "Application Support" folder:<br> e.g., <nobr>"<code style='background: #EEE;'>/Användare/<i>användarnamn</i>/Bibliotek/Application Support/TuxPaint/saved/</code>"</nobr> </dd>
<dt>
<cite>Linux / Unix</cite>
</dt>
<dd>
In the user's "home directory" folder:<br> e.g., <nobr>"<code style='background: #EEE;'>/home/<i>användarnamn</i>/.tuxpaint/saved/</code>"</nobr> <br/>
<br/>
(Note: The ".tuxpaint" folder is hidden (not visible) by default. You can enter the path manually in the location bar of your file browser (e.g., <cite>GNOME-filer</cite> eller <cite>Dolphin</cite>).) <br/>
<br/>
You can use the <nobr><code style='background: #EEE;'>$HOME</code></nobr> variable as a shorthand, i.e. <nobr>"<code style='background: #EEE;'>$HOME/.tuxpaint/saved</code>"</nobr>. </dd>
<dt>
<cite>Haiku</cite>
</dt>
<dd>
In the user's "settings" folder:<br> e.g., <nobr>"<code style='background: #EEE;'>/boot/home/config/settings/TuxPaint/saved/</code>"</nobr> </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">
Ljudproblem </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: "Aktivera ljudeffekter", 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 "Aktivera ljudeffekter" (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 "Aktivera stereoeffekter" (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>[Kontroll]</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>[Kontroll]</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=yes</code>" or "<code>--fullscreen=native</code>" is listed as a command-line argument. </p>
<p>
If "<code>--fullscreen=yes</code>" or "<code>--fullscreen=native</code>" options aren't being sent on the command line, check Tux Paint's configuration file for a line reading: "<code>fullscreen=yes</code>" or "<code>fullscreen=native</code>". </p>
<p>
Either remove that line, or simply run Tux Paint with the command-line argument: "<code>--windowed</code>" or "<code>--fullscreen=no</code>", which will override the configuration file's setting. </p>
<p>
Or use Tux Paint Config. and make sure "Helskärm" (under "Video &amp; Sound") is not checked. </p>
</dd>
<dt>
How do I access other applications when Tux Paint is running in Full Screen? </dt>
<dd>
<ul>
<li>
Windows and Linux users, try the <b><code>[Alt]</code></b> + <b><code>[Tab]</code></b> key combination to switch between applications. </li>
<li>
macOS users, switch to other applications using <b><code>[Kontroll]</code></b> + <b><code>[Left Arrow]</code></b>, then back to Tux Paint using <b><code>[Kontroll]</code></b> + <b><code>[Pil höger]</code></b>. </li>
</ul>
</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 <nobr>"<code style='background: #EEE;'>C:\Program Files\TuxPaint\</code>"</nobr>). </p>
<p>
A lockfile (e.g., <nobr>"<code style='background: #EEE;'>/home/<i>användarnamn</i>/.tuxpaint/lockfile.dat</code>"</nobr> on Linux and Unix, <nobr>"<code style='background: #EEE;'>userdata\lockfile.dat</code>"</nobr> 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>
Tux Paint launches very slowly </dt>
<dd>
<p>
The first time Tux Paint is launched (for a particular user), it may take a minute or more to respond. The font system used by Tux Paint (FontConfig, via Pango) is creating a 'cache' of information about the fonts on your system. Subsequent launches of Tux Paint should be fast. </p>
<p>
While the font cache is generated behind the scenes, Tux Paint should remain interactive (showing an animated 'please wait' animation) as this process runs. </p>
<p>
If this delay persists or reoccurs, it could be that the cache is being deleted &mdash; for example, in an environment (such as a school computer lab) where a system is returned into a default state when a user finishes using the program. Some versions of Tux Paint ship with a file, <nobr>"<code style='background: #EEE;'>fonts.conf</code>"</nobr> (<a href="https://fontconfig.pages.freedesktop.org/fontconfig/fontconfig-user.html">documented at freedesktop.org</a>), which can be modified to have FontConfig store the file elsewhere, e.g.: <blockquote>
<code>&lt;cachedir&gt;C:\Documents and Settings\All Users\Application Data\fontconfig\cache&lt;/cachedir&gt;</code>
</blockquote>
</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>[Kontroll]</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>
<cite>Windows</cite>
<p>
Under Windows, it first examines the system-wide configuration file, located here: </p>
<blockquote>
<p>
<nobr><code style='background: #EEE;'>C:\Program Files\TuxPaint\tuxpaint.cfg</code></nobr> </p>
</blockquote>
<p>
It then examines the user's personal configuration file: </p>
<blockquote>
<p>
<nobr><code style='background: #EEE;'>C:\Users\<i>användarnamn</i>\AppData\Roaming\TuxPaint\tuxpaint.cfg</code></nobr> </p>
</blockquote>
<p>
Finally, any options sent as command-line arguments are used. </p>
</li>
<li>
<cite>macOS</cite>
<p>
Under macOS, it first examines the system-wide configuration file, located here: </p>
<blockquote>
<p>
<nobr><code style='background: #EEE;'>/Bibliotek/Application Support/TuxPaint/tuxpaint.cfg</code></nobr> </p>
</blockquote>
<p>
It then examines the user's personal configuration file: </p>
<blockquote>
<p>
<nobr><code style='background: #EEE;'>/Användare/<i>användarnamn</i>/Bibliotek/Application Support/TuxPaint/tuxpaint.cfg</code></nobr> </p>
</blockquote>
<p>
Finally, any options sent as command-line arguments are used. </p>
</li>
<li>
<cite>Linux / Unix</cite>
<p>
Under Unix and Linux, it first examines the system-wide configuration file, located here: </p>
<blockquote>
<p>
<nobr><code style='background: #EEE;'>/etc/tuxpaint/tuxpaint.conf</code></nobr> </p>
</blockquote>
<p>
It then examines the user's personal configuration file: </p>
<blockquote>
<p>
<nobr><code style='background: #EEE;'>/home/<i>användarnamn</i>/.tuxpaintrc</code></nobr> </p>
</blockquote>
<p>
Finally, any options sent as command-line arguments are used. </p>
</li>
<li>
<cite>Haiku</cite>
<p>
Under Haiku, Tux Paint first examines the configuration file: </p>
<blockquote>
<p>
<nobr><code style='background: #EEE;'>/boot/home/config/settings/TuxPaint/tuxpaint.conf</code></nobr> </p>
</blockquote>
<p>
Finally, any options sent as command-line arguments are used. </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 <nobr>"<code style='background: #EEE;'>/etc/tuxpaint/tuxpaint.conf</code>"</nobr> 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 <nobr>"<code style='background: #EEE;'>/home/<i>användarnamn</i>/.tuxpaintrc</code>"</nobr> 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>
On platforms where Tux Paint offers a system-wide configuration file, the settings in that file may be skipped (so only the user configuration file and other command-line arguments will be used) by including the following command-line argument: </p>
<blockquote>
<p>
<code>--nosysconfig</code>
</p>
</blockquote>
</dd>
<dt>
I need to deploy Tux Paint on many Windows systems at once </dt>
<dd>
The installers for both Tux Paint (plus Tux Paint Config.) (<code>tuxpaint-X.Y.Z-windows-ARCH-installer.exe</code>) and Tux Paint Stamps (<code>tuxpaint-stamps-YYYY.MM.DD-windows-installer.exe</code>) accept the command-line options "<code>/SILENT</code>" ("silent") or "<code>/VERYSILENT</code>" ("very silent") which can be used to install and uninstall their component without use of an interactive set-up window. This can be useful for automating installation on a collection of PCs, for example using Microsoft <cite>Intune</cite> cloud-based endpoint management solution (see <a href="https://learn.microsoft.com/mem/intune/">https://learn.microsoft.com/mem/intune/</a>). </dd>
</dl>
<hr size="2"
noshade>
<h2>
<a name="contact" id="contact">
Hjälp / Kontakt </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>
version 0.9.35<br/>
PNG Documentation </h1>
<p>
Copyright &copy; 2007-2022 by olika bidragsgivare; see <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a>
</p>
<p>
juni 4, 2022 </p>
</center>
</header>
</section>
<section class="indent">
<header>
<h1>Om PNG</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>Hur man skapar PNG-filer</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>
version 0.9.35<br/>
Signals Documentation </h1>
<p>
Copyright &copy; 2019-2022 by olika bidragsgivare; see <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a>
</p>
<p>
juni 4, 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>[Kontroll]</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>
Exempel: <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>
Exempel: <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>
version 0.9.35<br/>
SVG Documentation </h1>
<p>
Copyright &copy; 2007-2022 by olika bidragsgivare; see <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a>
</p>
<p>
juni 4, 2022 </p>
</center>
</header>
</section>
<section class="indent">
<header>
<h1>Om SVG:er</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>Hur man gör SVG:er</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>Proprietär</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,700 @@
/* tp_magic_example.c
An example of a "Magic" tool plugin for Tux Paint
maj 10, 2024
*/
/* Inclusion of header files */
/* ---------------------------------------------------------------------- */
#include <stdio.h>
#include <string.h> // För "strdup()"
#include <libintl.h> // För "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_size;
/* 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 * ogonblicksbild, 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 * ogonblicksbild, 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);
}
/*
Initialization
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, Uint8 disabled_features,
Uint8 complexity_level)
{
int i;
char filnamn[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(filnamn, sizeof(filnamn), "%ssounds/magic/%s",
api->data_directory, sound_filenames[i]);
printf("Trying to load %s sound file\n", filnamn);
/* Try to load the file! */
sound_effects[i] = Mix_LoadWAV(filnamn);
}
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 filnamn[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(filnamn, sizeof(filnamn), "%simages/magic/%s",
api->data_directory, icon_filenames[which]);
printf("Trying to load %s icon\n", filnamn);
/* Try to load the image, and return the results to Tux Paint: */
return (IMG_Load(filnamn));
}
/*
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]);
}
/*
Return grouping/ordering number
When Tux Paint is starting up and loading plugins, it asks us to provide a
numeric value used for sorting 'Magic' tools within a group. Tools will be
ordered based on this number, and those with the same number will be sorted
alphabetically by their localized name (see 'example_get_name').
*/
int *example_get_order(int which)
{
return 0;
}
/*
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 mode)
{
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 mode)
{
if (which == TOOL_ONE)
return 1;
else
return 4;
}
// Return our default sizing option
Uint8 example_default_size(magic_api *api, int which, int mode)
{
return 1;
}
/*
Stäng av
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 mode,
SDL_Surface *canvas, SDL_Surface *ogonblicksbild, 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, ogonblicksbild, x, y, x, y, update_rect);
}
/* Affect the canvas on drag: */
void
example_drag(magic_api *api, int which,
SDL_Surface *canvas, SDL_Surface *ogonblicksbild,
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(ogonblicksbild);
SDL_LockSurface(canvas);
api->line((void *) api, which, canvas, ogonblicksbild,
old_x, old_y, x, y, 1, example_line_callback);
SDL_UnlockSurface(canvas);
SDL_UnlockSurface(ogonblicksbild);
/*
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 temp = old_x;
old_x = x;
x = temp;
}
if (old_y > y)
{
int temp = old_y;
old_y = y;
y = temp;
}
/*
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_size;
update_rect->y = old_y - example_size;
update_rect->w = (x + example_size) - update_rect->x + 1;
update_rect->h = (y + example_size) - 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, /* Left/right pan */
255 /* Near/far distance (loudness) */ );
}
/* Affect the canvas on release: */
void
example_release(magic_api *api, int which,
SDL_Surface *canvas, SDL_Surface *ogonblicksbild, 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 *ogonblicksbild, 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, int mode,
SDL_Surface *canvas, SDL_Surface *ogonblicksbild,
Uint8 size, 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 *ogonblicksbild, 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_size; yy < example_size; yy++)
{
for (xx = -example_size; xx < example_size; xx++)
{
api->putpixel(canvas, x + xx, y + yy,
api->getpixel(ogonblicksbild,
ogonblicksbild->w - x - xx,
ogonblicksbild->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 mode,
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 mode,
SDL_Surface *canvas)
{
}

View file

@ -0,0 +1,238 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Tux Paint 0.9.35 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.35 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>⌧Stämplar</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>Press [Control]+[V] or click/tap "Paste" to paste clipboard text into your input</li>
<li>
Använda tangentbordet på skärmen: <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>🅰Etikett</h3>
<ul>
<li>(Se 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>🪣Fyll</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>
<li>Eraser - Replaces an area with the background color, or Starter or Template background image</li>
</ul>
</li>
</ul>
<h3>🪄Magisk</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>🖓Ångra</h3>
<ul>
<li>Use to undo the most recent changes (multiple undo available).</li>
<li>Shortcut: [Control]+[Z]</li>
</ul>
<h3>🖒Gör om</h3>
<ul>
<li>Use to redo the most recent undone change (multiple redo available).</li>
<li>Shortcut: [Control]+[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>🗏Ny</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: [Control]+[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>Click/tap "🖻⮫🗏Template" to turn the drawing into a new template.</li>
<li>Shortcut: [Control]+[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: [Control]+[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: [Control]+[P]</li>
</ul>
<h3>🗙Quit</h3>
<ul>
<li>Click/tap to quit Tux Paint.</li>
<li>Shortcut: [Escape]</li>
</ul>
<h2>Färger</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 [Control] 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>[Control]+Click/tap - Quick pipette / color picker 💉 access</li>
<li>[X]+Click/tap - Quick eraser ◪ access</li>
<li>[Control]+[Z] - 🖓Ångra</li>
<li>[Control]+[R] - 🖒Gör om</li>
<li>[Control]+[N] - 🗏Ny</li>
<li>[Control]+[O] - 🕮⮫Öppna</li>
<li>[Control]+[S] - 🕮⮪Spara</li>
<li>[Control]+[P] - 🖶Skriv ut</li>
<li>[Alt]+[S] - Toggle sound effects on/off</li>
<li>[Escape] - ⤺Bakåt eller 🗙Avsluta</li>
</ul>
<p>
<strong>Note:</strong> On macOS, use the [&#8984; (Command)] key in place of the [Control] key.</p>
<p>
<em>Last updated: december 29, 2024</em>
</p>
</body>
</html>

View file

@ -0,0 +1,700 @@
/* tp_magic_example.c
An example of a "Magic" tool plugin for Tux Paint
maj 10, 2024
*/
/* Inclusion of header files */
/* ---------------------------------------------------------------------- */
#include <stdio.h>
#include <string.h> // För "strdup()"
#include <libintl.h> // För "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_size;
/* 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 * ogonblicksbild, 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 * ogonblicksbild, 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);
}
/*
Initialization
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, Uint8 disabled_features,
Uint8 complexity_level)
{
int i;
char filnamn[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(filnamn, sizeof(filnamn), "%ssounds/magic/%s",
api->data_directory, sound_filenames[i]);
printf("Trying to load %s sound file\n", filnamn);
/* Try to load the file! */
sound_effects[i] = Mix_LoadWAV(filnamn);
}
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 filnamn[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(filnamn, sizeof(filnamn), "%simages/magic/%s",
api->data_directory, icon_filenames[which]);
printf("Trying to load %s icon\n", filnamn);
/* Try to load the image, and return the results to Tux Paint: */
return (IMG_Load(filnamn));
}
/*
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]);
}
/*
Return grouping/ordering number
When Tux Paint is starting up and loading plugins, it asks us to provide a
numeric value used for sorting 'Magic' tools within a group. Tools will be
ordered based on this number, and those with the same number will be sorted
alphabetically by their localized name (see 'example_get_name').
*/
int *example_get_order(int which)
{
return 0;
}
/*
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 mode)
{
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 mode)
{
if (which == TOOL_ONE)
return 1;
else
return 4;
}
// Return our default sizing option
Uint8 example_default_size(magic_api *api, int which, int mode)
{
return 1;
}
/*
Stäng av
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 mode,
SDL_Surface *canvas, SDL_Surface *ogonblicksbild, 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, ogonblicksbild, x, y, x, y, update_rect);
}
/* Affect the canvas on drag: */
void
example_drag(magic_api *api, int which,
SDL_Surface *canvas, SDL_Surface *ogonblicksbild,
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(ogonblicksbild);
SDL_LockSurface(canvas);
api->line((void *) api, which, canvas, ogonblicksbild,
old_x, old_y, x, y, 1, example_line_callback);
SDL_UnlockSurface(canvas);
SDL_UnlockSurface(ogonblicksbild);
/*
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 temp = old_x;
old_x = x;
x = temp;
}
if (old_y > y)
{
int temp = old_y;
old_y = y;
y = temp;
}
/*
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_size;
update_rect->y = old_y - example_size;
update_rect->w = (x + example_size) - update_rect->x + 1;
update_rect->h = (y + example_size) - 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, /* Left/right pan */
255 /* Near/far distance (loudness) */ );
}
/* Affect the canvas on release: */
void
example_release(magic_api *api, int which,
SDL_Surface *canvas, SDL_Surface *ogonblicksbild, 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 *ogonblicksbild, 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, int mode,
SDL_Surface *canvas, SDL_Surface *ogonblicksbild,
Uint8 size, 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 *ogonblicksbild, 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_size; yy < example_size; yy++)
{
for (xx = -example_size; xx < example_size; xx++)
{
api->putpixel(canvas, x + xx, y + yy,
api->getpixel(ogonblicksbild,
ogonblicksbild->w - x - xx,
ogonblicksbild->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 mode,
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 mode,
SDL_Surface *canvas)
{
}

View file

@ -0,0 +1,217 @@
Tux Paint 0.9.35 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.
## ⌧Stämplar ##
* 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.
* Press [Control]+[V] or click/tap "Paste" to paste clipboard text into your
input
* Använda tangentbordet på skärmen:
+ "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")
## 🅰Etikett ##
* (Se 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.
## 🪣Fyll ##
* 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
+ Eraser - Replaces an area with the background color, or Starter or
Template background image
## 🪄Magisk ##
* 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.
## 🖓Ångra ##
* Use to undo the most recent changes (multiple undo available).
* Shortcut: [Control]+[Z]
## 🖒Gör om ##
* Use to redo the most recent undone change (multiple redo available).
* Shortcut: [Control]+[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) ###
## 🗏Ny ##
* 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: [Control]+[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.
* Click/tap "🖻⮫🗏Template" to turn the drawing into a new template.
* Shortcut: [Control]+[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: [Control]+[S]
## 🖶Print ##
* Click/tap to print your drawing.
* Hold [Alt] or [Option] while clicking/tapping to bring up printer dialog,
if available.
* Shortcut: [Control]+[P]
## 🗙Quit ##
* Click/tap to quit Tux Paint.
* Shortcut: [Escape]
### Färger ###
* 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 [Control] 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: ###
* [Control]+Click/tap - Quick pipette / color picker 💉 access
* [X]+Click/tap - Quick eraser ◪ access
* [Control]+[Z] - 🖓Ångra
* [Control]+[R] - 🖒Gör om
* [Control]+[N] - 🗏Ny
* [Control]+[O] - 🕮⮫Öppna
* [Control]+[S] - 🕮⮪Spara
* [Control]+[P] - 🖶Skriv ut
* [Alt]+[S] - Toggle sound effects on/off
* [Escape] - ⤺Bakåt eller 🗙Avsluta
Note: On macOS, use the [⌘ (Command)] key in place of the [Control] key.
Last updated: december 29, 2024

View file

@ -0,0 +1,26 @@
Tux Paint "Magic" Tool: 1-Point Draw
### Group: Projections ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Click and drag to draw with 1-point perspective. Lines will only go towards
your vanishing point, or be horizontal or vertical. Use "1-Point Select" to
choose your vanishing point (only available in "advanced" mode).
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
This tool reacts to the "complexity" (expertise level) setting.
See also: 1-Point Select, 2-Point Draw, 2-Point Select, 3-Point Draw, 3-Point
Select, Isometric Line, Dimetric Select, Dimetric Draw, Trimetric Select,
Trimetric Draw, Oblique Select, Oblique Draw, & Perspektiv.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,22 @@
Tux Paint "Magic" Tool: 1-Point Select
### Group: Projections ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Click (and drag) to position the vanishing point that will be used with the
"1-Point Draw" tool.
This tool is operated in a freehand fashion.
This tool is only available with "complexity" (expertise level) set to
'Advanced'.
See also: 1-Point Draw, 2-Point Draw, 2-Point Select, 3-Point Draw, 3-Point
Select, Isometric Line, Dimetric Select, Dimetric Draw, Trimetric Select,
Trimetric Draw, Oblique Select, Oblique Draw, & Perspektiv.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,27 @@
Tux Paint "Magic" Tool: 2-Point Draw
### Group: Projections ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Click and drag to draw with 2-point perspective. Lines will only go towards
your two vanishing points, or aligned with either the "horizon" defined by the
two vanishing points, or a line perpendicular to that "horizon". Use "2-Point
Select" to choose your vanishing points (only available in "advanced" mode).
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
This tool is not available with "complexity" (expertise level) set to 'Novice'.
See also: 1-Point Draw, 1-Point Select, 2-Point Select, 3-Point Draw, 3-Point
Select, Isometric Line, Dimetric Select, Dimetric Draw, Trimetric Select,
Trimetric Draw, Oblique Select, Oblique Draw, & Perspektiv.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,22 @@
Tux Paint "Magic" Tool: 2-Point Select
### Group: Projections ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Click (and drag) to position the two vanishing points that will be used with
the "2-Point Draw" tool.
This tool is operated in a freehand fashion.
This tool is only available with "complexity" (expertise level) set to
'Advanced'.
See also: 1-Point Draw, 1-Point Select, 2-Point Draw, 3-Point Draw, 3-Point
Select, Isometric Line, Dimetric Select, Dimetric Draw, Trimetric Select,
Trimetric Draw, Oblique Select, Oblique Draw, & Perspektiv.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,24 @@
Tux Paint "Magic" Tool: 3D-glasögon
### Group: Color Filters ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
This tool horizontally separates your entire picture's color channels, letting
you create anaglyphic pictures that can be viewed with various kinds of 3D
glasses. Options include: Red/Cyan, Red/Blue, Red/Green, and Magenta/Cyan —
controlled by the 'size' setting — unless running with "complexity" (expertise
level) set to 'Novice'.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool reacts to the "complexity" (expertise level) setting.
See also: Color Sep. & Double Vision.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,29 @@
Tux Paint "Magic" Tool: 3-Point Draw
### Group: Projections ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Click and drag to draw with 3-point perspective. Lines will only go towards
your three vanishing points, or aligned with the "horizon" defined by two of
the vanishing points. Use "3-Point Select" to choose your vanishing points
(only available in "advanced" mode). In "beginner" mode, two "3-Point Draw"
tools will be available, one with upwards-looking vanishing points, and one
with downwards-looking vanishing points.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
This tool is not available with "complexity" (expertise level) set to 'Novice'.
See also: 1-Point Draw, 1-Point Select, 2-Point Draw, 2-Point Select, 3-Point
Select, Isometric Line, Dimetric Select, Dimetric Draw, Trimetric Select,
Trimetric Draw, Oblique Select, Oblique Draw, & Perspektiv.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,22 @@
Tux Paint "Magic" Tool: 3-Point Select
### Group: Projections ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Click (and drag) to position the three vanishing points that will be used with
the "3-Point Draw" tool.
This tool is operated in a freehand fashion.
This tool is only available with "complexity" (expertise level) set to
'Advanced'.
See also: 1-Point Draw, 1-Point Select, 2-Point Draw, 2-Point Select, 3-Point
Draw, Isometric Line, Dimetric Select, Dimetric Draw, Trimetric Select,
Trimetric Draw, Oblique Select, Oblique Draw, & Perspektiv.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,18 @@
Tux Paint "Magic" Tool: ASCII-färgdator
### Group: Distorts ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Transform your picture into colored computer "ASCII art".
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
See also: ASCII-dator & ASCII Typewriter.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,20 @@
Tux Paint "Magic" Tool: ASCII-dator
### Group: Distorts ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Transform your picture into "ASCII art", computer-style.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
This tool offers color choices.
See also: ASCII Typewriter & ASCII-färgdator.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,20 @@
Tux Paint "Magic" Tool: ASCII Typewriter
### Group: Distorts ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Transform your picture into "ASCII art", typewriter-style.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
This tool offers color choices.
See also: ASCII-dator & ASCII-färgdator.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,17 @@
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.
This tool offers color choices.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,19 @@
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.35

View file

@ -0,0 +1,16 @@
Tux Paint "Magic" Tool: Blommande
### 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.35

View file

@ -0,0 +1,20 @@
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.35

View file

@ -0,0 +1,23 @@
Tux Paint "Magic" Tool: Tegelstenar
### Group: Målning ###
## Author: Albert Cahalan <albert@users.sf.net> ##
This tool intelligently paints brick patterns on the canvas. The bricks can be
tinted various redish hues by selecting different colors in the color palette.
(If the Magic size feature is disabled, multiple "Tegelstenar" tools will be
made available.)
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
See also: Pixels.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,19 @@
Tux Paint "Magic" Tool: Kalligrafi
### Group: Målning ###
## 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.
This tool offers multiple size settings.
This tool offers color choices.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,17 @@
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.35

View file

@ -0,0 +1,17 @@
Tux Paint "Magic" Tool: Krita
### 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.35

View file

@ -0,0 +1,17 @@
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.
This tool offers color choices.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,17 @@
Tux Paint "Magic" Tool: Cirklar
### 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.35

View file

@ -0,0 +1,20 @@
Tux Paint "Magic" Tool: Klona
### 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.
This tool reacts to the "complexity" (expertise level) setting.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,22 @@
Tux Paint "Magic" Tool: Färg och vitt
### 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; no
shades or dithering are used. (This is also known as a "threshold" effect.)
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
This tool offers color choices.
See also: Dither & Dither (Keep Colors).
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,16 @@
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.35

View file

@ -0,0 +1,20 @@
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.
This tool offers color choices.
See also: 3D-glasögon & Double Vision.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,21 @@
Tux Paint "Magic" Tool: Comic Dots
### Group: Målning ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Draws a repeating dot pattern, simulating the "Ben Day process" used in early
comic books.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
See also: Halvton.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,20 @@
Tux Paint "Magic" Tool: Concentric Circle
### Group: Målning ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Draw concentric circles.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
See also: Loops, Krumelurer, Spiral, Fyrkantig spiral, & Concentric Square.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,20 @@
Tux Paint "Magic" Tool: Concentric Square
### Group: Målning ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Draw concentric squares.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
See also: Loops, Krumelurer, Spiral, Fyrkantig spiral, & Concentric Circle.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,18 @@
Tux Paint "Magic" Tool: Confetti
### Group: Målning ###
## 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.
This tool offers color choices.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,18 @@
Tux Paint "Magic" Tool: Crescent
### Group: Målning ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Draw one of various crescent shapes at a chosen angle.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,19 @@
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: Ljusare, Tint, Mätta, & Avmätta.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,19 @@
Tux Paint "Magic" Tool: Avmätta
### 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: Mätta, Darken, Ljusare, Tint, Remove Color, & Behåll färg.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,25 @@
Tux Paint "Magic" Tool: Dimetric Draw
### Group: Projections ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Click and drag to draw in a dimetric projection. Lines will only go vertically,
or at a chosen angle and its mirror. Use "Dimetric Select" to adjust the angle.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
This tool is not available with "complexity" (expertise level) set to 'Novice'.
See also: 1-Point Draw, 1-Point Select, 2-Point Draw, 2-Point Select, 3-Point
Draw, 3-Point Select, Isometric Line, Dimetric Select, Trimetric Select,
Trimetric Draw, Oblique Select, Oblique Draw, & Perspektiv.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,22 @@
Tux Paint "Magic" Tool: Dimetric Select
### Group: Projections ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Click (and drag) to position the pair of angles that will be used with the
"Dimetric Draw" tool.
This tool is operated in a freehand fashion.
This tool is only available with "complexity" (expertise level) set to
'Advanced'.
See also: 1-Point Draw, 1-Point Select, 2-Point Draw, 2-Point Select, 3-Point
Draw, 3-Point Select, Isometric Line, Dimetric Draw, Trimetric Select,
Trimetric Draw, Oblique Select, Oblique Draw, & Perspektiv.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,16 @@
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.35

View file

@ -0,0 +1,22 @@
Tux Paint "Magic" Tool: Dither
### Group: Color Filters ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
This makes parts of your picture two colors: white, and the color chosen in the
palette, using a dithered pattern of dots that reflect the original picture's
shades; the darker the shade, the more non-white dots are drawn.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
This tool offers color choices.
See also: Färg och vitt & Dither (Keep Colors).
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,20 @@
Tux Paint "Magic" Tool: Dither (Keep Colors)
### Group: Color Filters ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
This makes parts of your picture two colors: white, and colors based on your
original drawing, using a dithered pattern of dots that reflect the original
picture's shades; the darker the shade, the more non-white dots are drawn.
This tool offers both freehand and one-click operation.
This tool offers multiple size settings.
See also: Färg och vitt & Dither.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,16 @@
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-glasögon & Color Sep..
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,16 @@
Tux Paint "Magic" Tool: Droppa
### 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.35

View file

@ -0,0 +1,18 @@
Tux Paint "Magic" Tool: Kanter
### 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.35

View file

@ -0,0 +1,20 @@
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: Kanter & Silhouette.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,21 @@
Tux Paint "Magic" Tool: Hjärtan
### Group: Målning ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Draw a trail of floating hearts. Adjust the length of the trail using the size
option.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
See also: Gnistrande & Stars.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,21 @@
Tux Paint "Magic" Tool: Gnistrande
### Group: Målning ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Draw a trail of falling sparkles. Adjust the length of the trail using the size
option.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
See also: Hjärtan & Stars.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,20 @@
Tux Paint "Magic" Tool: Stars
### Group: Målning ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Draw a trail of stars. Adjust the length of the trail using the size option.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
See also: Hjärtan & Gnistrande.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,27 @@
Tux Paint "Magic" Tool: Epicykloid
### Group: Artistic ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Click to place the center of an epitrochoid curve, then drag left/right to
adjust the radius of a fixed circle, and up/down to adjust the radius of the
circle that will roll along its outside to produce the drawing. The size
options allow positioning the "pen" that paints the curve relative to the
rolling circle. (If the Magic size feature is disabled, multiple "Epicykloid"
tools will be made available.)
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
See also: Epitrochoid Inside, Epitrochoid Edge, Epitrochoid Outside,
Hypotrochoid, Hypotrochoid Inside, Hypotrochoid Edge, Hypotrochoid Outside,
String Corner, String Edges, & String V.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,23 @@
Tux Paint "Magic" Tool: Epitrochoid Edge
### Group: Artistic ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Click to place the center of an epitrochoid curve, then drag left/right to
adjust the radius of a fixed circle, and up/down to adjust the radius of the
circle that will roll along its outside to produce the drawing. The "pen" that
paints the curve will be on the edge of the rolling circle.
This tool is operated in a freehand fashion.
This tool offers color choices.
See also: Epicykloid, Epitrochoid Inside, Epitrochoid Outside, Hypotrochoid,
Hypotrochoid Inside, Hypotrochoid Edge, Hypotrochoid Outside, String Corner,
String Edges, & String V.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,23 @@
Tux Paint "Magic" Tool: Epitrochoid Inside
### Group: Artistic ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Click to place the center of an epitrochoid curve, then drag left/right to
adjust the radius of a fixed circle, and up/down to adjust the radius of the
circle that will roll along its outside to produce the drawing. The "pen" that
paints the curve will be on the inside of the rolling circle.
This tool is operated in a freehand fashion.
This tool offers color choices.
See also: Epicykloid, Epitrochoid Edge, Epitrochoid Outside, Hypotrochoid,
Hypotrochoid Inside, Hypotrochoid Edge, Hypotrochoid Outside, String Corner,
String Edges, & String V.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,23 @@
Tux Paint "Magic" Tool: Epitrochoid Outside
### Group: Artistic ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Click to place the center of an epitrochoid curve, then drag left/right to
adjust the radius of a fixed circle, and up/down to adjust the radius of the
circle that will roll along its outside to produce the drawing. The "pen" that
paints the curve will be on the outside of the rolling circle.
This tool is operated in a freehand fashion.
This tool offers color choices.
See also: Epicykloid, Epitrochoid Inside, Epitrochoid Edge, Hypotrochoid,
Hypotrochoid Inside, Hypotrochoid Edge, Hypotrochoid Outside, String Corner,
String Edges, & String V.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,18 @@
Tux Paint "Magic" Tool: Fylld polygon
### Group: Artistic ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Place three or more connected points on your picture to form a polygon; it will
be filled with the currently-chosen color. (Connect the final (red) point to
the initial (green) point.)
This tool is operated in a freehand fashion.
This tool offers color choices.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,18 @@
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.35

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: Spegel.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,24 @@
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.
This tool offers color choices.
See also: Gräs.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,16 @@
Tux Paint "Magic" Tool: Foam
### Group: Målning ###
## 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.35

View file

@ -0,0 +1,20 @@
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.
This tool offers color choices.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,19 @@
Tux Paint "Magic" Tool: Fractal
### Group: Målning ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
A set of tools that recursively repeat what you draw, scaling and/or rotating
it as they repeat.
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
This tool offers color choices.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,16 @@
Tux Paint "Magic" Tool: Fretwork
### Group: Målning ###
## 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.
This tool offers color choices.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,16 @@
Tux Paint "Magic" Tool: Fur
### Group: Målning ###
## Author: Bill Kendrick <bill@newbreedsoftware.com> ##
Add fur to your drawing.
This tool is operated in a freehand fashion.
This tool offers color choices.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,15 @@
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.35

View file

@ -0,0 +1,17 @@
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. (If the Magic
size feature is disabled, multiple "Googly Eyes" tools will be made available.)
This tool is operated in a freehand fashion.
This tool offers multiple size settings.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,20 @@
Tux Paint "Magic" Tool: Gräs
### Group: Målning ###
## 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.
This tool offers color choices.
See also: Flower.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,17 @@
Tux Paint "Magic" Tool: Halvton
### 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.
See also: Comic Dots.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,18 @@
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.
This tool offers color choices.
See also: Irregular Mosaic, Square Mosaic, & Mosaik.
-------------------------------------------------------------------------------
Tux Paint 0.9.35

View file

@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body><html><head><title>Tux Paint "Magic" Tool: 1-Point Draw</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: 1-Point Draw</h1>
<h2 align="center">Group: Projections</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>Click and drag to draw with 1-point perspective. Lines will only go towards your vanishing point, or be horizontal or vertical. Use "1-Point Select" to choose your vanishing point (only available in "advanced" mode).</p>
<p align=center><img src="../../../html/images/magic_examples/1pt_perspective.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<p>This tool offers multiple size settings.</p>
<p>This tool offers color choices.</p>
<p>This tool reacts to the "complexity" (expertise level) setting.</p>
<p>See also: <a href="1pt_perspective_select.html">1-Point Select</a>, <a href="2pt_perspective.html">2-Point Draw</a>, <a href="2pt_perspective_select.html">2-Point Select</a>, <a href="3pt_perspective.html">3-Point Draw</a>, <a href="3pt_perspective_select.html">3-Point Select</a>, <a href="isometric_line.html">Isometric Line</a>, <a href="dimetric_select.html">Dimetric Select</a>, <a href="dimetric_draw.html">Dimetric Draw</a>, <a href="trimetric_select.html">Trimetric Select</a>, <a href="trimetric_draw.html">Trimetric Draw</a>, <a href="oblique_select.html">Oblique Select</a>, <a href="oblique_draw.html">Oblique Draw</a>, &amp; <a href="perspective.html">Perspektiv</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.35</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: 1-Point Select</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: 1-Point Select</h1>
<h2 align="center">Group: Projections</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>Click (and drag) to position the vanishing point that will be used with the "1-Point Draw" tool.</p>
<p>This tool is operated in a freehand fashion.</p>
<p>This tool is <em>only available</em> with "complexity" (expertise level) set to 'Advanced'.</p>
<p>See also: <a href="1pt_perspective.html">1-Point Draw</a>, <a href="2pt_perspective.html">2-Point Draw</a>, <a href="2pt_perspective_select.html">2-Point Select</a>, <a href="3pt_perspective.html">3-Point Draw</a>, <a href="3pt_perspective_select.html">3-Point Select</a>, <a href="isometric_line.html">Isometric Line</a>, <a href="dimetric_select.html">Dimetric Select</a>, <a href="dimetric_draw.html">Dimetric Draw</a>, <a href="trimetric_select.html">Trimetric Select</a>, <a href="trimetric_draw.html">Trimetric Draw</a>, <a href="oblique_select.html">Oblique Select</a>, <a href="oblique_draw.html">Oblique Draw</a>, &amp; <a href="perspective.html">Perspektiv</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.35</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: 2-Point Draw</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: 2-Point Draw</h1>
<h2 align="center">Group: Projections</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>Click and drag to draw with 2-point perspective. Lines will only go towards your two vanishing points, or aligned with either the "horizon" defined by the two vanishing points, or a line perpendicular to that "horizon". Use "2-Point Select" to choose your vanishing points (only available in "advanced" mode).</p>
<p align=center><img src="../../../html/images/magic_examples/2pt_perspective.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<p>This tool offers multiple size settings.</p>
<p>This tool offers color choices.</p>
<p>This tool is <em>not available</em> with "complexity" (expertise level) set to 'Novice'.</p>
<p>See also: <a href="1pt_perspective.html">1-Point Draw</a>, <a href="1pt_perspective_select.html">1-Point Select</a>, <a href="2pt_perspective_select.html">2-Point Select</a>, <a href="3pt_perspective.html">3-Point Draw</a>, <a href="3pt_perspective_select.html">3-Point Select</a>, <a href="isometric_line.html">Isometric Line</a>, <a href="dimetric_select.html">Dimetric Select</a>, <a href="dimetric_draw.html">Dimetric Draw</a>, <a href="trimetric_select.html">Trimetric Select</a>, <a href="trimetric_draw.html">Trimetric Draw</a>, <a href="oblique_select.html">Oblique Select</a>, <a href="oblique_draw.html">Oblique Draw</a>, &amp; <a href="perspective.html">Perspektiv</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.35</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: 2-Point Select</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: 2-Point Select</h1>
<h2 align="center">Group: Projections</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>Click (and drag) to position the two vanishing points that will be used with the "2-Point Draw" tool.</p>
<p>This tool is operated in a freehand fashion.</p>
<p>This tool is <em>only available</em> with "complexity" (expertise level) set to 'Advanced'.</p>
<p>See also: <a href="1pt_perspective.html">1-Point Draw</a>, <a href="1pt_perspective_select.html">1-Point Select</a>, <a href="2pt_perspective.html">2-Point Draw</a>, <a href="3pt_perspective.html">3-Point Draw</a>, <a href="3pt_perspective_select.html">3-Point Select</a>, <a href="isometric_line.html">Isometric Line</a>, <a href="dimetric_select.html">Dimetric Select</a>, <a href="dimetric_draw.html">Dimetric Draw</a>, <a href="trimetric_select.html">Trimetric Select</a>, <a href="trimetric_draw.html">Trimetric Draw</a>, <a href="oblique_select.html">Oblique Select</a>, <a href="oblique_draw.html">Oblique Draw</a>, &amp; <a href="perspective.html">Perspektiv</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.35</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: 3D-glasögon</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-glasögon</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 color channels, letting you create anaglyphic pictures that can be viewed with various kinds of 3D glasses. Options include: Red/Cyan, Red/Blue, Red/Green, and Magenta/Cyan &mdash; controlled by the 'size' setting &mdash; unless running with "complexity" (expertise level) set to 'Novice'.</p>
<p align=center><img src="../../../html/images/magic_examples/3dglasses.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<p>This tool offers multiple size settings.</p>
<p>This tool reacts to the "complexity" (expertise level) setting.</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.35</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: 3-Point Draw</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: 3-Point Draw</h1>
<h2 align="center">Group: Projections</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>Click and drag to draw with 3-point perspective. Lines will only go towards your three vanishing points, or aligned with the "horizon" defined by two of the vanishing points. Use "3-Point Select" to choose your vanishing points (only available in "advanced" mode). In "beginner" mode, two "3-Point Draw" tools will be available, one with upwards-looking vanishing points, and one with downwards-looking vanishing points.</p>
<p align=center><img src="../../../html/images/magic_examples/3pt_perspective.png"></p>
<p>This tool is operated in a freehand fashion.</p>
<p>This tool offers multiple size settings.</p>
<p>This tool offers color choices.</p>
<p>This tool is <em>not available</em> with "complexity" (expertise level) set to 'Novice'.</p>
<p>See also: <a href="1pt_perspective.html">1-Point Draw</a>, <a href="1pt_perspective_select.html">1-Point Select</a>, <a href="2pt_perspective.html">2-Point Draw</a>, <a href="2pt_perspective_select.html">2-Point Select</a>, <a href="3pt_perspective_select.html">3-Point Select</a>, <a href="isometric_line.html">Isometric Line</a>, <a href="dimetric_select.html">Dimetric Select</a>, <a href="dimetric_draw.html">Dimetric Draw</a>, <a href="trimetric_select.html">Trimetric Select</a>, <a href="trimetric_draw.html">Trimetric Draw</a>, <a href="oblique_select.html">Oblique Select</a>, <a href="oblique_draw.html">Oblique Draw</a>, &amp; <a href="perspective.html">Perspektiv</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.35</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: 3-Point Select</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: 3-Point Select</h1>
<h2 align="center">Group: Projections</h2>
<h3 align="center">Author:
Bill Kendrick &lt;<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>&gt;</h3>
<p>Click (and drag) to position the three vanishing points that will be used with the "3-Point Draw" tool.</p>
<p>This tool is operated in a freehand fashion.</p>
<p>This tool is <em>only available</em> with "complexity" (expertise level) set to 'Advanced'.</p>
<p>See also: <a href="1pt_perspective.html">1-Point Draw</a>, <a href="1pt_perspective_select.html">1-Point Select</a>, <a href="2pt_perspective.html">2-Point Draw</a>, <a href="2pt_perspective_select.html">2-Point Select</a>, <a href="3pt_perspective.html">3-Point Draw</a>, <a href="isometric_line.html">Isometric Line</a>, <a href="dimetric_select.html">Dimetric Select</a>, <a href="dimetric_draw.html">Dimetric Draw</a>, <a href="trimetric_select.html">Trimetric Select</a>, <a href="trimetric_draw.html">Trimetric Draw</a>, <a href="oblique_select.html">Oblique Select</a>, <a href="oblique_draw.html">Oblique Draw</a>, &amp; <a href="perspective.html">Perspektiv</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.35</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: ASCII-färgdator</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: ASCII-färgdator</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>Transform your picture into colored computer "ASCII art".</p>
<p align=center><img src="../../../html/images/magic_examples/ascii_color_computer.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="ascii_computer.html">ASCII-dator</a> &amp; <a href="ascii_typewriter.html">ASCII Typewriter</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.35</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: ASCII-dator</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: ASCII-dator</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>Transform your picture into "ASCII art", computer-style.</p>
<p align=center><img src="../../../html/images/magic_examples/ascii_computer.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<p>This tool offers color choices.</p>
<p>See also: <a href="ascii_typewriter.html">ASCII Typewriter</a> &amp; <a href="ascii_color_computer.html">ASCII-färgdator</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.35</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: ASCII Typewriter</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: ASCII Typewriter</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>Transform your picture into "ASCII art", typewriter-style.</p>
<p align=center><img src="../../../html/images/magic_examples/ascii_typewriter.png"></p>
<p>This tool offers both freehand and one-click operation.</p>
<p>This tool offers multiple size settings.</p>
<p>This tool offers color choices.</p>
<p>See also: <a href="ascii_computer.html">ASCII-dator</a> &amp; <a href="ascii_color_computer.html">ASCII-färgdator</a>.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.35</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: 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>
<p>This tool offers color choices.</p>
<hr size="1" noshade />
<p align="center">Tux Paint 0.9.35</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.35</p>
</body></html>

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