Skip to content

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
}

参数

参数名类型必填说明
profileGeneratedLicensePlateProfile车牌信息(由 generateFakeLicensePlate 生成)
depsRenderLicensePlateDeps环境依赖,提供 createCanvas 方法
optionsRenderLicensePlateOptions渲染选项,可覆盖车牌号码和类型

返回值

类型说明
RenderLicensePlateResult包含渲染好的 Canvas 对象,可用于导出图片或展示

工作原理

  1. 通过 deps.createCanvas 创建画布(标准尺寸:880×280 像素)
  2. 根据车牌类型绘制背景:
    • 普通车牌:蓝色渐变背景(#0A2463)
    • 新能源车牌:绿色渐变背景(#1B8E3E)
  3. 绘制白色边框和内边框,增加层次感
  4. 使用等宽字体绘制车牌文字,居中显示
  5. 添加文字阴影和反光效果,增强立体感
  6. 绘制四个角的装饰点,模拟真实车牌的铆钉效果
  7. 返回渲染好的 Canvas 对象

说明:此实现仅为演示用途,非真实制式版式与字体布局。