SVGにパターンを適用し、toJSONを使用してデータベースにデータを保存します。 loadFromJSONを使用してキャンバスにロードしようとしているとき、そのスローエラーパターンのソースは定義されていません。参照エラー:patternSourceCanvasが定義されていません。ファブリックjs loadFromJSON
ここで私はパターンを設定するために使用しているコードです。 JSONからロードしている間、私は次の、
var frontJson = JSON.stringify(canvas.toJSON());
を使用していますJSONからJSONとロード・セーブ、ロードする
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();
});
私も
canvas.loadFromJSON(frontJson);
setTimeout(function(){
canvas.renderAll.bind(canvas);
},3000);