Fabricjs。如何插入带有圆形边框的图像?

use*_*079 4 canvas fabricjs

需要将图像插入到fabric js 并为其制作圆角边框。(不是整个画布)在此处阅读答案:

Fabric.js 剪辑画布(或对象组)到多边形

但我无法复制那个人所做的剪辑。

var clip = canvas.item(0);
var obj = canvas.item(1);
canvas.remove(clip);
obj.clipTo = function(ctx) {
  clip.render(ctx);
};
Run Code Online (Sandbox Code Playgroud)

试图制作 svg 矩形并将图像剪辑到它:http : //jsfiddle.net/ZxYCP/657/

我得到了意想不到的行为......

jan*_*usz 7

这是一个如何完成的示例:

var canvas = new fabric.Canvas('c');

function roundedCorners(ctx) {
  var rect = new fabric.Rect({
    left:0,
    top:0,
    rx:20 / this.scaleX,
    ry:20 / this.scaleY,
    width:this.width,
    height:this.height,
    fill:'#000000'
  });
  rect._render(ctx, false);
}

fabric.Image.fromURL('http://fabricjs.com/lib/pug.jpg', function(img) {
  img.set({
    angle: 45,
    width: 500,
    height: 500,
    left: 140,
    top: 100,
    scaleX: 0.3,
    scaleY: 0.3,
    clipTo: roundedCorners.bind(img)
  });
  canvas.add(img).setActiveObject(img);
});
Run Code Online (Sandbox Code Playgroud)

请参阅此处的小提琴:http : //jsfiddle.net/ZxYCP/659/