Fabric.js 图案笔刷

本文简介

带尬猴,我是德育处主任

Fabric.js 有图案画笔功能,这个功能可以简单理解成"刮刮卡"效果。

如果只是看 Fabric.js 文档可能还不太明白 图案画笔 PatternBrush 是如何使用。

本文将讲解如何配置这款画笔的基础属性。

图案画笔(笔刷) PatternBrush

先看看效果

使用图案画笔

图案画笔(笔刷)的用法其实和普通的画笔差不多,只是多了个配置图片的操作。

核心的操作有以下几步:

  1. 画布开启绘图模式
  2. 加载图片
  3. 创建图案画笔
  4. 设置图案画笔的 source 指向图片
  5. 使用图案画笔
html 复制代码
<canvas id="c" style="border: 1px solid #ccc;"></canvas>

<script>
  const canvas = new fabric.Canvas('c', {
    width: 400,
    height: 400,
    isDrawingMode: true // 1. 开启绘图模式
  })

  // 2. 创建并加载图片
  let img = new Image();
  img.src = './bubble.jpg'

  // 必须等图片加载完再进行下一步操作
  img.onload = function() {
    // 3. 创建图案画笔
    let texturePatternBrush = new fabric.PatternBrush(canvas)
    // 4. 设置图案画笔的 `source` 指向图片
    texturePatternBrush.source = img
    // 5. 使用图案画笔
    canvas.freeDrawingBrush = texturePatternBrush
  }
</script>

这么简单几步就完成了,但此时你应该已经发现,这个画笔是不是太小了?

设置画笔大小

可以通过设置画笔的 width 来修改画笔大小。

js 复制代码
// 省略部分代码
img.onload = function(oImg) {
  let texturePatternBrush = new fabric.PatternBrush(canvas)
  texturePatternBrush.source = img
  texturePatternBrush.width = 50 // 设置画笔大小
  canvas.freeDrawingBrush = texturePatternBrush
}

最后要注意一点:需要在图片加载完成后才去设置画笔!!!

代码仓库

图案画笔(笔刷)

推荐阅读

在推荐阅读之前我要推荐一款游戏:《冲就完事模拟器》

👍《Fabric.js 拖放元素进画布》

👍《Fabric.js 限制边框宽度缩放》

👍《Fabric.js 监听元素相交(重叠)》

点赞 + 关注 + 收藏 = 学会了

代码仓库

相关推荐
随风一样自由7 小时前
【前端独角兽】刚进入前端领域的前端开发用jQuery还是Vue3?
前端·javascript·vue3·jquery
IMPYLH8 小时前
HTML 的 <data> 元素
前端·html
YHHLAI8 小时前
[特殊字符] 面试中的 Promise —— 从入门到精通
前端·javascript·面试
kyriewen10 小时前
我扒了 GPT-5.6 的全部编程跑分——有一项 OpenAI 没敢放出来
前端·gpt·ai编程
前端H11 小时前
微前端 v3 架构升级:从加载隔离到状态协同
前端·架构·状态模式
陆枫Larry12 小时前
小程序包体积优化:用 SVG 图片替换 iconfont,并保留 CSS 控色能力
前端
环境栈笔记13 小时前
多账号浏览器选型检查清单:Profile、权限、Session 和任务日志怎么评估
前端·人工智能·后端·自动化
前端炒粉13 小时前
手写promise
java·前端·javascript
LaughingZhu13 小时前
智能体经典范式构建:ReAct、Plan-and-Solve 与 Reflection
前端·react.js·前端框架
jsonbro13 小时前
手把手带你实现发布订阅模式
前端·vue.js·设计模式