Skip to content

generateMacTrayIcon

生成符合 macOS 托盘图标规范的图标,适用于状态栏和系统托盘。

前置依赖

依赖参数

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

环境要求

  • 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
}

参数

参数名类型必填说明
inputBuffer输入图像的 Buffer 数据
sizesnumber[]需要生成的图标尺寸数组(如 [16, 32, 64])
themesRecord<string, string>主题颜色映射,如 { light: '#000000', dark: '#FFFFFF' }
depsGenerateMacTrayIconDeps依赖注入对象

返回值

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

工作原理

  1. 遍历所有尺寸和主题组合
  2. 对每个组合:
    • 使用 sharp 调整图像到目标尺寸
    • 根据主题颜色应用颜色反转或色调调整
    • 对于 light 主题,使用深色图标
    • 对于 dark 主题,使用浅色图标
  3. 输出为 PNG 格式(支持透明度)
  4. 返回包含尺寸、主题和 Buffer 的对象数组

生成的图标适配 macOS 系统托盘的深色和浅色模式,确保在各种系统主题下都有良好的显示效果。