seth_spin - Seth Spin


<Image>/Filters/Animation/Seth Spin...


Take one image. Spin it about the horizontal axis, and end up with another image. I made it for easy web buttons.


  [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],


  [PF_IMAGE, "output","Output image"],




 Note: Seth has transferred the maintainer `position' to me, so bother me
 instead of him now :-)
       - Steinar H. Gunderson <>

 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

  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
 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


Seth Burgess <>




Distributed under the same terms as Gimp-Perl.