@entroia/poster-editor
跨 Web 与小程序的 Schema 驱动图片编辑器核心。仓库名是工程容器,实际包名为 @entroia/poster-editor。公共源码、渲染器、小程序类型入口和声明文件均由 TypeScript 构建,包同时提供 ESM、CommonJS 与 .d.ts。
核心采用非破坏性 PosterDocument:背景、分组、图片、矢量、文字、贴纸和笔刷均为可独立绑定工具与效果的图层。业务图谱先转换为通用 vector/group 节点,编辑器不包含 PK 规则。
首版包含稳定逐字旋转、可伸缩花字背景、2–5 图布局、Tag 布尔筛选、Adjust 参数约定与包括花朵 Stamp Brush 在内的笔刷描述。xhs/index.cjs 提供无需 DOM 的小程序兼容入口。
工具不写死图层数量:document.bindings.tools 可用明确 layerIds 或动态 Tag(例如 base-{user.id})声明 Filter、Crop、Adjust 等工具修改哪些层。PK 项目可以固定为底图、晋级图、文字、贴纸和笔刷五组;其他业务可以复用同一 Schema 增减图层或把业务数据 URL 绑定成 /example/{id}。
花字按 documentSeed + layerId + 字符逻辑位置 哈希出受 maxAngle 限制的角度,因此重绘、导出和服务端复现时保持一致;背景色块可直接随测量宽度增长,图片背景使用 capInsets 九宫格拉伸,边角和装饰不会变形。
花花笔刷属于 Stamp Brush:沿采样后的路径重复绘制透明花朵素材,而不是一条特殊颜色的线。每个落点可保存尺寸、角度和素材 ID,因此撤销、重放与跨端导出是确定的。
开发时使用 npm install、npm run check、npm test 和 npm run build。构建产物位于 dist/;现有小程序若尚未接入包构建流程,可继续使用 ./xhs-legacy 兼容入口。