返回博客
工具
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工具工程化