Essayez de convertir SVG en canvas avec fabric.js (voici un Démonstration (dans lequel le svg est converti en toile en temps réel, lorsque vous cliquez sur un bouton dans la barre latérale).
Fabric ne supporte pas toutes les fonctionnalités de SVG mais devrait fonctionner pour les cas simples.
Voici un exemple d'utilisation de loadSVGFromURL
.
1) Vous devez avoir l'élément <canvas> :
<canvas id="my-canvas"></canvas>
2) Initialiser fabric.Element
de la toile :
var canvas = new fabric.Element('my-canvas');
3) Récupérer le SVG via 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);
});