NAME
seth_spin - Seth Spin
SYNOPSIS
<Image>/Filters/Animation/Seth Spin...
DESCRIPTION
Take one image. Spin it about the horizontal axis, and end up with another image. I made it for easy web buttons.
PARAMETERS
[PF_DRAWABLE, "destination","Drawable to spin to"],
[PF_INT8, "frames", "How many frames to use", 16],
[PF_COLOR, "color", "Color to use for background if not transparent", [0,0,0]],
[PF_SLIDER, "perspective", "How much perspective effect to get", 40, [0,255,5]],
[PF_TOGGLE, "spinback", "Spin back" , 1],
[PF_TOGGLE, "indexed", "Convert to indexed", 1],
RETURN VALUES
[PF_IMAGE, "output","Output image"],
IMAGE TYPES
*
HISTORY
Note: Seth has transferred the maintainer `position' to me, so bother me
instead of him now :-)
- Steinar H. Gunderson <sgunderson@bigfoot.com>
This one's all mine. Well, its GPL/Artistic but I'm the author and creator.
You need gimp 1.1 or better for this; too much has changed, and I don't think
1.0.x had a perspective PDB function anyway
Here's the working theory on this:
There's a function called spinlayer which will spin from a spinlayer to a
destlayer. It won't touch those 2 layers at all, and will leave its results
on the top of the layer stack.
If the user wants to spin back, it will take 1/2 the layers otherwise required
per call to the spin_layer, so that the number of total layers comes out the
same.
The main function makes a new image, copies the source and destination onto it
with appropriate offsets, and passes this image with the bottom 2 layers to
spin_layer. At the end, remove the original 2 layers, since they won't be
needed, and add in some Layer comments for timing your gif.
Many thanks to Steinar and Marc, for expressing an interest in the
script that kept me going, and to Steinar in particular for helping me
track down why the script was crashing gimp (hint - don't make layers
of height=0, and if you do make sure you're logging to console since
the Gtk messagebox will never show up due to a rapid segfault).
Just a comment on that: We fixed the bug, so height=0 no longer segfaults, but
gives the error message it should. However, if GIMP segfaults, you should try
logging to console to make sure you get all applicable error messages. This
will make it _much_ easier to find the bug. - Steinar
Revision History:
1.0 - Initial (too early) release
1.1 - Second (still ugly) release: Made the perspective setting actually do
something
1.2 - Used some of the convienence functions, and made things a little eaiser
from the user's standpoint too. Also moved it from the
Filters->Animations-> menu to Xtns->Animations. I think its
clearer whats going on this way. It also works w/ any 2 layers now.
1.5 - Some debugging by Steinar and myself to make it work again.
1.6 - Moved some renaming into the main loop, more cleanups.
1.7 - Fixed up set_name to drawable_set_name
Seth Burgess
<sjburges@gimp.org>
AUTHOR
Seth Burgess <sjburges@gimp.org>
DATE
1.7
LICENSE
Distributed under the same terms as Gimp-Perl.