我保存图像的代码是:
var fs = require('fs');
const dialog = require('electron').remote.dialog;
var canvasBuffer = require('electron-canvas-to-buffer');
dialog.showSaveDialog({title:'Testing a save dialog',defaultPath:'image.jpg'},saveCallback);
function saveCallback(filePath) {
// as a buffer
var buffer = canvasBuffer(canvas, 'image/png')
// write canvas to file
fs.writeFile('image.png', buffer, function (err) {
throw err
})
}
Run Code Online (Sandbox Code Playgroud)
我无法保存画布上绘制的图像
错误窗口显示
img.toPNG不是函数
错误。

我正在使用 Electron,我正在为我的应用程序创建一个托盘图标。Electron 自己的文档(https://electronjs.org/docs/api/tray#tray-popupcontextmenu-position-os-x-windows)显示我可以使用以下代码在菜单上选择单选按钮:
const {app, Menu, Tray} = require('electron')
let tray = null
app.on('ready', () => {
tray = new Tray('/path/to/my/icon')
const contextMenu = Menu.buildFromTemplate([
{label: 'Item1', type: 'radio'},
{label: 'Item2', type: 'radio'},
{label: 'Item3', type: 'radio', checked: true},
{label: 'Item4', type: 'radio'}
])
tray.setToolTip('This is my application.')
tray.setContextMenu(contextMenu)
})
Run Code Online (Sandbox Code Playgroud)
这会创建按钮,但我在文档中找不到如何从这些按钮获取事件和读取数据的任何地方。如何?
我看过Electron关于'无框窗口'的文档,但我似乎无法按下自己的工作来关闭应用程序......
任何帮助,将不胜感激!谢谢!
const electron = require('electron');
const url = require('url');
const path = require('path');
const {app, BrowserWindow} = electron;
let mainWindow;
// Listen for app to be ready
app.on('ready', function() {
// create new window
mainWindow = new BrowserWindow({width: 800, height: 600, frame: false});
// Load html into window
mainWindow.loadURL(url.format({
pathname:path.join(__dirname,'main.html'),
protocol: 'file:',
slashes: true
}));
const closeApp = document.getElementById('closeApp');
closeApp.addEventListener('click', () => {
app.quit();
});
});Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, …Run Code Online (Sandbox Code Playgroud)