Apply changes on documentation. Merge branch 'master' into sdl2.0

This commit is contained in:
Pere Pujal i Carabantes 2021-02-07 23:58:08 +01:00
commit 5fdd739bdc
154 changed files with 45772 additions and 24245 deletions

View file

@ -1,11 +1,8 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator"
content="HTML Tidy for HTML5 for Linux version 5.6.0">
<title>
Tux Paint Advanced Stamps HOWTO
</title>
Tux Paint Advanced Stamps 'How-To' </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
</head>
@ -19,480 +16,207 @@
<img src="../../html/images/tuxpaint-title.png"
width="205"
height="210"
alt="Tux&nbsp;Paint"><br>
version 0.9.26<br>
Advanced Stamps HOWTO
</h1>
alt="Tux Paint"><br>
version 0.9.26 Advanced Stamps 'How-To' </h1>
<p>
Copyright 2006-2008 by Albert Cahalan for the Tux Paint
project<br>
New Breed Software
</p>
<p>
<a href=
"mailto:albert@users.sf.net">albert@users.sf.net</a><br>
<a href=
"http://www.tuxpaint.org/">http://www.tuxpaint.org/</a>
Copyright &copy; 2006-2021 by Albert Cahalan and others; see AUTHORS.<br>
<a href="http://www.tuxpaint.org/">http://www.tuxpaint.org/</a>
</p>
</center>
<h2>
About this HOWTO
</h2>
About this 'How-To' </h2>
<blockquote>
<p>
This HOWTO assumes that you want to make an excellent
Tux&nbsp;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>
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 HOWTO assumes you are dealing with normal opaque
objects. Dealing with semi-transparent objects (fire,
moving fan blade, kid's baloon) 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>
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>
<h2>
Image choice is crucial
</h2>
Image choice is crucial </h2>
<blockquote>
<h3>
License
</h3>
License </h3>
<blockquote>
<p>
If you wish to submit artwork to the Tux&nbsp;Paint
developers for consideration for inclusion in the
official project, or if you wish to release your own copy
of Tux&nbsp;Paint, bundled with your own graphics, you
need an image that is compatible with the GNU <a href=
"../COPYING.txt">General Public License</a> used by
Tux&nbsp;Paint.
</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>
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&nbsp;Domain
by declaring it so. (Hire a lawyer if you feel the need
for legal advice.)
</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>
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>
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>
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>
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>
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>
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>
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>
<h2>
Prepare the image:
</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=
"http://gnuwin32.sourceforge.net/packages/jpeg.htm">jpegtran</a>
that lets you crop an image without the normal quality
loss. If you want a GUI for it, use <a href=
"http://astron.berkeley.edu/~mperrin/software/ljcrop/">ljcrop</a>.
Otherwise, use it like this:
</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>
<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>
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>
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>
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 "WIP" 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>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 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>
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>
<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>
<h2>
Prepare the mask:
</h2>
Prepare the mask </h2>
<blockquote>
<p>
Get used to doing Ctrl-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.
</p>
Get used to doing <b>[Ctrl]</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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
<h2>
Replace the fringe and junk pixels:
</h2>
Replace the fringe and junk pixels </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>
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>
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&nbsp;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>
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>
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 green (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 DISABLED)
</li>
<li>composited over green (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>
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>
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&nbsp;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>
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&nbsp;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&nbsp;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>
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>
<h2>
Save the image for Tux Paint
</h2>
Save the image for Tux Paint </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&nbsp;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>
It is very easy to ruin your hard work. Image editors can silently destroy pixels in 0% opaque areas. The conditions under which this happens may vary from version to version. If you are very trusting, you can try saving your image directly as a PNG. Be sure to read it back in again to verify that the 0% opaque areas didn't turn black or white, which would create fringes when Tux Paint scales the image down. If you need to scale your image to save space (and hide your mistakes), you are almost certain to destroy all the 0% opaque areas. So here is a better way... </p>
<h3>
A Safer Way to Save:
</h3>
A Safer Way to Save </h3>
<blockquote>
<p>
Drag the mask from the layers dialog to the unused
portion of the toolbar (right after the last drawing
tool). This will create a new image consisting of one
layer that contains the mask data. Scale this as desired,
remembering the settings you use. Often you should start
with an image that is about 700 to 1500 pixels across,
and end up with one that is 300 to 400.
</p>
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&nbsp;GIMP, you might need to convert the
image to greyscale before you can save it.) Choose the
more compact "RAW&nbsp;PGM" format. (The second character
of the file should be the ASCII digit "5", hex byte
0x35.)
</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>
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: ppm, not pgm.) (If you choose the
RAW&nbsp;PPM format, the second byte of the file should
be the ASCII digit "6", hex byte 0x36.)
</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>
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>
<code>pnmtopng -force -compression 9 -alpha mask.pgm fg.ppm &gt; final-stamp.png</code>
</p>
</blockquote>
</blockquote>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

