Electron中文手册
  • 文档概述
  • 开发指南目录
  • 构建说明(Linux)
  • 构建说明(macOS)
  • 构建说明(Windows)
  • 构建系统概述
  • 编码规范
  • 在 macOS 中调试
  • 在 Windows 中调试
  • 在C ++代码中使用clang-format
  • 在调试器中设置符号服务器
  • 源代码目录结构
  • Chrome升级清单
  • Chromium 开发指南
  • V8 开发指南
  • 教程目录
    • 关于 Electron
    • Electron 版本说明
    • API弃用说明
    • 快速入门
    • 支持的平台
    • 桌面环境集成
    • 系统通知
    • 离屏渲染
    • 在线/离线事件检测
    • 多线程
    • REPL
    • 键盘快捷键
    • DevTools扩展
    • 使用原生模块
    • 使用 Pepper Flash 插件
    • 使用 Selenium 和 WebDriver
    • 使用 Widevine CDM 插件
    • 应用分发
    • 应用打包
    • 主进程调试
    • 使用 node-inspector 进行主进程调试
    • 使用 VSCode 进行主进程调试
    • Mac App Store应用提交指南
    • Windows App Store应用提交指南
    • 安全,本地功能和你的责任
    • Headless CI Systems 测试
  • API接口目录
    • API接口之公用接口
      • 应用语言
      • 开发概要
      • 专业术语
      • 常见问题
      • 环境变量
      • 快捷键字符串
      • 命令行
      • 客户端请求
      • 剪贴板
      • <File> H5 File文件操作
      • 无框窗口
      • <window.open> window.open打开新窗口或打开时传递消息
      • 沙盒选项
    • API接口之主进程接口
      • 整体控制
      • 全局快捷键
      • 图标创建与应用
      • 屏幕
      • 窗口
      • 菜单
      • 菜单项
      • 系统托盘
      • 网页内容
      • 从主进程到渲染进程的异步通信
      • 对话框
      • 创建和控制视图
      • 会话
      • 会话,缓存和代理等控制
      • 页面请求
      • HTTP/HTTPS请求处理
      • 协议的注册和处理
      • 使用系统默认应用程序管理文件或URL
      • 下载项管理
      • 进程控制
      • Chromium原生网络库
      • 获取系统首选项
      • 电源状态
      • 节能管理
      • 调试工具
      • 奔溃报告
      • 性能数据收集
      • 自动更新
      • TouchBar触摸条
      • TouchBar触摸条按钮
      • TouchBar触摸条拾色器
      • TouchBar触摸条分组
      • TouchBar触摸条scrubber
      • TouchBar触摸条分段控件
      • TouchBar触摸条label标签
      • TouchBar触摸条弹出框
      • TouchBar触摸条滑块
      • TouchBar触摸条间隔符
    • API接口之渲染进程接口
      • 页面渲染
      • <webview> webview标签
      • 渲染进程与主进程通信
      • 从渲染进程到主进程的异步通信
      • 子窗口
      • 捕获桌面资源
  • 结构列表
    • 蓝牙设备对象
    • 证书对象
    • 证书主体对象
    • Cookie对象
    • 崩溃报告对象
    • 桌面捕获源对象
    • 显示器对象
    • 打印机信息对象
    • 文件过滤器对象
    • 最近使用的项目
    • 常用列表项
    • CPU使用率对象即程序占用的CPU资源
    • IO值对象
    • 内存信息对象
    • 进程内存信息对象
    • 内存使用详细信息
    • Mime类型缓冲区
    • 矩形对象
    • 删除客户端证书对象
    • 删除密码对象
    • Scrubber项对象
    • 分段控制对象
    • 快捷方式对象
    • 任务对象
    • 缩略图工具栏按钮对象
    • 上传blob对象
    • 上传数据对象
    • 上传文件系统对象
    • 上传文件对象
    • 上传原始数据对象
Powered by GitBook
On this page
  • 支持的格式
  • 高分辨率图片
  • 模板图像
  • 方法
  • nativeImage.createEmpty()
  • nativeImage.createFromPath(path)
  • nativeImage.createFromBuffer(buffer[, options])
  • nativeImage.createFromDataURL(dataURL)

Was this helpful?

  1. API接口目录
  2. API接口之主进程接口

图标创建与应用

Previous全局快捷键Next屏幕

Last updated 4 years ago

Was this helpful?

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

进程: ,

在 Electron 中, 对所有创建 images 的 api 来说, 你可以传递文件路径或 NativeImage 实例. 如果传递 null ,将创建一个空的image 对象.

例如, 当创建托盘图标或设置窗口图标时,你可以传递 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)

支持的格式

