As promised, here are more details on my 'stamp selection' tool idea.
(Only posting to tuxpaint-devel, because I'm covering the technical details
of my proposal.)
On Tue, Feb 07, 2006 at 11:36:20AM -0800, Bill Kendrick wrote:
>
> Numerous people have requested 'selection' tools in Tux Paint.
> This is one of a few major things Tux Paint lacks, compared to more
> professional (or at least 'typical') graphics tools.
<snip>
> * Stamp selection [*]
<snip>
So my idea is this...
* A separate greyscale canvas is created for each picture.
(It could just be a big 8-bit matrix.)
* This canvas is never seen by the user, but is touched whenever a stamp
is placed into a drawing, and examined when the "Stamp selection" tool
is used.
* It would need to be saved, so that it could be reloaded when the main
image is loaded. It could simply be saved as an 8-bit greyscale PNG,
along with the original image. (e.g, "20060207121435-mask.png")
* This unseen canvas begins as all-white (in RGB: #FFFFFF).
* When a stamp is first placed into the drawing, an all-black 'blob' is
placed in the same place within the unseen canvas, representing the
shape of the stamp. (It acts as a bitmask.)
* When the NEXT stamp is placed into the drawing, the entire unseend
canvas is 'lightened' by one notch. (#000000 becomes #010101)
The new stamp's 'blob' is then placed in the canvas, again as
all-black (#000000).
* ... and so on. This allows the last 255 stamps' positions to be
'remembered'. (#000000 pixels represent where the most recent
stamp is... the lightest non-white (#FFFFFF) pixels (e.g., up to #FEFEFE)
represent where the oldest stamp we can 'remember' was placed.)
* Of course, drawing over stamps (rainbow, sparkles, paintbrush) or
otherwise affecting that part of the canvas (blur, blocks, smudge)
do not affect that stamp's selection shape... but obviously the
chunk of altered canvas will be what we cut/copy/paste.
* There's no way to remember what was 'behind' the stamp
(e.g., if we drew a line, then placed a stamp over part of it, and later
went to select and move or remove the stamp, that part of the line will
have been lost.
* When stamps overlap, selecting the 'older' stamp will only select what's
currently visible (since those pixels in the unseen canvas will have been
lightened by one notch, and then overwritten by black (#000000) pixels.)
* The stamp selector would act like the relatively-recently-added
"select-by-color" tool in The GIMP (and not like the "fuzzy selection"
magic wand tool). Of course, it would be acting on the unseen canvas
(so the colors/shades/etc. of the stamps themselves are not considered.)
This allows all of a non-contiguous stamp to be selected at once.
(Note that a stamp may _become_ non-contiguous due to another stamp being
placed over it more recently...)
This may be a spark of genious, or it might be utter garbage.
What do other people here think of the idea?
(Since Tux Paint is not inherently object-based and does not contain
true layers, this is my concept for providing an arbitrarily large (255)
method for selecting stamps 'after the fact', which has been occasionally
requested by teachers/parents.)
Thanks!!!
-bill!
|