Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[开源自荐] 基于Canvas前端绘图JavaScript库 #1949

Open
chenshenhai opened this issue Sep 13, 2021 · 0 comments
Open

[开源自荐] 基于Canvas前端绘图JavaScript库 #1949

chenshenhai opened this issue Sep 13, 2021 · 0 comments

Comments

@chenshenhai
Copy link

chenshenhai commented Sep 13, 2021

iDraw.js简介

  • 网站: https://idraw.js.org/
  • 一个基于纯Canvas来实现绘图和操控素材能力的JavaScript库。
  • 可以基于 iDraw.js 进行扩展自定义开发各种可视化操控应用,这里可以参考 idraw.js.org/studio/案例
  • 可以绘制文字、矩形、圆形、图片、HTML片段和SVG文件,并且都可以作为绘图元素生成指定格式的数据。

iDraw.js资料

为啥要开发这个东西

  • 为了实现用纯Canvas能力结合图片、HTML和SVG作为素材 来做绘图工作。
  • 为了试试看单独用 Canvas的2D(二维)API 能作出怎样的多种素材绘图工作。
  • 最后是为了试试看尽量用 Canvas做素材的操控操作。

iDraw.js有哪些功能

  • 支持绘制文字、矩形、圆形、图片、HTML片段和SVG片段 绘图元素

  • 绘制文字
    element-text

  • 绘制矩形
    element-rect

  • 绘制圆形
    element-circle

  • 绘制图片
    element-image

  • 绘制HTML片段
    element-html

  • 绘制SVG片段
    element-svg

支持基于Canvas的可视化操作

iDraw.js有哪些特点

  • 可以绘制文字、矩形、圆形、图片、HTML片段和SVG文件,并且作为绘图元素。
  • 可以直接在Canvas操控以上绘图元素,不用担心CSS和DOM变化的污染问题。
  • Canvas操控绘制,并且是所见即所得可以直接导出绘制的图片结果。
  • 由于可视化操控和图片生成都是基于Canvas,可以尽量减少绘图的浏览器兼容问题。

原理介绍

  • 基于数据驱动来绘制Canvas的图画
  • 基于 requestAnimationFrame 来控制数据变化时候,Canvas的重绘处理
  • 内置一个前端并发队列来处理 图片、HTML和SVG的图片化转换渲染

实际使用案例

  • 一个基于 iDraw.js 实现的UI可视化绘图
  • @idraw/studio 的实现

snapshot-001

snapshot-002

snapshot-003

snapshot-004

snapshot-005

其他

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants