Я нашел способ создать серию изображений с помощью canvg . Чтобы запустить следующую страницу, вы должны использовать модифицированный скрипт canvg.js, чтобы функция рисования была доступна.
Изменения в скрипте canvg.js (v1.0):
В строке 2321 изменить с:
var draw = function() {
чтобы:
svg.draw = function() {
В строке 2361 и 2390 измените с:
draw();
чтобы:
svg.draw();
Мой сценарий генерации:
<html> <head> <script type="text/javascript" src="rgbcolor.js"></script> <script type="text/javascript" src="canvg.js"></script> <script type="text/javascript"> loadSVG = function() { canvg('canvas', '<animated SVG>', { ignoreMouse: true, ignoreAnimation: true }); } function RenderNext(delta) { var c = document.getElementById("canvas"); var svg = c.svg; for (var i=0; i<svg.Animations.length; i++) { svg.Animations[i].update(delta); } svg.draw(); } function CreateImage(imgStr) { var oImg=document.createElement("img"); oImg.setAttribute('src', imgStr); return oImg; } function start() { var c = document.getElementById("canvas"); var result = document.getElementById("resultDiv"); var maxDur = 5; // seconds var framerate = 5; // imgages per second for (var i = 0; i < framerate * maxDur; i++) { RenderNext(1000 / framerate); var oImg = CreateImage(c.toDataURL('image/png')); result.appendChild(oImg); } } </script> </head> <body onload="loadSVG()"> <canvas id="canvas" width="30px" height="30px"></canvas> <p> <input type="button" id="start" value="Start" onclick="start()" /> </p> <div id="resultDiv"> </div> </body> </html>