【问题标题】:How do I set a window icon to a Buffer image in Electron?如何在 Electron 中将窗口图标设置为缓冲区图像?
【发布时间】:2021-02-15 16:35:17
【问题描述】:

我有一个存储在缓冲区中的图像。我正在尝试将其设置为窗口图标,但我找不到这样做的方法。图片没有路径,所以不能只用win.setIcon('path/to/image')

我尝试执行以下操作,但没有成功。

win.setIcon(buffer); // giving the buffer by itself
win.setIcon(buffer.toString('base64')); // giving the buffer as base64
win.setIcon(`data:image/png;base64,${buffer.toString('base64')}`); // giving as base64 url

let imageObject = new Image();
imageObject.src = `data:image/png;base64,${buffer.toString('base64')}`;
win.setIcon(imageObject); // giving image object

【问题讨论】:

标签: javascript electron icons


【解决方案1】:

根据Electron's documentationBrowserWindow.setIcon () 采用字符串或 NativeImage,这是 Electron 提供的一种数据类型。您可以使用以下代码将缓冲区转换为NativeImage

const { nativeImage } = require ("electron");

win.setIcon (nativeImage.createFromBuffer (buffer));

如果这没有帮助,您还可以将缓冲区作为数据 URL 中的 Base 64 字符串(就像您之前尝试过的那样)传递给函数 createFromDataURL。有关详细信息,请参阅documentation on NativeImage。还值得注意的是,您可以将高级选项传递给 createFromBuffer 函数,以向 Electron 提供有关如何显示图标的更多提示。

【讨论】:

    猜你喜欢
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多