Попробуйте преобразовать SVG в canvas с помощью fabric.js (вот демоверсия , в которой svg преобразуется в canvas в режиме реального времени, когда вы нажимаете кнопку на боковой панели).
Fabric не поддерживает все функции SVG, но она должна работать в простых случаях.
Вот пример использования loadSVGFromURL
.
1) Вам потребуется элемент :
<canvas id="my-canvas"></canvas>
2) Инициализировать fabric.Element
из холста:
var canvas = new fabric.Element('my-canvas');
3) Извлечь SVG через XHR:
canvas.loadSVGFromURL('path_to_your_shape.svg', function(objects, options) {
// `objects` is now an array of fabric objects representing
// svg shapes from the document
// if it's one shape, we'll just work with that
// if it's more than one — we'll create a unified group out of it,
// using `fabric.PathGroup`
var loadedObject = objects.length > 1
? new fabric.PathGroup(objects, options)
: objects[0];
// we can now change object's properties like left, top, angle, opacity, etc.
// this is not necessary, of course
loadedObject.set({
left: 123,
top: 321,
angle: 55,
opacity: 0.3
});
// and add it to canvas
canvas.add(loadedObject);
});