A simple svg captcha generator
npm install @lovekeqing/captcha一个简单的 SVG 验证码生成器,支持数字、字母、混合和数学公式类型,可自定义字体、字符集、干扰线等参数。暂时不支持浏览器端。
- 支持多种验证码类型:数字、字母、混合、公式
- 可自定义验证码长度、字符集、忽略字符
- 支持自定义字体(TTF)
- 可设置验证码图片宽高
- 支持设置背景颜色和自动计算字体颜色
- 干扰线数量和宽度可调
- 生成 SVG 格式验证码图片
- 支持 TypeScript 类型提示
``sh`
pnpm add @lovekeqing/captcha
`ts
import { Captcha } from "@lovekeqing/captcha";
const captcha = new Captcha({
type: "formula", // 验证码类型,可选:"number" | "letter" | "mix" | "formula"
length: 3, // 验证码长度或公式中数字个数
noise: 2, // 干扰线数量
});
captcha.generate().then(({ value, svg }) => {
console.log("验证码值:", value);
// svg 为验证码图片的 SVG 字符串
});
`
详见 CaptchaOptions:
下面所有的配置项均为可选:
- fontPath:字体文件路径,支持 ttftype
- :验证码类型,"number" | "letter" | "mix" | "formula",默认 "number"length
- :验证码长度,默认 4,公式类型表示数字个数width
- /height:验证码图片宽高,默认自动计算noise
- :干扰线数量,默认 1noiseWidth
- :干扰线宽度,默认 0.03 的图片高度chars
- :自定义字符集,默认根据 type 生成ignoreChars
- :忽略的字符集backgroundColor
- :背景颜色,默认随机生成
`ts`
captcha.generate(content?: string): Promise
generate 方法用于生成随机的验证码图片,详见 CaptchaResult:
generate 方法接受一个可选参数 content,用于指定验证码的内容。如果不传入该参数,验证码内容将根据配置项随机生成。
返回一个 Promise 对象,其成功的结果包含以下属性:
- value:验证码答案svg
- :验证码的 SVG 字符串backgroundColor
- :背景颜色width
- :宽度,实际生成的验证码图片宽度height
- :高度,实际生成的验证码图片高度scale
- :缩放,当用户指定的宽高与计算宽高不符时,会按用户指定的宽高进行缩放
- pnpm build:构建项目pnpm test
- :运行测试pnpm build:docs
- :生成文档pnpm build:all`:测试、构建并生成文档
-
1. Fork 本仓库
2. 创建新分支并进行修改
3. 提交 Pull Request
当项目的管理员审核通过后,您的贡献将被合并到主分支中。
MIT License