Merge branch 'master' with export features made by Bill and some updated translations into sdl2.0
This commit is contained in:
commit
436a535003
171 changed files with 25442 additions and 13914 deletions
|
|
@ -7,7 +7,7 @@ Various contributors (see below, and CHANGES.txt)
|
|||
http://www.tuxpaint.org/
|
||||
|
||||
|
||||
June 17, 2002 - March 29, 2020
|
||||
June 17, 2002 - July 30, 2020
|
||||
|
||||
$Id$
|
||||
|
||||
|
|
@ -103,6 +103,10 @@ $Id$
|
|||
which was from "Gimp-gluas" plug-in for The GIMP:
|
||||
http://pippin.gimp.org/plug-ins/gluas/
|
||||
|
||||
Animated GIF export from "gifenc",
|
||||
https://github.com/lecram/gifenc,
|
||||
by Marcel Rodrigues <http://lecram.github.io/>
|
||||
|
||||
Mouse accessibility code and keyboard access
|
||||
Ankit Choudary <ankit.goaldecided@gmail.com>, as part of GSOC 2010,
|
||||
with integration and fixes by Pere Pujal i Carabantes <pere@fornol.no-ip.org>
|
||||
|
|
@ -525,7 +529,7 @@ $Id$
|
|||
* Basque
|
||||
Juan Irigoien <juanirigoien@yahoo.es>
|
||||
Ander Elortondo <ander.elor@gmail.com> [retired]
|
||||
Alexander Gabillondo <alexgabilondo@gmail.com>
|
||||
Alexander Gabillondo <alexgabi@irakasle.eus>
|
||||
|
||||
* Belarusian
|
||||
Eugene Zelenko <greendeath@mail.ru>
|
||||
|
|
@ -650,7 +654,7 @@ $Id$
|
|||
|
||||
* Galician
|
||||
Leandro Regueiro <leandro.regueiro@gmail.com>
|
||||
Miguel Bouzada
|
||||
Miguel Bouzada <mbouzada@gmail.com>
|
||||
|
||||
* Georgian and Georgian TrueType Font (GPL)
|
||||
Gia Shervashidze <giasher@gmail.com>
|
||||
|
|
@ -912,6 +916,7 @@ $Id$
|
|||
* Santali translation (Ol-Chiki)
|
||||
Chandrakant Dhutadmal <cpdhutadmal@yahoo.com>
|
||||
Ganesh Murmu <g_murmu_in@yahoo.com>
|
||||
Prasanta Hembram <prasantahembram720@gmail.com>
|
||||
|
||||
* Scottish Gaelic
|
||||
Niall Tracey <internationiall@hotmail.com>
|
||||
|
|
@ -1069,10 +1074,11 @@ $Id$
|
|||
* Maemo (Nokia 770 and N880) coding and builds
|
||||
Alessandro Pasotti <apasotti@gmail.com>
|
||||
|
||||
* BeOS coding and builds
|
||||
* BeOS and Haiku coding and builds
|
||||
Luc 'Begasus' Schrijvers <begasus@gmail.com>
|
||||
Scott McCreary <scottmc@users.sourceforge.net>
|
||||
Marcin 'Shard' Konicki <shard at beosjournal.org> [retired]
|
||||
Gerasim Troeglazov <3dEyes@gmail.com>
|
||||
|
||||
* Debian Linux packages
|
||||
Ben Armstrong <synrg@sanctuary.nslug.ns.ca>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,66 @@ http://www.tuxpaint.org/
|
|||
|
||||
$Id$
|
||||
|
||||
2020.July.31 (0.9.25)
|
||||
* New Features
|
||||
------------
|
||||
* Export drawings:
|
||||
* GIF export option from the Open -> Slideshow dialog.
|
||||
(Closes https://sourceforge.net/p/tuxpaint/feature-requests/191/)
|
||||
* Utilizes "gifenc", public domain by Marcel Rodrigues:
|
||||
https://github.com/lecram/gifenc
|
||||
* Depends on "libimagequant", from the "pngquant2" project:
|
||||
https://github.com/ImageOptim/libimagequant
|
||||
(GPL v3 or later, for Free/Libre Open Source Software)
|
||||
* Single image (PNG) export from the Open dialog.
|
||||
(Closes https://sourceforge.net/p/tuxpaint/feature-requests/192/)
|
||||
* Both utilize XDG user dirs settings, if available, to determine
|
||||
where to store them, or "~/Pictures", otherwise. In those cases,
|
||||
files are stored in a new "TuxPaint" subdirectory.
|
||||
* The "--exportdir" option can be used to override the default
|
||||
location (but a "TuxPaint" subdir. will NOT be placed there).
|
||||
|
||||
* Ports & Building
|
||||
----------------
|
||||
* Corrections for Haiku not opening saved files.
|
||||
(Ref: https://github.com/haikuports/haikuports/issues/3045)
|
||||
Gerasim Troeglazov <3dEyes@gmail.com>
|
||||
|
||||
* Documentation updates
|
||||
---------------------
|
||||
* Cleaned up HTML code of HTML-based documentation.
|
||||
|
||||
* Sub-section links within README's Table of Contents.
|
||||
|
||||
* Bug Fixes
|
||||
---------
|
||||
* Mended issue where stamp descriptions were not loading
|
||||
when "getenv()" (e.g., "getenv("LANGUAGE")") returned an
|
||||
empty string, rather than a NULL.
|
||||
|
||||
* Mended bug where corrupt text would appear as stamp
|
||||
descriptions, if we failed to know what language to use
|
||||
(see above).
|
||||
|
||||
* Translation Updates:
|
||||
--------------------
|
||||
* Basque translation
|
||||
Alexander Gabilondo <alexgabi@irakasle.eus>
|
||||
|
||||
* Galician translation
|
||||
Miguel Bouzada <mbouzada@gmail.com>
|
||||
|
||||
* Icelandic translation
|
||||
Sveinn í Felli <sv1@fellsnet.is>
|
||||
|
||||
* Santali translation (Ol-Chiki)
|
||||
Prasanta Hembram <prasantahembram720@gmail.com>
|
||||
|
||||
* Misc
|
||||
----
|
||||
* Improved safety when copying things into string buffers.
|
||||
|
||||
|
||||
2020.April.24 (0.9.24)
|
||||
* New tools
|
||||
---------
|
||||
|
|
@ -229,7 +289,7 @@ $Id$
|
|||
Kevin Scannell <kscanne@gmail.com>
|
||||
|
||||
* Galician translation
|
||||
Miguel Bouzada
|
||||
Miguel Bouzada <mbouzada@gmail.com>
|
||||
|
||||
* Georgian translation
|
||||
Gia Shervashidze <giasher@gmail.com>
|
||||
|
|
|
|||
|
|
@ -1,27 +1,45 @@
|
|||
Release checklist for Tux Paint
|
||||
Last updated 2020-07-27 -bjk
|
||||
|
||||
Places to make sure version # and release date gets updated, prior to
|
||||
cutting a release (tagging in the source code repository, and running
|
||||
"make release" to roll a .tar.gz source tarball).
|
||||
Do these things _prior_ to cutting a release -- that is, prior to
|
||||
tagging in the source code repository, running "make release" to roll
|
||||
a .tar.gz source tarball, and making the tarball available for download.
|
||||
|
||||
* Makefile
|
||||
* Update version # and release dates
|
||||
|
||||
* Build description files:
|
||||
* tuxpaint.spec (Linux RPM package)
|
||||
* macos/Info.plist (macOS build)
|
||||
* win32/resources.rc (Windows mingw/msys build)
|
||||
Places to make sure version # and release date gets updated,
|
||||
|
||||
* Documentation
|
||||
(For HTML variants, be sure to run "make" in "docs/", to
|
||||
produce plaintext alternatives!)
|
||||
* Makefile
|
||||
|
||||
* Build description files:
|
||||
* tuxpaint.spec (Linux RPM package)
|
||||
* macos/Info.plist (macOS build)
|
||||
* win32/resources.rc (Windows mingw/msys build)
|
||||
|
||||
* Documentation
|
||||
(For HTML variants, be sure to run "make" in "docs/", to
|
||||
produce plaintext alternatives!)
|
||||
|
||||
* docs/CHANGES.txt
|
||||
* docs/en/html/README.html
|
||||
* docs/en/html/FAQ.html
|
||||
* docs/en/html/OPTIONS.html
|
||||
* docs/en/html/EXTENDING.html
|
||||
* docs/en/html/ADVANCED-STAMPS-HOWTO.html
|
||||
|
||||
* Manual page (manpage)
|
||||
* src/manpage/tuxpaint.1
|
||||
|
||||
* docs/CHANGES.txt
|
||||
* docs/en/html/README.html
|
||||
* docs/en/html/FAQ.html
|
||||
* docs/en/html/OPTIONS.html
|
||||
* docs/en/html/EXTENDING.html
|
||||
* docs/en/html/ADVANCED-STAMPS-HOWTO.html
|
||||
* Tidy the HTML documentation
|
||||
|
||||
* Manual page (manpage)
|
||||
* src/manpage/tuxpaint.1
|
||||
Using
|
||||
(Be sure to run "make" in "docs/", to produce plaintext alternatives!)
|
||||
|
||||
tidy -i --markup yes --vertical-space yes --indent yes --indent-attributes yes INFILE.html > OUTFILE.html
|
||||
|
||||
Make certain it looks okay, and stil renders properly in a browser.
|
||||
If not, correct the issues! Then replace the original with the new
|
||||
version 'tidy' created.
|
||||
|
||||
* Don't forget to commit the changes! (git add ... / git commit / git push)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
Tux Paint
|
||||
version 0.9.24
|
||||
version 0.9.25
|
||||
Advanced Stamps HOWTO
|
||||
|
||||
Copyright 2006-2008 by Albert Cahalan for the Tux Paint project
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
Tux Paint
|
||||
version 0.9.24
|
||||
version 0.9.25
|
||||
Extending Tux Paint
|
||||
|
||||
Copyright (c) 2002-2020 by various contributors; see AUTHORS.txt
|
||||
http://www.tuxpaint.org/
|
||||
|
||||
June 14, 2002 - May 29, 2020
|
||||
June 14, 2002 - July 27, 2020
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
Tux Paint
|
||||
version 0.9.24
|
||||
version 0.9.25
|
||||
Frequently Asked Questions
|
||||
|
||||
Copyright (c) 2002-2020 by various contributors; see AUTHORS.txt
|
||||
http://www.tuxpaint.org/
|
||||
|
||||
September 14, 2002 - May 29, 2020
|
||||
September 14, 2002 - July 27, 2020
|
||||
|
||||
Drawing-related
|
||||
|
||||
|
|
@ -42,30 +42,30 @@ Drawing-related
|
|||
it with "--stamps" on the command line or "nostamps=no" or
|
||||
"stamps=yes" in a configuration file.
|
||||
|
||||
* The Magic "Fill" Tool Looks Bad
|
||||
* The Magic "Fill" Tool Looks Bad
|
||||
|
||||
Tux Paint is probably comparing exact pixel colors when filling.
|
||||
This is faster, but looks worse. Run the command
|
||||
"tuxpaint --version" from a command line, and you should see,
|
||||
amongst the other output: "Low Quality Flood Fill enabled".
|
||||
Tux Paint is probably comparing exact pixel colors when filling. This
|
||||
is faster, but looks worse. Run the command "tuxpaint --version" from
|
||||
a command line, and you should see, amongst the other output: "Low
|
||||
Quality Flood Fill enabled".
|
||||
|
||||
To change this, you must rebuild Tux Paint from source. Be sure
|
||||
to remove or comment out any line that says:
|
||||
To change this, you must rebuild Tux Paint from source. Be sure to
|
||||
remove or comment out any line that says:
|
||||
|
||||
#define LOW_QUALITY_FLOOD_FILL
|
||||
#define LOW_QUALITY_FLOOD_FILL
|
||||
|
||||
in the "tuxpaint.c" file in the "src" directory.
|
||||
in the "tuxpaint.c" file in the "src" directory.
|
||||
|
||||
* Stamp outlines are always rectangles
|
||||
* Stamp outlines are always rectangles
|
||||
|
||||
Tux Paint was built with low-quality (but faster) stamp outlines.
|
||||
Tux Paint was built with low-quality (but faster) stamp outlines.
|
||||
|
||||
Rebuild Tux Paint from source. Be sure to remove or comment out
|
||||
any line that says:
|
||||
Rebuild Tux Paint from source. Be sure to remove or comment out any
|
||||
line that says:
|
||||
|
||||
#define LOW_QUALITY_STAMP_OUTLINE
|
||||
#define LOW_QUALITY_STAMP_OUTLINE
|
||||
|
||||
in the "tuxpaint.c" file in the "src" directory.
|
||||
in the "tuxpaint.c" file in the "src" directory.
|
||||
|
||||
Interface Problems
|
||||
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ INSTALL.txt for Tux Paint
|
|||
|
||||
Tux Paint - A simple drawing program for children.
|
||||
|
||||
Copyright (c) 2002-2018
|
||||
Copyright (c) 2002-2020
|
||||
Various contributors (see below, and AUTHORS.txt)
|
||||
http://www.tuxpaint.org/
|
||||
|
||||
June 27, 2002 - December 8, 2018
|
||||
June 27, 2002 - July 25, 2020
|
||||
$Id$
|
||||
|
||||
|
||||
|
|
@ -119,6 +119,14 @@ Requirements:
|
|||
Also depends on:
|
||||
libxml2
|
||||
|
||||
Animated GIF Export feature
|
||||
---------------------------
|
||||
So support export of animated GIFs (slideshows), the
|
||||
"libimagequant" library (from the "pngquant2" project)
|
||||
is required.
|
||||
|
||||
https://github.com/ImageOptim/libimagequant
|
||||
|
||||
NetPBM Tools [OPTIONAL] [No longer used, by default]
|
||||
------------------------
|
||||
Under Linux and Unix, the NetPBM tools are what are currently
|
||||
|
|
|
|||
2632
docs/en/OPTIONS.txt
2632
docs/en/OPTIONS.txt
File diff suppressed because it is too large
Load diff
|
|
@ -1,12 +1,12 @@
|
|||
Tux Paint
|
||||
version 0.9.24
|
||||
version 0.9.25
|
||||
|
||||
A simple drawing program for children
|
||||
|
||||
Copyright 2002-2020 by various contributors; see AUTHORS.txt
|
||||
http://www.tuxpaint.org/
|
||||
|
||||
June 14, 2002 - May 29, 2020
|
||||
June 14, 2002 - July 27, 2020
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
|
@ -15,6 +15,12 @@
|
|||
|-------------------------------------------|
|
||||
| * About |
|
||||
| * Using Tux Paint |
|
||||
| * Loading Tux Paint |
|
||||
| * Title Screen |
|
||||
| * Main Screen |
|
||||
| * Available Tools |
|
||||
| * Drawing Tools |
|
||||
| * Other Controls |
|
||||
| * Loading Other Pictures into Tux Paint |
|
||||
| * Further Reading |
|
||||
| * How to Get Help |
|
||||
|
|
@ -121,7 +127,7 @@ Loading Tux Paint
|
|||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Mac OS X Users
|
||||
macOS Users
|
||||
|
||||
Simply double-click the "Tux Paint" icon.
|
||||
|
||||
|
|
@ -147,8 +153,8 @@ Main Screen
|
|||
|
||||
The toolbar contains the drawing and editing controls.
|
||||
|
||||
[Tools: Paint, Stamp, Lines, Shapes, Text, Magic, Label, Undo, Redo,
|
||||
Eraser, New, Open, Save, Print, Quit]
|
||||
[Tools: Paint, Stamp, Lines, Shapes, Text, Magic, Label, Undo, Redo, Eraser,
|
||||
New, Open, Save, Print, Quit]
|
||||
|
||||
Middle: Drawing Canvas
|
||||
|
||||
|
|
@ -176,8 +182,8 @@ Main Screen
|
|||
A palette of available colors are shown near the bottom of the
|
||||
screen.
|
||||
|
||||
[Colors - Black, White, Red, Pink, Orange, Yellow, Green, Cyan, Blue,
|
||||
Purple, Brown, Grey]
|
||||
[Colors - Black, White, Red, Pink, Orange, Yellow, Green, Cyan, Blue, Purple,
|
||||
Brown, Grey]
|
||||
|
||||
On the far right are two special color options, the
|
||||
"color picker", which has an outline of an eye-dropper, and
|
||||
|
|
@ -193,9 +199,8 @@ Main Screen
|
|||
At the very bottom of the screen, Tux, the Linux Penguin,
|
||||
provides tips and other information while you draw.
|
||||
|
||||
(For example: 'Pick a shape. Click to pick the center, drag, then let go
|
||||
when it is the size you want. Move around to rotate it, and click to draw
|
||||
it.)
|
||||
(For example: 'Pick a shape. Click to pick the center, drag, then let go when it
|
||||
is the size you want. Move around to rotate it, and click to draw it.)
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
|
@ -367,6 +372,7 @@ Available Tools
|
|||
not include all characters for all languages,
|
||||
so sometimes you'll need to change fonts to see
|
||||
the characters you're trying to type.
|
||||
|
||||
* Japanese — Romanized Hiragana and
|
||||
Romanized Katakana — right [Alt]
|
||||
* Korean — Hangul 2-Bul — right [Alt] or
|
||||
|
|
@ -497,6 +503,10 @@ Available Tools
|
|||
Note: As of version 0.9.22, the picture will be
|
||||
placed in your desktop's trash can, on Linux only.
|
||||
|
||||
* Click the "Export" button near the lower right to
|
||||
export the image to your export folder. (e.g.,
|
||||
"~/Pictures/TuxPaint/")
|
||||
|
||||
* Click the blue "Slides" (slide projector) button at
|
||||
the lower left to go to slideshow mode. See "Slides",
|
||||
below, for details.
|
||||
|
|
@ -604,7 +614,7 @@ Available Tools
|
|||
|
||||
Printer Settings
|
||||
|
||||
(Windows and Mac OS X)
|
||||
(Windows and macOS)
|
||||
|
||||
By default, Tux Paint simply prints to the
|
||||
default printer with default settings when the
|
||||
|
|
@ -653,43 +663,80 @@ Available Tools
|
|||
Slides (under "Open")
|
||||
|
||||
The "Slides" button is available in the "Open" dialog. It
|
||||
displays a list of your saved files, just like the "Open"
|
||||
dialog.
|
||||
can be used to play a simple animation within Tux Paint, or
|
||||
a slideshow of pictures. It can also export an animated GIF
|
||||
based on the chosen images.
|
||||
|
||||
Click each of the images you wish to display in a
|
||||
slideshow-style presentation, one by one. A digit will
|
||||
appear over each image, letting you know in which order they
|
||||
will be displayed.
|
||||
Chosing pictures
|
||||
|
||||
You can click a selected image to unselect it (take it out
|
||||
of your slideshow).
|
||||
When you enter the "Slides" section of
|
||||
Tux Paint, it displays a list of your saved
|
||||
files, just like the "Open" dialog.
|
||||
|
||||
A sliding scale at the lower left of the screen (next to the
|
||||
"Play" button) can be used to adjust the speed of the
|
||||
slideshow, from slowest to fastest. Choose the leftmost
|
||||
setting to disable automatic advancement — you will need to
|
||||
press a key or click to go to the next slide (see below).
|
||||
Click each of the images you wish to display in
|
||||
a slideshow-style presentation, one by one. A
|
||||
digit will appear over each image, letting you
|
||||
know in which order they will be displayed.
|
||||
|
||||
Note: The slowest setting does not automatically advance
|
||||
through the slides. Use it for when you want to step through
|
||||
them manually.
|
||||
You can click a selected image to unselect it
|
||||
(take it out of your slideshow). Click it again
|
||||
if you wish to add it to the end of the list.
|
||||
|
||||
When you're ready, click the "Play" button to begin the
|
||||
slideshow. (Note: If you hadn't selected ANY images, then
|
||||
ALL images will be played in the slideshow.)
|
||||
Set playback speed
|
||||
|
||||
During the slideshow, press [Space], [Enter] or [Return] or
|
||||
the [Right Arrow], or click the "Next" button at the lower
|
||||
left, to manually advance to the next slide. Press [Left] to
|
||||
go back to the previous slide.
|
||||
A sliding scale at the lower left of the screen
|
||||
(next to the "Play" button) can be used to
|
||||
adjust the speed of the slideshow or animated
|
||||
GIF, from slowest to fastest. Choose the
|
||||
leftmost setting to disable automatic
|
||||
advancement during playback within Tux Paint —
|
||||
you will need to press a key or click to go to
|
||||
the next slide (see below).
|
||||
|
||||
Press [Escape], or click the "Back" button at the lower
|
||||
right, to exit the slideshow and return to the slideshow
|
||||
image selection screen.
|
||||
Note: The slowest setting does not
|
||||
automatically advance through the slides. Use
|
||||
it for when you want to step through them
|
||||
manually. (This does not apply to an exported
|
||||
animated GIF.)
|
||||
|
||||
Playback in Tux Paint
|
||||
|
||||
To play a slideshow within Tux Paint, click the
|
||||
"Play" button. (Note: If you hadn't selected
|
||||
ANY images, then ALL of your saved images will
|
||||
be played in the slideshow!)
|
||||
|
||||
During the slideshow, press [Space], [Enter] or
|
||||
[Return], or the [Right Arrow] — or click the
|
||||
"Next" button at the lower left — to manually
|
||||
advance to the next slide. Press [Left] to go
|
||||
back to the previous slide.
|
||||
|
||||
Press [Escape], or click the "Back" button at
|
||||
the lower right, to exit the slideshow and
|
||||
return to the slideshow image selection screen.
|
||||
|
||||
Exporting an animated GIF
|
||||
|
||||
Click the "GIF Export" button near the lower
|
||||
right to have Tux Paint generate an animated
|
||||
GIF file based on the selected images.
|
||||
|
||||
Note: At least two images must be selected. (To
|
||||
export a single image, use the "Export" option
|
||||
from the "Open" dialog.) If no images are
|
||||
selected, Tux Paint will NOT attempt to
|
||||
generate a GIF based on all saved images.
|
||||
|
||||
Pressing [Escape] during export will abort the
|
||||
process, and return you to the "Slideshow"
|
||||
dialog.
|
||||
|
||||
Click "Back" in the slideshow image selection screen to
|
||||
return to the "Open" dialog.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Quit
|
||||
|
||||
Clicking the "Quit" button, closing the Tux Paint window, or
|
||||
|
|
@ -720,6 +767,8 @@ Available Tools
|
|||
[Shift] + [Control] + [Escape] may be used to quit. (See the
|
||||
"Options" documentation.)
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Sound Muting
|
||||
|
||||
There is no on-screen control button at this time, but by
|
||||
|
|
@ -753,7 +802,7 @@ Available Tools
|
|||
Inside the user's "Application Data" folder, e.g.: "C:\Documents
|
||||
and Settings\(user name)\Application Data\TuxPaint\saved\"
|
||||
|
||||
Mac OS X
|
||||
macOS
|
||||
Inside the user's "Library" folder:
|
||||
"/Users/(user name)/Library/Application
|
||||
Support/Tux Paint/saved/"
|
||||
|
|
@ -799,7 +848,7 @@ Using 'tuxpaint-import'
|
|||
|
||||
Doing it Manually
|
||||
|
||||
Windows, Mac OS X and BeOS users must currently do the conversion
|
||||
Windows, macOS, BeOS, and Haiku users must currently do the conversion
|
||||
manually.
|
||||
|
||||
Load a graphics program that is capable of both loading your picture
|
||||
|
|
@ -842,6 +891,7 @@ Doing it Manually
|
|||
|
||||
Calculating the height of Tux Paint's canvas requires multiple
|
||||
steps:
|
||||
|
||||
1. Take the height of the window (e.g, 480, 600 or 768 pixels) and
|
||||
subtract 144
|
||||
2. Take the result of Step 1 and divide it by 48
|
||||
|
|
@ -851,6 +901,7 @@ Doing it Manually
|
|||
5. Finally, take the result of Step 4 and add 40
|
||||
|
||||
Example: Tux Paint running at fullscreen on a 1440x900 display.
|
||||
|
||||
* The canvas width is simply 1440 - 192, or 1248.
|
||||
* The canvas height is calculated as:
|
||||
1. 900 - 144, or 756
|
||||
|
|
@ -858,6 +909,7 @@ Doing it Manually
|
|||
3. 15.75 rounded down, or 15
|
||||
4. 15 * 48, or 720
|
||||
5. 720 + 40, or 760
|
||||
|
||||
So the canvas within a 1440x900 Tux Paint window is 1248x760.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -1,330 +1,501 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html><head><title>Tux Paint Advanced Stamps HOWTO</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
</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.24
|
||||
|
||||
<br>
|
||||
Advanced Stamps HOWTO</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></p>
|
||||
|
||||
</center>
|
||||
|
||||
|
||||
<h2>About this HOWTO</h2>
|
||||
<blockquote>
|
||||
|
||||
<p>This HOWTO 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>
|
||||
|
||||
</blockquote>
|
||||
|
||||
<h2>Image choice is crucial</h2>
|
||||
<blockquote>
|
||||
|
||||
<h3>License</h3>
|
||||
<blockquote>
|
||||
|
||||
<p>If you wish to submit artwork to the Tux Paint developers for
|
||||
consideration for inclusion in the official project, or if you wish to
|
||||
release your own copy of Tux Paint, bundled with your own graphics,
|
||||
you need an image that is compatible with the GNU
|
||||
<a href="../COPYING.txt">General Public License</a> 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>
|
||||
|
||||
Your own images can be placed in the Public Domain 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>
|
||||
|
||||
<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>
|
||||
|
||||
<blockquote>
|
||||
<p><code>jpegtran -trim -copy none -crop 512x1728+160+128 < src.jpg
|
||||
> 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>an image you will modify — the "WIP" layer
|
||||
<li>solid green (write-protect this if you can)
|
||||
<li>solid magenta (write-protect this if you can)
|
||||
<li>unmodified image (write-protect this if you can)
|
||||
</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>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
<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 green (mask enabled)
|
||||
<li>composited over magenta (mask enabled)
|
||||
<li>original (the top or bottom layer)
|
||||
<li>composited over the original (mask enabled)
|
||||
<li>raw WIP layer (mask DISABLED)
|
||||
</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>
|
||||
|
||||
<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 Paint scales the image down.
|
||||
If you need to scale your image to save space (and hide your mistakes), you
|
||||
are almost certain to destroy all the 0% opaque areas. So here is a better
|
||||
way...</p>
|
||||
|
||||
<h3>A Safer Way to Save:</h3>
|
||||
<blockquote>
|
||||
|
||||
<p>Drag the mask from the layers dialog to the unused portion of
|
||||
the toolbar (right after the last drawing tool). This will create a
|
||||
new image consisting of one layer that contains the mask data. Scale
|
||||
this as desired, remembering the settings you use. Often you should
|
||||
start with an image that is about 700 to 1500 pixels across, and end
|
||||
up with one that is 300 to 400.</p>
|
||||
|
||||
<p>Save the mask image as a NetPBM portable greymap ("<code>.pgm</code>")
|
||||
file. (If you are using an old release of The GIMP, you might need
|
||||
to convert the image to greyscale before you can save it.) Choose the
|
||||
more compact "RAW PGM" format. (The second character of the file
|
||||
should be the ASCII digit "5", hex byte 0x35.)</p>
|
||||
|
||||
<p>You may close the mask image.</p>
|
||||
|
||||
<p>Going back to the multi-layer image, now select the WIP layer. As you
|
||||
did with the mask, drag this from the layers dialog to the toolbar. You
|
||||
should get a single-layer image of your WIP data. If the mask came along
|
||||
too, get rid of it. You should be seeing the object and the painted-away
|
||||
surroundings, without any mask thumbnail in the layers dialog. If you
|
||||
scaled the mask, then scale this image in exactly the same way. Save
|
||||
this image as a NetPBM portable pixmap ("<code>.ppm</code>") file.
|
||||
(Note: 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.)</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 >
|
||||
final-stamp.png
|
||||
</code></p></blockquote>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
</body></html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator"
|
||||
content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title>
|
||||
Tux Paint Advanced Stamps HOWTO
|
||||
</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.25<br>
|
||||
Advanced Stamps HOWTO
|
||||
</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>
|
||||
</p>
|
||||
</center>
|
||||
|
||||
<h2>
|
||||
About this HOWTO
|
||||
</h2>
|
||||
|
||||
<blockquote>
|
||||
<p>
|
||||
This HOWTO 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>
|
||||
</blockquote>
|
||||
|
||||
<h2>
|
||||
Image choice is crucial
|
||||
</h2>
|
||||
|
||||
<blockquote>
|
||||
<h3>
|
||||
License
|
||||
</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>
|
||||
If you wish to submit artwork to the Tux Paint
|
||||
developers for consideration for inclusion in the
|
||||
official project, or if you wish to release your own copy
|
||||
of Tux Paint, bundled with your own graphics, you
|
||||
need an image that is compatible with the GNU <a href=
|
||||
"../COPYING.txt">General Public License</a> 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
|
||||
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>
|
||||
|
||||
<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>
|
||||
|
||||
<blockquote>
|
||||
<p>
|
||||
<code>jpegtran -trim -copy none -crop 512x1728+160+128
|
||||
< src.jpg > 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 "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>
|
||||
</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>
|
||||
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
<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 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>
|
||||
</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>
|
||||
|
||||
<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 Paint scales the
|
||||
image down. If you need to scale your image to save space
|
||||
(and hide your mistakes), you are almost certain to destroy
|
||||
all the 0% opaque areas. So here is a better way...
|
||||
</p>
|
||||
|
||||
<h3>
|
||||
A Safer Way to Save:
|
||||
</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>
|
||||
Drag the mask from the layers dialog to the unused
|
||||
portion of the toolbar (right after the last drawing
|
||||
tool). This will create a new image consisting of one
|
||||
layer that contains the mask data. Scale this as desired,
|
||||
remembering the settings you use. Often you should start
|
||||
with an image that is about 700 to 1500 pixels across,
|
||||
and end up with one that is 300 to 400.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Save the mask image as a NetPBM portable greymap
|
||||
("<code>.pgm</code>") file. (If you are using an old
|
||||
release of The GIMP, you might need to convert the
|
||||
image to greyscale before you can save it.) Choose the
|
||||
more compact "RAW PGM" format. (The second character
|
||||
of the file should be the ASCII digit "5", hex byte
|
||||
0x35.)
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You may close the mask image.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Going back to the multi-layer image, now select the WIP
|
||||
layer. As you did with the mask, drag this from the
|
||||
layers dialog to the toolbar. You should get a
|
||||
single-layer image of your WIP data. If the mask came
|
||||
along too, get rid of it. You should be seeing the object
|
||||
and the painted-away surroundings, without any mask
|
||||
thumbnail in the layers dialog. If you scaled the mask,
|
||||
then scale this image in exactly the same way. Save this
|
||||
image as a NetPBM portable pixmap ("<code>.ppm</code>")
|
||||
file. (Note: 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.)
|
||||
</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 > final-stamp.png</code>
|
||||
</p>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
</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
File diff suppressed because it is too large
Load diff
BIN
docs/html/images/open_export.png
Normal file
BIN
docs/html/images/open_export.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
BIN
docs/html/images/open_slides_export_gif.png
Normal file
BIN
docs/html/images/open_slides_export_gif.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
Loading…
Add table
Add a link
Reference in a new issue