一、基础介绍

FabricJS.com 是一个便捷功能强大的 Javascript HTML5 画布库。它也是一个 SVG-to-canvas 解析器。截止到文章撰写前,它在Github已达到 ⭐ 22.4k
笔者使用 fabric.js 对云助理微应用 ‘展业工具’ 进行新版本开发,最终上线版本,并获得客户好评。

二、优势

Canvas功能很强大,能够创建出类型丰富的图形,不过仅仅简单的绘制图形已经不能满足需求,要对图形进行一些交互或调整画布内容,canvas就无法胜任这些工作了。
Fabric.js在延续canvas令人惊叹的绘制能力的基础上,提供了一个缺失的对象模型,用于管理画布的状态和渲染,将画布元素视为对象,通过对象来操控画布。

三、功能介绍

Fabric.jsCanvas画布 的基础上对 画布元素 提供了 交互式对象模型 ,可以实现更加丰富的图形绘制和操作,如:

  1. 在画布上创建各种类型的图形文本图片对象
  2. 支持缩放、移动、旋转、分组对象等操作
  3. 支持包括JPG、PNG、JSON和SVG格式
  4. 可创建动画
  5. ….

你可以轻松地绘制各种图形、线条、图片,对它们进行拖拽、旋转、形变等图形变换操作,并且支持丰富的事件方法,针对不同的操作进行响应。

四、基础结构

对fabric.js源码进行分析,我们可以获取fabric的基础结构,下面仅展示核心功能部分
Fabric.js简介 - 图1
Canvas 类 用于创建画布
Object 类 是物体基类,包括基本图形、控制点、变换等内容
Intersection类 用于进行对象 碰撞/相交 判断

可绘制的对象类型?