generateMacIcons
生成符合 macOS 应用规范的图标集合,自动应用圆角效果和内边距。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.sharp | Sharp | Sharp 图像处理函数 |
deps.Buffer | BufferConstructor | Buffer 构造函数 |
环境要求
- 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
}参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
input | Buffer | 是 | 输入图像的 Buffer 数据 |
sizes | number[] | 是 | 需要生成的图标尺寸数组(如 [16, 32, 64, 128, 256, 512, 1024]) |
deps | GenerateMacIconsDeps | 是 | 依赖注入对象 |
返回值
| 类型 | 说明 |
|---|---|
Promise<{ size: number; buffer: Buffer }[]> | Promise,解析为图标数组,每个对象包含尺寸和图像 Buffer |
工作原理
- 对输入图像应用圆角效果(圆角半径为图片尺寸的 22.5%)
- 为圆角图像添加 12% 的透明内边距
- 遍历所有指定的尺寸:
- 使用 sharp 将图像调整到目标尺寸
- 保持高质量(使用 lanczos3 算法)
- 输出为 PNG 格式(保留透明度)
- 将每个尺寸的图像 Buffer 与对应尺寸组成对象
- 返回所有尺寸的图标数组
生成的图标符合 macOS 设计规范,适用于 .icns 图标集或应用资源。