【问题标题】:Adding mask layer over fabric.js canvas在 fabric.js 画布上添加遮罩层
【发布时间】:2012-01-07 12:58:02
【问题描述】:

我有一个问题,我想在可编辑的fabric.js HTML5 画布上添加圆形遮罩。 本文描述了类似的问题:

Creating an Image Mask with HTML 5 Canvas

我的问题是,当我在 fabric.js 画布上添加这一层时,我的画布在这个透明圆圈内不再可编辑。这意味着顶部元素(掩码)捕获单击/拖动事件,但我想移动此掩码元素下的项目。寻找想法,如何解决这个问题。

【问题讨论】:

    标签: javascript html canvas fabricjs


    【解决方案1】:

    您可以利用对织物中蒙版的内置支持。

    这是一个在 100/100 处创建一个半径为 200 的圆形遮罩的示例:

    var canvas = new fabric.Canvas('...');
    // ...
    canvas.clipTo = function (ctx) {
      ctx.arc(100, 100, 200, 0, Math.PI*2, true);
    };
    

    【讨论】:

    • 关于更多问题,我想指出。如果我尝试剪辑透明的 PNG 蒙版(比圆形更复杂的形状),那么画布对象是可见的,但只有当我使用组选择时。否则透明蒙版仍然“隐藏”它下面的对象。
    • 有趣。如果您在 github (github.com/kangax/fabric.js/issues) 上使用简单的测试用例提交错误,我会调查它。
    • 感谢您的支持!我提交了我的问题:github.com/kangax/fabric.js/issues/90
    • 是否可以将对象的大小调整处理程序放在掩码之外?
    • @kangax 我们需要定义 ctx 吗?使用 getContext()??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 2013-08-25
    相关资源
    最近更新 更多