当前支持 PNG 和 JPEG 图片格式. 推荐 PNG ,因为它支持透明和无损压缩.

在 Windows, 你也可以使用 ICO 图标的格式.

  • 常用小图标尺寸

    • 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

高分辨率图片

在具有高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

  • @1.25x

  • @1.33x

  • @1.4x

  • @1.5x

  • @1.8x

  • @2x

  • @2.5x

  • @3x

  • @4x

  • @5x

模板图像

模板图像由黑色和透明色(或alpha 通道)组成.

模板图像并不用作独立图片,它通常与其他内容混合以创建期望的最终效果。

最常见的情况是当做菜单栏图标,因此它可以适应亮和暗色菜单栏。

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

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

  • xxxTemplate.png

  • xxxTemplate@2x.png

方法

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

nativeImage.createEmpty()

用途:创建一个空的 NativeImage 实例

nativeImage.createFromPath(path)

用途:从位于 path的文件创建一个新的 NativeImage实例

  • path String - path不存在,无法读取或不是有效图像,此方法将返回空图像。

示例:

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

nativeImage.createFromBuffer(buffer[, options])

用途:从 buffer中创建一个 NativeImage 实例

  • buffer [Buffer][buffer]

  • options Object (可选)

    • width Integer (可选) - 对于位图bitmap,缓冲区(buffers)是必需的。

    • height Integer (可选) - 对于位图bitmap,缓冲区(buffers)是必需的。

    • scaleFactor Double (可选) - 默认1.0.

nativeImage.createFromDataURL(dataURL)

用途:从 dataURL创建一个 NativeImage 实例( NativeImage)

  • dataURL String

image.toPNG([options])

用途:返回包含图片 PNG 编码数据( Buffer [Buffer][buffer])

  • options Object (可选)

  • scaleFactor Double (可选) - 默认 1.0.

image.toJPEG(quality)

用途:返回包含图片 JPEG 编码数据( Buffer [Buffer][buffer])

  • quality Integer (必须) - 质量可选 0 - 100.

image.toBitmap([options])

用途:返回包含图片 Bitmap 编码数据副本( Buffer [Buffer][buffer])

  • options Object (可选)

  • scaleFactor Double (可选) - 默认 1.0.

image.toDataURL([options])

用途:返回图片数据的 URL( String)

  • options Object (可选)

  • scaleFactor Double (可选) - 默认 1.0.

image.getBitmap([options])

用途:返回包含图片 Bitmap 编码数据( Buffer [Buffer][buffer])

  • options Object (可选)

  • scaleFactor Double (可选) - 默认 1.0.

    getBitmap()和 toBitmap()之间的区别是, getBitmap() 不会复制位图数据,所以你必须在当前事件中立即使用返回的Buffer,否则数据可能会被改变,销毁。

image.getNativeHandle() macOS

用途:返回带有指向了图像底层本地句柄的C指针的 [Buffer][buffer]

在macOS上,返回的是指向 NSImage实例的指针。

注意,返回的指针是一个指向底层本地映像而不是副本的弱指针,所以你必须确保关联的nativeImage实例被保留。

image.isEmpty()

用途:判断图片是否为空( Boolean)

image.getSize()

用途:获得尺寸信息( Object)

  • width Integer

  • height Integer

image.setTemplateImage(option)

用途:将图片标识为模板图像

  • option Boolean

image.isTemplateImage()

用途:判断图片是否为模板图像( Boolean)

image.crop(rect)

用途:按区域裁剪并返回指定尺寸的图片( NativeImage)

  • rect Object - 要裁剪的图像区域

    • x Integer

    • y Integer

    • width Integer

    • height Integer

image.resize(options)

用途:重新调整图片尺寸( NativeImage)

  • options Object

    • width Integer (可选)- 默认为图像宽度

    • height Integer (可选)- 默认为图像高度

    • quality String (可选) - 调整图像大小的所需质量,可能的值是 good, better 或者 best。默认值是 best

如果只指定 height或 width,那么图片将保持原始宽高比。

image.getAspectRatio()

用途:获取图像的宽高比例( Float)

image.addRepresentation(options)

用途:自定义图片缩放比例

  • options Object

    • scaleFactor Double - 默认1.0

    • width Integer(可选) - 默认为0.如果位图缓冲区指定为 buffer,则为必需。

    • height Integer(可选) - 默认为0.如果位图缓冲区指定为 buffer,则为必需。

    • buffer Buffer(可选) - 包含原始图像数据的缓冲区。

    • dataURL String(可选) - 数据URL,包含基本64编码的PNG或JPEG图像。

[buffer]:

在这里查看微软关于尺寸的详细说明
https://nodejs.org/api/buffer.html#buffer_class_buffer
主进程
渲染进程