qldraw 是一个基于 tldraw 无限画布 SDK 二次开发的矢量绘图 / 打版工具,界面默认中文,并可打包成自包含的桌面应用(Electron + 冻结的 Python 后端,最终用户无需安装 Python)。
本仓库是 tldraw monorepo 的 fork。qldraw 本身由两部分组成:
- 前端:
templates/vite(基于 tldraw SDK 的 React 应用 + Electron 桌面壳)。 - 矢量化后端:
server(FastAPI + OpenCV 的 Python 服务,负责图片矢量化)。
其余 packages/*、apps/* 等目录均来自上游 tldraw,保持不变。
在 tldraw 默认的画布、形状与工具之上,qldraw 增加了以下能力:
- 图片矢量化:导入位图,经
server/下的 Python 后端(预处理 / 骨架化 / 描摹)转成可编辑的矢量路径;可保留底图并调节其透明度做对照描图。 - 矢量画笔(vec-pen):以贝塞尔节点绘制路径,支持「等宽线条 / 手画线」两种描边模式随时切换。
- 路径节点编辑:选中、删除节点;在某个节点处断开;闭合 / 取消闭合路径;从端点继续绘制;以及把多条端点相接的路径合并成一条。
- 缝份生成(缝):为选中的线条生成缝份偏移路径,可设置偏移量与内 / 外侧,生成后仍可再调整。
- 纸张与画框:A4 等纸张预设、纵 / 横向切换、自定义 mm 尺寸,并能按真实尺寸导出画框。
- 导出:把所选内容 / 整页 / 单个画框导出为 SVG 或 PNG,可设置 DPI、是否包含底图、是否填充背景色。
- 标尺、可拖拽面板、本地持久化等界面增强。
更详细的功能说明、桌面应用打包流程与常见问题,见 templates/vite/README.md。
需要 Node.js ^20.0.0。克隆仓库后先启用 corepack 以使用正确的 yarn 版本:
npm i -g corepack在仓库根目录安装依赖:
yarn仅启动前端(图片矢量化等依赖后端的功能不可用):
yarn dev-template vite # 然后打开 http://localhost:5173/启动完整应用(Electron 同时拉起前端与 Python 后端):
cd templates/vite
yarn electron:dev打包桌面应用(macOS / Windows)的步骤见 templates/vite/README.md。
qldraw 基于 tldraw SDK 构建。tldraw SDK 遵循 tldraw 许可协议:开发阶段可自由使用,正式生产环境需要 许可证密钥。
tldraw 名称与 logo 是 tldraw Inc. 的商标,使用请参考其 商标指南。