小程序 Canvas 预览与视觉验证
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3ff3c268/miniprogram-canvas-verify。
技能介绍
问题:Canvas 改样式只能「凭感觉」
微信小程序里用 Canvas 画网格、排字帖时,改 lineWidth、字号或配色后,很难用肉眼稳定判断:格子是否歪了、文字是否偏格心、导出 PNG 是否变形、同参数连画三次是否一致。真机预览成本高,F12 里又容易漏掉字体加载或偶发重绘延迟。
这套工作流怎么做
本技能是工具模块:本地起一个静态预览服务(preview-server.js),用 Selenium 打开 preview.html,执行你指定的 JS(切模板、改参数),再截图;需要回归时还可按场景裁切顶部/中部/底部区域对比。
核心能力包括:
- 可复现截图:同一套参数与脚本,多次跑出来的画面应对齐八项清单
- 八项验证清单:从「1 秒内非白屏」到「同参数连出 3 次完全一致」,逐项有通过标准
- 常见坑对照表:如
canvas.width = cssW * dpr+ctx.scale(dpr,dpr)防糊字、偶数线宽与整数坐标防线歪等 - 自测入口:
selftest.py启动服务并校验资源可访问,PASS 才说明链路可用
引用侧还有 verify_shot.py(截图与区域裁剪)、snap1.yml 场景示例、sample-preview.html 最小预览页,与业务代码解耦,任意 Canvas 预览页只要挂到同一服务即可接入。
边界与注意
verify_shot.py 依赖 Selenium、Pillow 和无头 Chrome,环境没配好时截图会失败,与小程序业务逻辑无关。本技能负责「看效果、做视觉回归」;画网格、SVG 复刻、多页 PDF 导出需配合同工具链里其它技能。控制台字体 404 在清单里可忽略,其它红错应视为未通过。
使用场景
- 改完米字格或田字格的线宽与间距后,要在本地预览页用 Selenium 截图对照八项清单,确认网格清晰、文字居中
- 切换字帖模板或 JSON 参数后,需要 500ms 内重绘并通过连拍三张截图,验证重复生成一致性
- 准备发版前想跑一遍 preview.html 清单:非白屏、PNG 1240×1754 无变形、控制台无红错
- 与 SVG 复刻或网格引擎联调时,用区域裁剪对比顶部/中部/底部画面,做这次改动相对上次的视觉回归
适合人员
- 维护小程序练字/字帖 Canvas 页的前端,改样式后需要可复现截图而不是只靠真机瞟一眼
- 负责 canvas-grid-engine 或教育网格模板的工程师,要把「画出来」和「验对不对」拆成固定流水线
- 把纸质模板 SVG 复刻到 Canvas 的开发者,导出与居中问题想用清单和截图一次性收口
- 做 Canvas 多页导出链路的同学,在 PDF 技能之前先用本工作流确认单页预览与保存图片正常