盘点10个基于 Canvas 的优秀开源项目!

简介: 盘点10个基于 Canvas 的优秀开源项目!

在 Web 开发中,Canvas 是一个强大的绘图工具,可以实现各种有趣的交互效果和动态图形。本文将盘点 10 个基于 Canvas 的开源项目,旨在为提供开发灵感和思路,以便更好地探索并应用 Canvas 技术!

canvas-editor

canvas-editor是一个基于canvas/svg的富文本编辑器,类似于 word。其具有以下特点:

  • 所见即所得:类word可分页,所见即所得
  • 轻量的数据结构:一段JSON即可呈现复杂样式
  • 丰富的功能:支持常见富文本操作、表格、水印、控件、公式等
  • 使用方便:官方发布核心npm包,菜单栏、工具栏可自行维护
  • 灵活的开发机制:通过接口可获取生命周期、事件回调、自定义右键菜单、快捷键等
  • 完全类型化的API:灵活的 API 和完整的 TypeScript 类型

1.webp.jpg

Github:github.com/Hufe921/can…

lucky-canvas

基于 TS + Canvas 开发的【大转盘 / 九宫格 / 老虎机】抽奖插件,一套源码适配多端框架 JS / Vue / React / Taro / UniApp / 微信小程序等,奖品 / 文字 / 图片 / 颜色 / 按钮均可配置,支持同步 / 异步抽奖,概率前 / 后端可控,自动根据 dpr 调整清晰度适配移动端。12.webp.jpgGithub:github.com/buuing/luck…

Excalidraw

Excalidraw是一款开源的在线白板工具,主要用于创建简单直观的图形和草图,支持共享和协作。以下是 Excalidraw 的主要特点:

  • 简单易用:具有直观简单的界面和操作方式,用户可以轻松创建和编辑图形,并实现各种设计需求。
  • 实时协作:支持多人实时协作,用户可以与其他人一起编辑和讨论,在线完成协作任务。
  • 自由绘制和对象管理:提供了自由绘制、文本框、箭头、线段、矩形、椭圆、图标等多种基本对象,并支持对这些对象进行移动、复制、旋转、缩放、对齐等操作,帮助用户实现更为精细的设计。
  • 高度灵活性:支持导出为SVG、PNG、Clipboard等多种格式,方便用户进行分享和保存。

11.webp.jpgGithub:github.com/excalidraw/…

fireworks-js

fireworks-js 是一个基于 Canvas 的动画库,用于在网页上制作烟花特效。该库的特点如下:

  • 轻量级:fireworks-js 体积小,不依赖其他库或框架,易于集成。
  • 易于使用:只需几行代码就可以创建出炫目的烟花特效,具有良好的可定制性和可扩展性。
  • 动画效果逼真:fireworks-js 采用粒子系统实现烟花特效,能够模拟出逼真的爆炸、飞溅和星光等效果。
  • 浏览器兼容性良好:可以在主流的现代浏览器上运行,支持多种设备和分辨率,包括移动端。

该项目提供了多种框架的实现:10.webp.jpg9.webp.jpgGithub:github.com/crashmax-de…

Luckysheet

Luckysheet ,一款纯前端基于 Canvas 的类似 excel 的在线表格,功能强大、配置简单、完全开源。其具有以下功能:

  • 格式:样式、条件格式、文本对齐和旋转、文本截断、溢出、自动换行、多种数据类型、单元格分割样式
  • 单元格:拖放、填充柄、多选、查找和替换、定位、合并单元格、数据验证
  • 行和列:隐藏、插入、删除行或列、冻结和拆分文本
  • 操作:撤消、重做、复制、粘贴、剪切、热键、格式刷、拖放选择
  • 公式和函数:内置、远程和自定义公式
  • :过滤、排序
  • 增强功能:数据透视表、图表、评论、协同编辑、插入图片、矩阵计算、截图、复制为其他格式、EXCEL导入导出等。

Github:github.com/dream-num/L…

x-spreadsheet

x-spreadsheet 是一个基于 Web(es6) canvas 构建的轻量级 Excel 开发库。其具有以下特点:

  • 轻量级:完整功能,包含所有插件。代码打包后只不到 200kb
  • 易于使用:如果只需要一些简单的功能可以零配置
  • 数据驱动:调整数据非常的简单快捷

7.webp.jpgGithub:github.com/myliang/x-s…

rough

Rough.js 是一个轻量级的(大约 8k),基于 Canvas 的可以绘制出粗略的手绘风格的图形库。该库提供绘制线条、曲线、弧线、多边形、圆形和椭圆的基础能力,同时支持绘制 SVG 路径。除此之外,Rough.js 还提供了大量的可自定义选项,可以调整线宽、线条颜色、填充颜色、字体样式、背景颜色等,以使图形更加个性化。6.webp.jpgGithub:github.com/rough-stuff…

Signature Pad

Signature Pad 是一个基于 Canvas 实现的签名库,用于绘制签名。它可以在所有现代桌面和移动浏览器中使用,不依赖于任何外部库。Signature Pad提供了许多可自定义的选项,如笔画颜色、粗细、背景色、画布大小、签名格式等,可以轻松实现不同的签名风格和功能。5.webp.jpg

Github:github.com/szimek/sign…

canvas-confetti

