I am applying pattern to SVG, and using toJSON save data in database. When I am trying to load that on canvas using loadFromJSON its throwing error pattern source is undefined.
Here is my code I am using to set pattern.
fabric.Image.fromURL(url,function(img){
img.scaleToWidth(width);
if (angle > 0) img.set('angle', angle);
var patternSourceCanvas = new fabric.StaticCanvas();
patternSourceCanvas.add(img);
patternSourceCanvas.renderAll();
var pattern = new fabric.Pattern({
source: function() {
patternSourceCanvas.setDimensions({
width:img.getWidth() + padding,
height:img.getHeight() + padding
});
patternSourceCanvas.renderAll();
return patternSourceCanvas.getElement();
},
repeat: isrepeat,
src: url,
});
if(left_offset > 0) { pattern.offsetX = (left_offset); } else{ pattern.offsetX = 0;}
if(top_offset > 0) { pattern.offsetY = (top_offset); } else { pattern.offsetY = 0;}
var applyPatternto = 0;
if(activeView != 1){ applyPatternto = $("#sel_applyPatternto").val(); }
currentElement.paths[applyPatternto].setFill(pattern);
canvas.renderAll();
});
to load save JSON and load from JSON I am using following,
var frontJson = JSON.stringify(canvas.toJSON());
while loading from JSON I also add delay to check same issue,
canvas.loadFromJSON(frontJson);
setTimeout(function(){
canvas.renderAll.bind(canvas);
},3000);
Aucun commentaire:
Enregistrer un commentaire