Canvas类库-Fabric.js
Fabric.js 是一个在服务器端运行的 Node.js 扩展模块,用于在 Web 上绘制各种图形的 JavaScript 绘图库,采用MIT协议授权。
Fabric.js 是一款简单而强大的 JavaScript Canvas 库,在 HTML5 Canvas 元素之上提供了互动的对象模型,同时还包含 Canvas-to-SVG 解析器。使用它可以创建和填充画布上的对象,从简单的几何图形到成百上千路径组成的复杂图形。可以通过鼠标轻松的移动、缩放和旋转这些对象,修改它们的属性(颜色、透明度,层叠顺序)等等。

示例代码:
var fabric = require('fabric').fabric,
canvas = fabric.createCanvasForNode(200, 200);
canvas.add(new fabric.Rect({
top: 100,
left: 100,
width: 100,
height: 50,
angle: 30,
fill: 'rgba(255,0,0,0.5)'
}));
var out = require('fs').createWriteStream(__dirname + '/rectangle.png'),
stream = canvas.createPNGStream();
stream.on('data', function(chunk) {
out.write(chunk);
});
最新版本:6.6
2025年2月发布的本版本更新内容如下:
Typo:修复 Id -> If BorderProps.ts Types description
chore(test):为 color.test.ts 添加测试
feat:添加 method toBlob
允许 PencilBrush 子类访问字段
fix(image.ts):在 setElement 函数中使访问 HtmlImage 的 classList 成为可选的,以防止在使用 node canvas 图像时出现错误
feat():将 webp 添加到 ImageFormat
项目主页:https://fabric5.fabricjs.com/
Fabric.js 是一款简单而强大的 JavaScript Canvas 库,在 HTML5 Canvas 元素之上提供了互动的对象模型,同时还包含 Canvas-to-SVG 解析器。使用它可以创建和填充画布上的对象,从简单的几何图形到成百上千路径组成的复杂图形。可以通过鼠标轻松的移动、缩放和旋转这些对象,修改它们的属性(颜色、透明度,层叠顺序)等等。

示例代码:
var fabric = require('fabric').fabric,
canvas = fabric.createCanvasForNode(200, 200);
canvas.add(new fabric.Rect({
top: 100,
left: 100,
width: 100,
height: 50,
angle: 30,
fill: 'rgba(255,0,0,0.5)'
}));
var out = require('fs').createWriteStream(__dirname + '/rectangle.png'),
stream = canvas.createPNGStream();
stream.on('data', function(chunk) {
out.write(chunk);
});
最新版本:6.6
2025年2月发布的本版本更新内容如下:
Typo:修复 Id -> If BorderProps.ts Types description
chore(test):为 color.test.ts 添加测试
feat:添加 method toBlob
允许 PencilBrush 子类访问字段
fix(image.ts):在 setElement 函数中使访问 HtmlImage 的 classList 成为可选的,以防止在使用 node canvas 图像时出现错误
feat():将 webp 添加到 ImageFormat
项目主页:https://fabric5.fabricjs.com/