I am having a problem saving and loading dynamic patterns that are applied to objects.
I have searched online for a solution to this to no avail. I understand why it is happening, but do not understand how to resolve it.
Here is basically what I am doing...
- Applying dynamic pattern onto object.
- Saving the canvas to MongoDB using...'JSON.stringify(canvas.toJSON([...]))'
- Loading the canvas using 'loadFromJSON'
- Getting error 'Uncaught ReferenceError: patternSourceCanvas is not defined'
Everything I have found on this issue dates back to at least 2 years ago (some even 2013), with no solid working example with code.
UPDATE
This is the function I am using to apply patterns on paths...
function applyPatternOnPath(p, image, width, patternRepeat, patternPadding) {
if (patternRepeat) {
var r = 'repeat'
} else {
var r = 'no-repeat'
}
fabric.Image.fromURL(image, function(img) {
var padding = 0 + patternPadding;
img.scaleToWidth(width);
var patternSourceCanvas = new fabric.StaticCanvas();
patternSourceCanvas.add(img);
patternSourceCanvas.renderAll();
var pattern = new fabric.Pattern({
source: function() {
patternSourceCanvas.setDimensions({
width: img.getScaledWidth() + padding,
height: img.getScaledHeight() + padding
});
patternSourceCanvas.renderAll();
return patternSourceCanvas.getElement();
},
repeat: r
});
p.set('fill', pattern);
canvas.renderAll();
}, { crossOrigin: 'Anonymous' });
}