nativeImage
使用 PNG 或 JPG 文件创建托盘、dock和应用程序图标。
nativeImage
模块提供了一个用于操纵系统图像的统一接口。 如果您想要提供同一图标的多个缩放的 版本,或利用macOS 模板图像 ,这些都很方便。
在 Electron 内, 那些需要图片的 API 可以传递两种参数, 一种是文件路径, 一种是 NativeImage
实例对象。 传递 null
参数将使用空和透明的图像。
例如, 创建 系统托盘 或设置 窗口的图标, 你可能传递一个图片或文件路径字符串:
const { BrowserWindow, Tray } = require('electron')
const tray = new Tray('/Users/somebody/images/icon.png')
const win = new BrowserWindow({ icon: '/Users/somebody/images/window.png' })
或从同一文件生成一个 NativeImage
实例:
const { BrowserWindow, nativeImage, Tray } = require('electron')
const trayIcon = nativeImage.createFromPath('/Users/somebody/images/icon.png')
const appIcon = nativeImage.createFromPath('/Users/somebody/images/window.png')
const tray = new Tray(trayIcon)
const win = new BrowserWindow({ icon: appIcon })
支持的格式
目前,所有平台都支持 PNG
和 JPEG
图像格式。 建议PNG
是因为它支持透明度和无损压缩。
在 Windows 平台下, 你同样可以从文件路径中加载ICO
格式的 icons 对象。 为了最好的质量,我们建议至少包括以下大小:
- 小图标
- 16x16 (100% DPI scale)
- 20x20 (125% DPI scale)
- 24x24 (150% DPI scale)
- 32x32 (200% DPI scale)
- 大图标
- 32x32 (100% DPI scale)
- 40x40 (125% DPI scale)
- 48x48 (150% DPI scale)
- 64x64 (200% DPI scale)
- 256x256
在Windows 构造 Windows 应用的图标 文档了解更多关于 图标缩放.
EXIF 元数据目前不被支持,将在图像编码和解码期间将不会被考虑在内。
高分辨率
在具有高分辨率支持的平台 (如 Apple 视网膜显示器) 上, 可以在图像的基本文件名之后追加 @2x
以将其标记为高分辨率图像。
例如,如果 icon.png
是一个正常的图像,具有标准分辨率。 然后 icon@2x.png
将被视为具有双倍每英寸(DPI)密度的高分辨率图像。
如果您想同时支持不同的DPI显示,您可以将不同大小的图像放置在同一个文件夹中,并在Electron中使用文件名而不使用DPI 后缀。 例如:
images/
├── icon.png
├── icon@2x.png
└── icon@3x.png
const { Tray } = require('electron')
const appTray = new Tray('/Users/somebody/images/icon.png')
还支持以下DPI的后缀:
@1x
@1.25x
@1.33x
@1.4x
@1.5x
@1.8x
@2x
@2.5x
@3x
@4x
@5x
macOS 模板图片
在 macOS, 模板图像 由黑色和 Alpha 通道组成。 模板图片不是单独使用的, 它通常与其他内容混合以创建期望的最终效果
最常见的情况是使用模板图片作为菜单栏(系统托盘) 图标, 使它可以适应浅色和深色菜单栏。
要将图像标记为模板图像,其基础文件名应该以单词Template
(例如 xxxTemplate.png
)结尾。 您也可以在不同的 DPI 密度指定模板图像(例如, xxxTemplate@2x.png
)。
方法
nativeImage
模块有以下方法,所有方法都返回 NativeImage
类的实例:
nativeImage.createEmpty()
返回 NativeImage
创建一个空的 NativeImage
实例。
nativeImage.createThumbnailFromPath(path, size)
macOS Windows
path
string - 打算用来构建缩略图的文件路径size
Size - 缩略图所需的宽度和高度 (正数)。
返回 Promise<NativeImage>
- 文件的缩略图预览图像,包含类型是 NativeImage
注意:Windows 实现将忽略 size.height
并根据 size.width
缩放高度
nativeImage.createFromPath(path)
path
sting - 构造图像的文件路径。
返回 NativeImage
从位于 path
的文件创建新的 NativeImage
实例。 如果 path
不存在,,无法读取或不是有效图像,方法将返回空图像, 。
const { nativeImage } = require('electron')
const image = nativeImage.createFromPath('/Users/somebody/images/icon.png')
console.log(image)