458
docs/en/html/INSTALL.html Normal file
View file

@ -0,0 +1,458 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Tux Paint Installation Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
height="210"
alt="Tux Paint"><br>
version 0.9.26<br/>
Installation Documentation </h1>
<p>
Copyright &copy; 2002-2021 by various contributors; see AUTHORS.<br>
<a href="http://www.tuxpaint.org/">http://www.tuxpaint.org/</a>
</p>
<p>
30 January 2021 </p>
</center>
<hr>
<h2>Requirements:</h2>
<blockquote>
<h3>libSDL</h3>
<blockquote>
<p>
Tux Paint requires the Simple DirectMedia Layer Library (libSDL), an Open Source multimedia programming library available under the GNU Lesser General Public License (LGPL). </p>
<p>
Along with libSDL, Tux Paint depends on a number of other SDL 'helper' libraries: SDL_Image (for graphics files), SDL_TTF and (optionally) SDL_Pango (for True Type Font support) and, optionally, SDL_Mixer (for sound effects). </p>
<h4>Linux/Unix Users:</h4>
<blockquote>
<p>
The SDL libraries are available as source-code, or as RPM or Debian packages for various distributions of Linux. They can be downloaded from: </p>
<ul>
<li>libSDL: <a href="http://www.libsdl.org/">http://www.libsdl.org/</a></li>
<li>SDL_Image: <a href="http://www.libsdl.org/projects/SDL_image/">http://www.libsdl.org/projects/SDL_image/</a></li>
<li>SDL_TTF: <a href="http://www.libsdl.org/projects/SDL_ttf/">http://www.libsdl.org/projects/SDL_ttf/</a></li>
<li>SDL_Pango: <a href="http://sourceforge.net/projects/sdlpango/">http://sourceforge.net/projects/sdlpango/</a> (optional)</li>
<li>SDL_Mixer: <a href="http://www.libsdl.org/projects/SDL_mixer/">http://www.libsdl.org/projects/SDL_mixer/</a> (optional)</li>
</ul>
<p>
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 "<code>apt</code>"). </p>
<p>
<b>Note:</b> When installing libraries from packages, be sure to ALSO install the development versions of the packages. (For example, install both "<code>SDL-1.2.4.rpm</code>" <em>and</em> "<code>SDL-1.2.4-devel.rpm</code>".) </p>
</blockquote>
</blockquote>
<h3>Other Libraries</h3>
<blockquote>
<p>
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. </p>
<h4>libPNG</h4>
<blockquote>
<p>
Tux Paint uses PNG (Portable Network Graphics) format for its data files. SDL_image will require libPNG be installed. </p>
<p>
<a href="http://www.libpng.org/pub/png/libpng.html">http://www.libpng.org/pub/png/libpng.html</a>
</p>
</blockquote>
<h4>gettext</h4>
<blockquote>
<p>
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. </p>
<p>
<a href="http://www.gnu.org/software/gettext/">http://www.gnu.org/software/gettext/</a>
</p>
</blockquote>
<h4>libpaper (Linux/Unix only)</h4>
<blockquote>
<p>
As of Tux Paint 0.9.17, Tux Paint can determine your system's default paper size (e.g., A4 or Letter), or can be told to use a particular paper size, thanks to "libpaper". </p>
<p>
<a href="https://github.com/naota/libpaper">https://github.com/naota/libpaper</a>
</p>
</blockquote>
<h4>FriBiDi</h4>
<blockquote>
<p>
Tux Paint's "Text" and also "Label" tools support bidirectional languages, thanks to the "FriBiDi" library. </p>
<p>
<a href="http://fribidi.org/">http://fribidi.org/</a>
</p>
</blockquote>
<h4>SVG graphics support</h4>
<blockquote>
<p>
As of Tux Paint 0.9.17, Tux Paint can load SVG (Scalable Vector Graphics) images as stamps. Two sets of libraries are supported, and SVG support can be completely disabled (via "<code>make SVG_LIB:=</code>") </p>
<h5>librsvg-2 &amp; libCairo2 (newer libraries)</h5>
<ul>
<li>libRSVG 2: <a href="http://librsvg.sourceforge.net/">http://librsvg.sourceforge.net/</a></li>
<li>Cairo 2: <a href="http://www.cairographics.org/">http://www.cairographics.org/</a></li>
<li>These also depend on the following: <ul>
<li>GdkPixbuf &amp; GLib: <a href="http://www.gtk.org/">http://www.gtk.org/</a></li>
<li>Pango: <a href="http://www.pango.org/">http://www.pango.org/</a></li>
</ul>
</li>
</ul>
<h5>Older SVG libraries</h5>
<ul>
<li>libcairo1, libsvg1, &amp; libsvg-cairo1: <a href="http://www.cairographics.org/">http://www.cairographics.org/</a></li>
<li>These also depend on the following: <ul>
<li>libxml2: <a href="https://gitlab.gnome.org/GNOME/libxml2">https://gitlab.gnome.org/GNOME/libxml2</a></li>
</ul>
</li>
</ul>
</blockquote>
<h4>Animated GIF Export feature</h4>
<blockquote>
<p>
To support export of animated GIFs (slideshows), the "libimagequant" library (from the "pngquant2" project) is required. </p>
<p>
<a href="https://github.com/ImageOptim/libimagequant">https://github.com/ImageOptim/libimagequant</a>
</p>
</blockquote>
<h4>NetPBM Tools (optional) No longer used, by default</h4>
<blockquote>
<p>
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 '<code>pngtopnm</code>' and '<code>pnmtops</code>' NetPBM command-line tools.) </p>
<p>
<a href="http://netpbm.sourceforge.net/">http://netpbm.sourceforge.net/</a>
</p>
</blockquote>
</blockquote>
</blockquote>
<h2>Compiling and Installation:</h2>
<blockquote>
<p>
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. </p>
<h3>Windows Users:</h3>
<blockquote>
<h4>Compiling:</h4>
<blockquote>
<p>
As of February 2005 (starting with Tux Paint 0.9.15), the "<code>Makefile</code>" includes support for building on a Windows system using MinGW/MSYS (<a href="http://www.mingw.org/">http://www.mingw.org/</a>). </p>
<p>
After configuring the environment and building and installing all the dependencies, use these commands, in MSYS, to build, install and run: </p>
<h5>Prior to version 0.9.20:</h5>
<blockquote>
<code>
$ make win32<br/>
$ make install-win32<br/>
$ tuxpaint
</code>
</blockquote>
<h5>Version 0.9.20 and beyond:</h5>
<blockquote>
<code>
$ make<br/>
$ make install<br/>
$ tuxpaint
</code>
</blockquote>
<p>
Use the following command to build a version suitable for redistribution with the installer or in a zip-file: </p>
<blockquote>
<code>
$ make bdist-win32
</code>
</blockquote>
<p>
Or if building for Win9x/ME: </p>
<blockquote>
<code>
$ BDIST_WIN9X=1 make bdist-win32
</code>
</blockquote>
<p>
Before any of the above will work, you need to configure the environment and build or install the libraries that Tux Paint depends upon. John Popplewell put together some instructions for doing that here: </p>
<p>
<a href="http://www.johnnypops.co.uk/tuxpaint/">http://www.johnnypops.co.uk/tuxpaint/</a>
</p>
<p>
Read the relevant notes if building for Win9X/ME. </p>
</blockquote>
<h4>Running the Installer:</h4>
<blockquote>
<p>
Double-click the Tux Paint installer executable (.EXE file) and follow the instructions.
<p>
First, you will be asked to agree to the license. (It is the GNU General Public License (GPL), which is also available as "COPYING.txt".) </p>
<p>
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.) </p>
<p>
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. </p>
<p>
At this point, you can click 'Install' to install Tux Paint! </p>
</blockquote>
<h4>Changing the Settings Using the Shortcut:</h4>
<blockquote>
<p>
To change program settings, right-click on the TuxPaint shortcut and select 'Properties' (at the bottom). </p>
<p>
Make sure the 'Shortcut' tab is selected in the window that appears, and examine the 'Target:' field. You should see something like this: </p>
<blockquote>
<code>
"C:\Program Files\TuxPaint\TuxPaint.exe"
</code>
</blockquote>
<p>
You can now add command-line options which will be enabled when you double-click the icon. </p>
<p>
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: </p>
<blockquote>
<code>
"C:\Program Files\TuxPaint\TuxPaint.exe" -f -s --lang french
</code>
</blockquote>
<p>
(See the main documentation for a full list of available command-line options.) </p>
<p>
If you make a mistake or it all disappears use <b><code>[Ctrl]</code></b> + <b><code>[Z]</code></b> to undo or just hit the <b><code>[Esc]</code></b> key and the box will close with no changes made (unless you pushed the "Apply" button!). </p>
<p>
When you have finished, click "OK." </p>
</blockquote>
<h4>If Something Goes Wrong:</h4>
<blockquote>
<p>
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 like before, and look for a file called "<code>stderr.txt</code>" in the TuxPaint folder. </p>
<p>
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). </p>
</blockquote>
</blockquote>
<h3>Linux/Unix Users:</h3>
<blockquote>
<h4>Compiling:</h4>
<blockquote>
<p>
Note: Tux Paint does not use <code>autoconf</code>/<code>automake</code>, so there is no "<code>./configure</code>" script to run. Compiling should be straight-forward though, assuming everything Tux Paint needs is installed. </p>
<p>
To compile the program from source, simply run the following command from a shell prompt (e.g., "$"): </p>
<blockquote>
<code>
$ make
</code>
</blockquote>
</blockquote>
<h4>
Disabling SVG support (and hence Cairo, libSVG, and svg-cairo dependencies): </h4>
<blockquote>
<p>
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 "<code>make</code>" with "<code>SVG_LIB= SVG_CFLAGS= NOSVGFLAG=NOSVG</code>" added:
<blockquote>
<code>
$ make SVG_LIB= SVG_CFLAGS=
</code>
</blockquote>
</blockquote>
<h4>
Disabling Pango support (and hence Pango, Cairo, etc. dependencies): </h4>
<blockquote>
<p>
Prior to version 0.9.18, Tux Paint used the <code>libSDL_ttf</code> library for rendering text using TrueType Fonts. Since 0.9.18, <code>libSDL_Pango</code> is used, as it has much greater support for internationalization. However, if you wish to disable the use of SDL_Pango, you may do so running "<code>make</code>" with "<code>SDL_PANGO_LIB=</code>" added: </p>
<blockquote>
<code>
$ make SDL_PANGO_LIB=
</code>
</blockquote>
</blockquote>
<h4>Disabling Sound at Compile-time:</h4>
<blockquote>
If you don't have a sound card, or would prefer to build the program with no sound support (and therefore without a the <code>SDL_mixer</code> dependency), you can run "<code>make</code>" with "<code>SDL_MIXER_LIB=</code>" added: </p>
<blockquote>
<code>
$ make SDL_MIXER_LIB=
</code>
</blockquote>
</blockquote>
<h4>Other options:</h4>
<blockquote>
<p>
Various other options (e.g., installation paths) may be overridden; see them in "<code>Makefile</code>" for further details. </p>
</blockquote>
<h4>If you get errors:</h4>
<blockquote>
<p>
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 "<code>-dev</code>" or "<code>-devel</code>" packages as well, otherwise you won't be able to compile Tux Paint (and other programs) from source! </p>
</blockquote>
<h4>Installng:</h4>
<blockquote>
<p>
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: </p>
<blockquote>
<code>
$ su
</code>
</blockquote>
<p>
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: </p>
<blockquote>
<code>
# make install
</code>
</blockquote>
<p>
Finally, you can switch back to your regular user by exiting superuser mode: </p>
<blockquote>
<code>
# exit
</code>
</blockquote>
<p>
Alternatively, you may be able to simply use the "sudo" command (e.g., on Ubuntu Linux): </p>
<blockquote>
<code>
$ sudo make install
</code>
</blockquote>
<p>
<b>Note:</b> By default, "<code>tuxpaint</code>", the executable program, is placed in "<code>/usr/local/bin/</code>". The data files (images, sounds, etc.) are placed in "<code>/usr/local/share/tuxpaint/</code>". </p>
<h5>Changing Where Things Go</h5>
<blockquote>
<p>
You can change where things will go by setting "<code>Makefile</code>"variables on the command line. "<code>DESTDIR</code>" is used to place output in a staging area for package creation. "<code>PREFIX</code>" is the basis of where all other files go, and is, by default, set to "<code>/usr/local</code>". </p>
<p>
Other variables are: </p>
<dl>
<dt><code>BIN_PREFIX</code></dt>
<dd>
Where the "<code>tuxpaint</code>" binary will be installed. (Set to "<code>$(PREFIX)/bin</code>" by default - e.g., "<code>/usr/local/bin</code>") </dd>
<dt><code>DATA_PREFIX</code></dt>
<dd>
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 "<code>$(PREFIX)/share/tuxpaint</code>") </dd>
<dt><code>DOC_PREFIX</code></dt>
<dd>
Where the documentation text files (the "<code>docs</code>" directory) will go. (Set to "<code>$(PREFIX)/share/doc/tuxpaint</code>") </dd>
<dt><code>MAN_PREFIX</code></dt>
<dd>
Where the manual page for Tux Paint will go. (Set to "<code>$(PREFIX)/share/man</code>") </dd>
<dt><code>ICON_PREFIX</code> &mdash; <code>$(PREFIX)/share/pixmaps</code></dt>
<dt><code>X11_ICON_PREFIX</code> &mdash; <code>$(PREFIX)/X11R6/include/X11/pixmaps</code></dt>
<dt><code>GNOME_PREFIX</code> &mdash; <code>$(PREFIX)/share/gnome/apps/Graphics</code></dt>
<dt><code>KDE_PREFIX</code> &mdash; <code>$(PREFIX)/share/applnk/Graphics</code></dt>
<dd>
Where the icons and launchers (for GNOME and KDE) will go. </dd>
<dt><code>LOCALE_PREFIX</code></dt>
<dd>
Where the translation files for Tux Paint will go, and where Tux Paint will look for them. (Set to "<code>$(PREFIX)/share/locale/</code>") (Final location of a translation file will be under the locale's directory (e.g., "<code>es</code>" for Spanish), within the "<code>LC_MESSAGES</code>" subdirectory.) </dd>
</dl>
<p>
<b>Note:</b> This list is out of date. See "<code>Makefile</code>" and "<code>Makefile-i18n</code>" for a complete list. </p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<h2>Debugging:</h2>
<blockquote>
Debugging (to "STDOUT", e.g. to the terminal, or to a "<code>stdout.txt</code>" file, on Windows) can be enabled by setting "<code>DEBUG</code>" (and, if verbose logging is wanted, "<code>VERBOSE</code>") <code>#define</code>s in "<code>src/debug.h</code>". </blockquote>
<h2>Uninstalling Tux Paint:</h2>
<blockquote>
<h3>Windows</h3>
<blockquote>
<h4>Using the Uninstaller</h4>
<blockquote>
<p>
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. </p>
<p>
When it has finished, click on the close button. </p>
</blockquote>
<h4>Using the Control Panel</h4>
<blockquote>
<p>
It is also possible to use the entry "TuxPaint (remove only)" in the Control Panel Add/Remove programs section. </p>
</blockquote>
</blockquote>
<h3>Linux</h3>
<blockquote>
<p>
Within the Tux Paint source directory (where you compiled Tux Paint), you can use the "<code>make uninstall</code>" 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 "<code>PREFIX=...</code>" setting to "<code>make</code>" and "<code>make install</code>"), you may not, and will want to provide those same settings here. (See the installation instructions above for further information.) </p>
</blockquote>
<blockquote>
</body>
</html>

