(No, I haven't seen any Ken Burns documentaries (AFAIK), but his name
comes up all the time when googling for stuff to do this kind of
animation I am talking about here. He probably is known to the
Americans on this list?)

I have recently toyed with the thought of writing a tool to produce
(low (TV) resolution) animations (for writing to VCD or DVD, mainly)
from (high resolution) still images. I.e. if you have some
multi-megapixel image, with the tool you could produce animations
where you zoom in/out, pan the over some straight or curved path,
rotate the viewport, etc. Seems like a nice way to put a bit more
"life" into your digital image slideshows.

(For a simple and small commercial standalone tool that does this (on
Windows), check out MovingPicture from Stage Tools,
www.stagetools.com. Demo version downloadable.)

Would it be better to write this as a GIMP plug-in, or a standalone

If written as a GIMP plug-in, it seems natural to use GIMP's Bezier
paths to define the path along which the "virtual camera" moves. Lots
of code saved there. As a plug-in, it would perhaps most closely
resemble the "Easter Egg" plug-ins as it isn't really a filter,
doesn't render anything into a new image, nor does is save or load
images. Hmm.

The "Ken Burns" plug-in would need to associate more data with the
path. The path nodes would correspond to keyframes between which the
tool would interpolate zooms and camera movements.  Each keyframe
would have an associated time values and "virtual camera" orientation
and size vector. (To be able to zoom or rotate without moving the
virtual camera, path nodes might have several associated keyframes.)

The plug-in would provide a GUI to define the keyframes and their
attributes, and a preview window, but not do the actual rendering of
the animation to AVI, MPEG or whatever format itself, just output a
"recipe" that would then be used by a separate batch-oriented program
to actually render the animation. It should also be possible to load
such a saved recipe and continue working on it, of course.

One difficult thing is how to handle the fact that it is possible that
the user edits the path while the "Ken Burns" plug-in is active and
already has fetched its data with gimp_path_get_points().

Should there be some way for plug-ins to register interest in getting
callbacks when paths nodes are moved/added/deleted, etc?  Other
plug-ins for new kinds of functionality might similarily be interested
in getting callbacks when selections are modified, etc. Is there
currently any way for plug-ins to get asynchronous callbacks for
events like these?


Gimp-developer mailing list

Reply via email to