This is the big issue for the next major version, 1.3.
The main idea is to create an SVG representation of the chart on the client side, post it to the server, use ImageMagick or its likes to convert it to any image format and return it or do something else with it. We will offer a cloud service to do this on our servers, as well as server components for clients to install on their servers.
Now the big question is how to generate the SVG. Highcharts started out as SVG/VML experiments three years ago, but the SVG renderer was abandoned mainly due to Safari's lacking support. That has changed now. I can't see any reasons why to use canvas over SVG.
Should we refactor Highcharts to use SVG in compatible browsers? SVG is object oriented, which opens for animation and reuse of elements instead of the double buffering techniques currently used in Highcharts. Memory usage will go down as all the canvas layers disappear. The charts will appear razor sharp when zoomed, which is a common operation on mobile user agents. We can skip the excanvas abstraction as VML is more kin to SVG than Canvas. Native animation is coming to SVG enabled browsers. And finally, Microsoft have joined the SVG workgroup, a signal that SVG will probably be supported by IE in the future.
To generate the SVG in IE, all we have to do is to switch from the default VML renderer to SVG, render the chart in a hidden container and send it off to the server for conversion.
I have started rebuilding Highcharts to SVG as an experiment. See
http://highcharts.com/demo/?prerelease=1.3. This URL sets a cookie to your browser to use the 1.3 prerelease. To unset it, click
http://highcharts.com/demo/?prerelease= . Currently it works in Firefox and Opera. Safari has a problem with alpha transparency. Many features are not yet refactored, so you will experience JavaScript errors and missing features.
Is this the way to go forward with Highcharts? Any comments are welcome.