canvas-confetti 是一个基于 Canvas 的库,用于在 Web 页面中实现炫酷的彩色纸屑动画效果。它实现了高性能、流畅的纸屑动画效果,同时兼容各种现代浏览器。提供了许多可自定义的选项,如纸屑颜色、形状、数量、速度、角度、发射器位置等,可以轻松实现不同的纸屑效果。并支持多种触发方式,如点击按钮、滚动页面、定时触发等,可根据需求进行定制。4.webp.jpgGithub:github.com/catdad/canv…

html2canvas

html2canvas是一个JavaScript库,用于将HTML页面中的任何DOM元素(包括画布、图片、视频等)转换为Canvas图像,从而实现截屏、生成PDF或者图片等功能。以下是html2canvas的主要特点:

  • 简单易用:可以快速、简单地生成Canvas图像,不需要依赖其他库,在页面中直接引用即可。
  • 浏览器兼容性良好:支持各种现代浏览器,包括Chrome、Firefox、Safari、Edge和Opera等主流浏览器,并且可以在桌面和移动设备上使用。
  • 配置灵活性高:提供了许多选项,如截图区域、画布大小、背景色、文字渲染等,用户可以根据具体需求自由配置。
  • 支持生成PDF、图片等多种格式:可以将Canvas图像导出为PDF、PNG、JPEG等多种格式,方便用户进行分享和保存等操作。

3.webp.jpgGithub:github.com/niklasvh/ht…

QRCanvas

QRCanvas 是一个基于 canvas 的 JavaScript 二维码生成工具。其具有以下特点:

  • 仅依赖 canvas,兼容性好
  • 简单,仅仅是需要一些数据的配置
  • 定制化功能丰富
  • 支持 Node.js
  • 方便在 React 和 Vue 中使用
  • 支持所有主流的浏览器

2.webp.jpgGithub:github.com/gera2ld/qrc…

相关文章
|
移动开发 缓存 前端开发
推荐一大波让你直呼哇塞的Canvas库【值得收藏】
推荐一大波让你直呼哇塞的Canvas库【值得收藏】
6380 0
推荐一大波让你直呼哇塞的Canvas库【值得收藏】
|
资源调度 前端开发 JavaScript
安利一款基于canvas/svg的富文本编辑器-支持在线导出PDF、DOCX
高性能:利用Canvas和SVG进行图形和矢量图形的渲染,提供高性能的绘图能力。 可扩展性:Canvas-Editor是一个开源项目,支持通过插件机制扩展编辑器的功能,如DOCX、PDF导出、表格分页等。 丰富的文本编辑功能:支持多种文本编辑操作,如插入表格、分页、性能优化等。
1706 0
|
人工智能 自然语言处理 JavaScript
Univer:开源全栈 AI 办公工具,支持 Word、Excel、PPT 等文档处理和多人实时协作
Univer 是一款开源的 AI 办公工具,支持 Word、Excel 等文档处理的全栈解决方案。它具有强大的功能、高度的可扩展性和跨平台兼容性,适用于个人和企业用户,能够显著提高工作效率。
2283 9
Univer:开源全栈 AI 办公工具,支持 Word、Excel、PPT 等文档处理和多人实时协作
|
缓存 资源调度 JavaScript
Vue集成Excalidraw实现在线画板功能
Excalidraw是一款开源在线绘图工具,适用于白板、思维导图、原型设计等场景。支持手绘风格、多种图形元素、导出功能及多人协作,深受开发者喜爱。本文档介绍了如何在Vue项目中集成Excalidraw,包括安装依赖、配置文件修改、页面添加等步骤,帮助开发者快速上手。
2063 0
Vue集成Excalidraw实现在线画板功能
|
开发框架 自然语言处理 API
基于RAG搭建企业级知识库在线问答
本文介绍如何使用搜索开发工作台快速搭建基于RAG开发链路的知识库问答应用。
9330 17
|
人工智能 监控 Java
SpringBoot实战(十三):Spring Boot Admin 动态修改日志级别
SpringBoot实战(十三):Spring Boot Admin 动态修改日志级别
870 0
|
JavaScript 前端开发
【Vue 3】如何实现动态表单生成器的拖拽功能?
【Vue 3】如何实现动态表单生成器的拖拽功能?
|
JavaScript 数据安全/隐私保护 开发者
开源图片编辑器推荐-可用于海报编辑、商品设计、封面设计、标签设计等场景
推荐开源图片编辑器,基于fabric.js和Vue开发,适合海报、Logo等设计场景。拥有4.4K GitHub Stars,特性包括自定义字体、素材、模板,支持插件扩展、右键菜单及快捷键。提供图片滤镜、裁剪、拖拽、PSD导入、水印设置和分类素材管理。适用于非专业设计者,易于二次开发。
546 0
开源图片编辑器推荐-可用于海报编辑、商品设计、封面设计、标签设计等场景
|
前端开发 JavaScript 架构师
Webpack模块联邦:微前端架构的新选择
Webpack的模块联邦是Webpack 5引入的革命性特性,革新了微前端架构。它允许独立的Web应用在运行时动态共享代码,无需传统打包过程。基本概念包括容器应用(负责加载协调)和远程应用(独立应用,可暴露模块)。实现步骤涉及容器和远程应用的`ModuleFederationPlugin`配置,以及在应用间导入和使用远程模块。模块联邦的优势在于独立开发、按需加载、版本管理和易于维护。通过实战案例展示了如何构建微前端应用,包括创建容器和远程应用,以及消费远程组件。高级用法涉及动态加载、路由集成、状态管理和错误处理。
440 3
|
前端开发 JavaScript
canvas系列教程01——直线、三角形、多边形、矩形、调色板
canvas系列教程01——直线、三角形、多边形、矩形、调色板
476 0