setPattern examples
Used in documentation (jsdoc tag)
by joepenzo
HTML
<script src="https://rawgithub.com/kangax/fabric.js/master/dist/fabric.js"></script>
<canvas id="c" width="400" height="400"></canvas>
<button id="toggle">Toggle repeat</button>
CSS
canvas {
border: 1px solid #999;
}
button {
margin-top: 20px;
}
JavaScript
// Do some initializing stuff
fabric.Object.prototype.set({
transparentCorners: false,
cornerColor: 'rgba(102,153,255,0.5)',
cornerSize: 12,
padding: 5
});
// initialize fabric canvas and assign to global windows object for debug
var canvas = window._canvas = new fabric.Canvas('c');
var rect = new fabric.Rect({
width: 150,
height: 150,
fill: '#29477F'
});
canvas.add(rect);
rect.center().setCoords();
fabric.util.loadImage('https://images.unsplash.com/photo-1497366811353-6870744d04b2?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1050&q=80', function (img) {
rect.setPatternFill({
source: img,
repeat: 'repeat'
});
canvas.renderAll();
});
fabric.util.addListener(document.getElementById('toggle'), 'click', function () {
var obj = canvas.item(0);
if (!obj.fill instanceof fabric.Pattern) return;
obj.fill.repeat = obj.fill.repeat === 'repeat'
? 'repeat-x'
: obj.fill.repeat === 'repeat-x'
? 'repeat-y'
: obj.fill.repeat === 'repeat-y'
? 'no-repeat'
: 'repeat';
canvas.renderAll();
});