格式
- 输入是纯文本:
execute({ text, ...options })。 text为必填且不能空字符串。size范围50..4096,默认300,表示 SVG 尺寸(像素)。margin为静区边距,范围0..64。ecLevel为L/M/Q/H:L=7%,M=15%,Q=25%,H=30%。dotType包含square、rounded、extra-rounded、dots、diamond、classy、classy-rounded、vertical-line、horizontal-line、small-square、tiny-square。dotSize取值0.3..1;logoSize取值0.1..0.5;logoMargin取值0..20。cornerOuter可选square|rounded|extra-rounded|dots|classy,cornerInner可选square|dots|rounded。
决策
- 若以稳定识别为先,优先用
shape: square,circle更多用于视觉效果。 - 加 logo 前建议提高到
ecLevel: H,减少损坏重构的风险。 bgMode: transparent适合可控背景环境,否则建议保留实色背景。- 仅当接收端支持 SVG 渐变时再用
linear/radial。 micro: true适合短内容;遇到长数据易触发容量问题。
限制
- 颜色仅按十六进制处理。
gradient.rotation仅允许0..360。- 批量输入每行独立生成,若某行失败不影响其它成功条目。
- 文件尺寸与体积随
size、dotType和梯度渐变显著增长。 - 测试覆盖了
A重复 5000 字符在ecLevel: L时会抛错,可视为超长数据上限的现实信号。
注意事项
bgMode: transparent会移除背景矩形,可能导致白底假设失效。- 非法或损坏的 base64 图片会使该二维码记录失败。
logoSize、logoMargin同时改变周围留白,不只是图像本体。- 实际编码模式(byte / alphanumeric / numeric / Kanji)来自底层库策略,界面不暴露显式切换。
- 出现
Data too long时优先减小内容或调整ecLevel。
示例
- URL:
https://z.tools - 文本:
Hello world - Wi‑Fi 辅助格式:
wifi("MyNetwork", "password123") - 地理坐标:
geo(37.7749, -122.4194) - 名片:
vcard({ firstName: "John", lastName: "Doe", phone: "+1234567890", email: "john@example.com" })