工具
2026-06-251 min
写一个在线印章生成器的踩坑记录
Canvas 绘制、特效叠加与配置管理的工程化实践……

为什么用 Canvas
印章需要精确控制圆弧、文字弯曲、特效叠加,SVG 的 path 计算太繁琐,Canvas 的逐像素绘制反而更直接。
文字沿圆弧排列
核心是把每个字符旋转到对应角度,再平移到半径位置:
ts
ctx.save();
ctx.rotate((angle * Math.PI) / 180);
ctx.translate(0, -radius);
ctx.fillText(char, 0, 0);
ctx.restore();配置管理
把所有可调参数收敛到一个 config 对象,配合 CollapsibleSection 做分组,用户调参时实时重绘 Canvas,导出时直接 toDataURL。
Canvas工具工程化