Skip to content

generatePwaIcons

生成符合 PWA 规范的应用图标集合,自动应用圆角效果和内边距。

前置依赖

依赖参数

参数名类型说明
deps.sharpSharpSharp 图像处理函数
deps.BufferBufferConstructorBuffer 构造函数

环境要求

  • sharp: 图像处理库,用于调整图像尺寸和应用圆角效果
  • Buffer: Node.js 内置的 Buffer 构造函数
bash
npm install sharp

函数签名

typescript
function generatePwaIcons(
  input: Buffer,
  sizes: number[],
  deps: GeneratePwaIconsDeps
): Promise<{ size: number; buffer: Buffer }[]>

interface GeneratePwaIconsDeps {
  sharp: Sharp
  Buffer: BufferConstructor
}

参数

参数名类型必填说明
inputBuffer输入图像的 Buffer 数据
sizesnumber[]需要生成的图标尺寸数组(如 [72, 96, 128, 144, 152, 192, 384, 512])
depsGeneratePwaIconsDeps依赖注入对象

返回值

类型说明
Promise<{ size: number; buffer: Buffer }[]>Promise,解析为图标数组,每个对象包含尺寸和图像 Buffer

工作原理

  1. 对输入图像应用圆角效果(圆角半径为图片尺寸的 22.5%)
  2. 为圆角图像添加 12% 的透明内边距
  3. 遍历所有指定的尺寸:
    • 使用 sharp 将图像调整到目标尺寸
    • 保持高质量(使用 lanczos3 算法)
    • 输出为 PNG 格式(保留透明度)
  4. 将每个尺寸的图像 Buffer 与对应尺寸组成对象
  5. 返回所有尺寸的图标数组

生成的图标符合 PWA(Progressive Web App)设计规范,可用于 Web 应用的 manifest.json 配置。