I trust this is an appropriate place; this is my first time on this listserv.
I want to add the ability to export an animation in SVG format so that I
have a vectorized animation. From what I've been able to discern, this
hasn't been done yet. I may have many questions related to this, so if
someone is familiar with this section of the code and would be able to
answer additional questions in the future, please let me know.
My first hurdle is how to extract each frame of the animation. I believe I
need to make a new class and inherit MovieWriter. However, MovieWriter is
setup to write an image to a file for each frame, then stitch those images
together (through a pipe to an external tool). But in order to add
animation to the SVG, it will be much easier for me to have an XML tree as
an object for each frame, rather than an XML file, so that I do not need to
re-parse the XML.
Here is where I am at:
* I've modified backend_svg.py:
- an XMLBuilder class now builds the tree from the renderer (previously,
the XML data was written directly through XMLWriter)
- currently, I have the svg backend (mostly) backward compatible so that I
can write images to file in the normal way. I have not run the example
tests yet, but need to eventually.
- I added a draw method to FigureCanvasSVG which returns the XML tree
* I've modified animation.py:
- added SVGWriter class which inherits MovieWriter
- SVGWriter modifies setup method so that an external process is not
- SVGWriter.grab_frame method grabs the XML tree (rather than printing to
a file) via FigureCanvasSVG.draw
- SVGWriter.cleanup goes through the XML trees and adds 'set' XML elements
to create the animation
* basically I copy the main group of each frame to a new XML tree and
make it's "opacity" CSS attribute 1 for the duration of that frame. It is a
hack to get the rest working...I'd like to actually go into the tree and
only change the data that changes in each frame.
I am at the point where I can get an SVG animation out of the moviewriter
However, FigureCanvas.draw does not seem the appropriate place for this.
Case in point, the background is the default gray rather than white (which
you get if you savefig). Any thoughts on the best way to do this?
View this message in context: http://matplotlib.1069221.n5.nabble.com/animation-in-SVG-tp45021.html
Sent from the matplotlib - devel mailing list archive at Nabble.com.