Skip to content

generateMacIcons

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

前置依赖

依赖参数

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

环境要求

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

函数签名

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

interface GenerateMacIconsDeps {
  sharp: Sharp
  Buffer: BufferConstructor
}

参数

参数名类型必填说明
inputBuffer输入图像的 Buffer 数据
sizesnumber[]需要生成的图标尺寸数组(如 [16, 32, 64, 128, 256, 512, 1024])
depsGenerateMacIconsDeps依赖注入对象

返回值

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

工作原理

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

生成的图标符合 macOS 设计规范,适用于 .icns 图标集或应用资源。