本地图像 | nativeImage

nativeImage

使用 PNG 或 JPG 文件创建托盘,底座和应用程序图标。

过程:主要,渲染器

在 Electron 中,对于拍摄图像的 API,您可以传递文件路径或NativeImage实例。null传递时将使用空图像。

例如,在创建托盘或设置窗口图标时,可以将图像文件路径传递为String

const {BrowserWindow, Tray} = require('electron') const appIcon = new Tray('/Users/somebody/images/icon.png') let win = new BrowserWindow{icon: '/Users/somebody/images/window.png'}) console.log(appIcon, win)

或者从剪贴板读取图像,该图像返回NativeImage

const {clipboard, Tray} = require('electron') const image = clipboard.readImage() const appIcon = new Tray(image) console.log(appIcon)

支持的格式

目前PNGJPEG图像格式支持。PNG因为它支持透明和无损压缩,因此推荐使用。

在 Windows 上,您还可以ICO从文件路径加载图标。为了获得最佳视觉质量,建议在以下内容中至少包含以下尺寸:

  • Small icon

检查本文中的大小要求部分(https://msdn.microsoft.com/en-us/library/windows/desktop/dn742485(v = vs.85%29.aspx)。

高分辨率图像

在具有高 DPI 支持的平台(如 Apple Retina 显示器)上,您可以@2x在图像的基本文件名后追加标记以将其标记为高分辨率图像。

例如,如果icon.png是具有标准分辨率的普通图像,icon@2x.png则会被视为具有双 DPI 密度的高分辨率图像。

如果您希望同时支持具有不同DPI密度的显示器,则可以将不同大小的图像放在同一文件夹中,并使用不带DPI后缀的文件名。例如:

images/ ├── icon.png ├── icon@2x.png └── icon@3x.png

const {Tray} = require('electron') let appIcon = new Tray('/Users/somebody/images/icon.png') console.log(appIcon)

还支持以下 DPI 后缀:

  • @1x

模板图像

模板图像由黑色和清晰的颜色(和一个alpha通道)组成。模板图像不能用作独立图像,通常与其他内容混合以创建所需的最终外观。

最常见的情况是使用模板图像作为菜单栏图标,以适应明暗菜单栏。

注意:模板图像仅在 macOS 上受支持。

要将图像标记为模板图像,其文件名应以单词结尾Template。例如:

  • xxxTemplate.png

方法

nativeImage模块具有以下方法,所有这些都会返回NativeImage该类的一个实例:

nativeImage.createEmpty()

返回 NativeImage

创建一个空NativeImage实例。

nativeImage.createFromPath(path)

  • path

返回 NativeImage

NativeImage从位于的文件创建一个新实例path。如果该方法path不存在,不能被读取或者不是有效的图像,则此方法返回空图像。

const nativeImage = require('electron').nativeImage let image = nativeImage.createFromPath('/Users/somebody/images/icon.png') console.log(image)

nativeImage.createFromBuffer(buffer[, options])

  • buffer 缓冲

返回 NativeImage

NativeImage从中创建一个新实例buffer

nativeImage.createFromDataURL(dataURL)

  • dataURL

返回 NativeImage

NativeImage从中创建一个新实例dataURL

类:NativeImage

自然包装图像,如托盘,底座和应用程序图标。

过程:主要,渲染器

实例方法

以下方法可用于NativeImage该类的实例:

image.toPNG([options])

  • options 对象(可选)

返回Buffer- 包含图像编码数据的缓冲区PNG

image.toJPEG(quality)

  • quality整数(必需) - 在0 - 100之间。

返回Buffer- 包含图像编码数据的缓冲区JPEG

image.toBitmap([options])

  • options 对象(可选)

返回Buffer- 包含图像原始位图像素数据副本的缓冲区。

image.toDataURL([options])

  • options 对象(可选)

返回String- 图像的数据 URL。

image.getBitmap([options])

  • options 对象(可选)

返回Buffer- 包含图像的原始位图像素数据的缓冲区。

差异化的getBitmap()toBitmap()被,getBitmap()不复制位图数据,所以你必须立即使用返回的缓冲区在当前事件循环打勾,否则数据可能会被更改或销毁。

image.getNativeHandle() macOS

返回Buffer- 存储指向图像底层本机句柄的 C 指针的缓冲区。在 macOS 上,NSImage会返回一个指向实例的指针。

请注意,返回的指针是指向底层本机映像而不是副本的弱指针,因此您必须确保关联的nativeImage实例保持在附近。

image.isEmpty()

返回Boolean- 图像是否为空。

image.getSize()

返回 Size

image.setTemplateImage(option)

  • option 布尔

将图像标记为模板图像。

image.isTemplateImage()

返回Boolean- 图像是否是模板图像。

image.crop(rect)

  • rect 矩形 - 要裁剪的图像区域

返回NativeImage- 裁剪的图像。

image.resize(options)

  • options 目的

返回NativeImage- 调整大小的图像。

如果只指定了height或者,width则当前的宽高比将保存在调整大小的图像中。

image.getAspectRatio()

返回Float- 图像的宽高比。

image.addRepresentation(options)

  • options 目的

添加特定比例因子的图像表示。这可以用来明确地向图像添加不同的比例因子表示。这可以在空图像上调用。