generateMacTrayIcon
生成符合 macOS 托盘图标规范的图标,适用于状态栏和系统托盘。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.sharp | Sharp | Sharp 图像处理函数 |
环境要求
- sharp: 图像处理库,用于调整图像尺寸和应用主题效果
bash
npm install sharp函数签名
typescript
function generateMacTrayIcon(
input: Buffer,
sizes: number[],
themes: Record<string, string>,
deps: GenerateMacTrayIconDeps
): Promise<{ size: number; theme: string; buffer: Buffer }[]>
interface GenerateMacTrayIconDeps {
sharp: Sharp
}参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
input | Buffer | 是 | 输入图像的 Buffer 数据 |
sizes | number[] | 是 | 需要生成的图标尺寸数组(如 [16, 32, 64]) |
themes | Record<string, string> | 是 | 主题颜色映射,如 { light: '#000000', dark: '#FFFFFF' } |
deps | GenerateMacTrayIconDeps | 是 | 依赖注入对象 |
返回值
| 类型 | 说明 |
|---|---|
Promise<{ size: number; theme: string; buffer: Buffer }[]> | Promise,解析为图标数组,每个对象包含尺寸、主题名和图像 Buffer |
工作原理
- 遍历所有尺寸和主题组合
- 对每个组合:
- 使用 sharp 调整图像到目标尺寸
- 根据主题颜色应用颜色反转或色调调整
- 对于 light 主题,使用深色图标
- 对于 dark 主题,使用浅色图标
- 输出为 PNG 格式(支持透明度)
- 返回包含尺寸、主题和 Buffer 的对象数组
生成的图标适配 macOS 系统托盘的深色和浅色模式,确保在各种系统主题下都有良好的显示效果。