File diff suppressed because it is too large Load diff

117
docs/en/html/PNG.html Normal file
View file

@ -0,0 +1,117 @@
<!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">
</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.26<br/>
PNG Documentation </h1>
<p>
Copyright &copy; 2007-2021 by various contributors; see AUTHORS.<br>
<a href="http://www.tuxpaint.org/">http://www.tuxpaint.org/</a>
</p>
<p>
30 January 2021 </p>
</center>
<hr>
<h2>About PNGs</h2>
<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>
<h2>How To Make PNGs</h2>
<p>The following is a very <em>brief</em> list of ways to create PNGs or convert existing images into PNGs.
<h3>GIMP &amp; Krita</h3>
<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>
<h3>Command-line Tools</h3>
<h4>NetPBM</h4>
<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>
<h4>cjpeg/djpeg</h4>
<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>
<h3>Windows Users</h3>
<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>
<h3>Macintosh Users</h3>
<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>
</body>
</html>

File diff suppressed because it is too large Load diff

75
docs/en/html/SIGNALS.html Normal file
View file

@ -0,0 +1,75 @@
<!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">
</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.26<br/>
Signals Documentation </h1>
<p>
Copyright &copy; 2019-2021 by various contributors; see AUTHORS.<br>
<a href="http://www.tuxpaint.org/">http://www.tuxpaint.org/</a>
</p>
<p>
30 January 2021 </p>
</center>
<hr>
<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>[Ctrl]</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>
<b>Note:</b> 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>
<p>
Example: <code>killall tuxpaint</code> </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>
<b>Note:</b> 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>
<p>
Example: <code>killall -s SIGUSR1 tuxpaint</code> </p>
</dd>
</dl>
</body>
</html>

63
docs/en/html/SVG.html Normal file
View file

@ -0,0 +1,63 @@
<!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">
</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.26<br/>
SVG Documentation </h1>
<p>
Copyright &copy; 2007-2021 by various contributors; see AUTHORS.<br>
<a href="http://www.tuxpaint.org/">http://www.tuxpaint.org/</a>
</p>
<p>
30 January 2021 </p>
</center>
<hr>
<h2>About SVGs</h2>
<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>
<h2>How to make SVGs</h2>
<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. </p>
<p>
It is likely that is already installed on your system. If not, it should be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="http://www.inkscape.org/">http://www.inkscape.org/</a>, respectively. </p>
<h2>Mac and Windows users</h2>
<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>
</ul>
</body>
</html>