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 监听元素相交(重叠)》

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

代码仓库

相关推荐
SakuraOnTheWay几秒前
拆解一个由 setTimeout 引发的“页面假死”悬案
前端·javascript
渔_几秒前
【已解决】uni-textarea 无法绑定 v-model / 数据不回显?换原生 textarea 一招搞定!
前端
小胖霞1 分钟前
vite+ts+monorepo从0搭建vue3组件库(二):项目搭建
前端·vue.js·前端工程化
JS_GGbond2 分钟前
Vue中级冒险:3-4周成为组件沟通大师 🚀
前端·vue.js
登山者2 分钟前
npm发布报错急救手册:快速解决2FA与令牌问题
前端·npm
小小善后师2 分钟前
按钮太多了?基于ResizeObserver优雅显示
前端
HIT_Weston9 分钟前
57、【Ubuntu】【Gitlab】拉出内网 Web 服务:Gitlab 配置审视(一)
前端·ubuntu·gitlab
用户66006766853910 分钟前
模板字符串 + map:用现代 JavaScript 高效构建动态 HTML
前端·javascript
AY呀11 分钟前
《玩转Vue3响应式:手把手实现TodoList,掌握核心指令》
前端·javascript·vue.js
哆啦A梦158821 分钟前
商城后台管理系统 07 商品列表-分页实现
前端·javascript·vue.js