renderIdCard
使用 Canvas 渲染中国居民身份证的正反面(简化版,仅用于演示/测试)。
函数签名
typescript
function renderIdCard(
input: RenderIdCardInput,
deps: RenderIdCardDeps
): { front: any; back: any }
interface RenderIdCardInput {
idCard: string
name?: string
gender?: '男' | '女'
nation?: string
birth?: string // YYYY-MM-DD,未传则从 idCard 提取
address?: string
issueAuthority?: string
validPeriod?: string // 例如:2010.01.01-2030.01.01
avatarImage?: any // 头像图(HTMLImageElement/ImageBitmap/Canvas 等)
}
interface RenderIdCardDeps {
createCanvas: (width: number, height: number) => { getContext: (type: '2d') => CanvasRenderingContext2D }
}参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
input | RenderIdCardInput | 是 | 渲染所需的信息(姓名、性别、身份证号等) |
deps | RenderIdCardDeps | 是 | 环境依赖,提供 createCanvas 方法 |
返回值
| 类型 | 说明 |
|---|---|
{ front, back } | 两张 Canvas,分别为身份证正面与反面 |
工作原理
- 通过
deps.createCanvas创建画布,绘制统一留白和卡面背景 - 正面:绘制姓名/性别/民族/出生/地址/身份证号,并支持圆形头像裁剪
- 反面:绘制签发机关与有效期限(简化风格)
- 返回
{ front, back }便于导出图片或展示
说明:此实现仅为演示用途,非真实制式版式与字体布局。