renderLicensePlate
使用 Canvas 渲染中国车牌(简化版样式,仅用于演示/测试)。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.createCanvas | (width: number, height: number) => CanvasLike | 创建指定大小的 Canvas 对象 |
环境要求
- 浏览器环境: 需要支持 Canvas API
函数签名
typescript
function renderLicensePlate(
profile: GeneratedLicensePlateProfile,
deps: RenderLicensePlateDeps,
options?: RenderLicensePlateOptions
): RenderLicensePlateResult
interface RenderLicensePlateOptions {
/** 车牌号码(如果不提供,将从 profile 中获取) */
plate?: string
/** 车牌类型:'normal' 普通车牌(蓝色),'newEnergy' 新能源车牌(绿色) */
type?: 'normal' | 'newEnergy'
}
interface RenderLicensePlateDeps {
/** 创建指定大小的 Canvas 对象 */
createCanvas: (width: number, height: number) => CanvasLike
}
interface RenderLicensePlateResult {
/** 渲染好的 Canvas 对象 */
canvas: CanvasLike
}参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
profile | GeneratedLicensePlateProfile | 是 | 车牌信息(由 generateFakeLicensePlate 生成) |
deps | RenderLicensePlateDeps | 是 | 环境依赖,提供 createCanvas 方法 |
options | RenderLicensePlateOptions | 否 | 渲染选项,可覆盖车牌号码和类型 |
返回值
| 类型 | 说明 |
|---|---|
RenderLicensePlateResult | 包含渲染好的 Canvas 对象,可用于导出图片或展示 |
工作原理
- 通过
deps.createCanvas创建画布(标准尺寸:880×280 像素) - 根据车牌类型绘制背景:
- 普通车牌:蓝色渐变背景(#0A2463)
- 新能源车牌:绿色渐变背景(#1B8E3E)
- 绘制白色边框和内边框,增加层次感
- 使用等宽字体绘制车牌文字,居中显示
- 添加文字阴影和反光效果,增强立体感
- 绘制四个角的装饰点,模拟真实车牌的铆钉效果
- 返回渲染好的 Canvas 对象
说明:此实现仅为演示用途,非真实制式版式与字体布局。