fabric.js操作canvas画不规则图形时去掉fill填充颜色

我是用这玩意画图片,再在图片上画一些不规则框框,后面还要加文字上去,但是拿到的例子都是有填充颜色,去掉 fill后填充颜色变成黑色,我想要图形内部无填充变得透明

原因:fabric会有fill默认值#000000也就是黑色

 解决方法:把fill设置为false或者"transparent"即可,代码如下

    this.myCanvas = new fabric.Canvas("myCanvas");
var path = new fabric.Path("M 20 20 L 100 80 L 150 100 z");
    path.set({ stroke: "red", strokeWidth: 2, fill: false });
    this.myCanvas.add(path);
var path1 = new fabric.Path("M 300 100 L 500 180 L 400 400 z");
    path1.set({ stroke: "red", fill: "transparent" });
    this.myCanvas.add(path1);

结果:

 

### 使用 Fabric.js 进行 Canvas 操作图形编辑 #### 创建布实例 为了使用 Fabric.js 开始操作 Canvas,首先需要创建一个 `fabric.Canvas` 实例。这一步骤初始化了一个可交互的布环境。 ```javascript var canvas = new fabric.Canvas('canvas'); ``` 这段代码中的 `'canvas'` 参数是指定 HTML 页面中 `<canvas>` 元素的 ID[^1]。 #### 添加矩形到布 接下来展示如何向布添加简单的几何形状——比如红色填充的矩形: ```javascript var rect = new fabric.Rect({ width: 100, height: 100, fill: 'red' }); canvas.add(rect); ``` 上述 JavaScript 片段定义并设置了矩形属性,并将其加入到了之前创建好的布当中[^3]。 #### 绘制路径与自定义样式 对于更复杂的图形绘制需求,可以通过定义路径来实现。下面的例子展示了如何去掉不规则图形内部的颜色填充效果: ```javascript this.myCanvas = new fabric.Canvas("myCanvas"); var path = new fabric.Path("M 20 20 L 100 80 L 150 100 z"); path.set({ stroke: "red", strokeWidth: 2, fill: false // 或者设置为 "transparent" }); this.myCanvas.add(path); // 另一种方式 var path1 = new fabric.Path("M 300 100 L 500 180 L 400 400 z"); path1.set({ stroke: "red", fill: "transparent" }); this.myCanvas.add(path1); ``` 这里不仅实现了无填充线条轮廓图元的构建,还说明了两种不同的去除填充的方法:一是直接设为布尔值 `false`;二是指定透明度字符串 `"transparent"`[^4]。 #### SVG 导出功能 除了基本绘图外,Fabric.js 支持将当前布状态导出成标准矢量图形文件格式 (SVG),这对于保存作品或与其他应用程序共享非常有用。 ```javascript canvas.toSVG(); ``` 此命令会返回整个场景作为 XML 字符串表示形式,便于进一步处理或存储。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值