Skip to content
New issue

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

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

Already on GitHub? # 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

其他

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

No branches or pull requests

2 participants