You can also try the following: http://jsfiddle.net/ZxYCP/198/

var clipPoly = new fabric.Polygon([ { x: 180, y: 10 }, { x: 300, y: 50 }, { x: 300, y: 180 }, { x: 180, y: 220 } ], { originX: 'left', originY: 'top', left: 180, top: 10, width: 200, height: 200, fill: '#DDD', strokeWidth: 0, selectable: false });
You can simply use Polygon for the clip. The answer is based on @natchiketa's idea in this question. Several clipping areas on Fabric.js canvas
source share