我需要在Electron应用中呈现网页并截取屏幕截图,而不向用户显示此网页。我该怎么办?什么是最好的方法?
我尝试创建一个webview元素并通过给它一个绝对定位和顶部和左边的-99999px来隐藏,但是时不时的capturePage方法永远停止。当我通过使用检查器删除该CSS使其可见时,它看起来是空白但立即呈现页面并调用回调。
我尝试offscreen rendering启动BrowserWindow,但它实际上创建了另一个没有标题栏的窗口,如下所示:
任何想法如何制作这些作品或其他方法?
答案 0 :(得分:1)
试试这个。此示例将文件另存为本地计算机。
const { app, BrowserWindow } = require('electron')
const fs = require("fs")
app.disableHardwareAcceleration()
let win
app.once('ready', () => {
win = new BrowserWindow({
webPreferences: {
offscreen: true
}
})
win.loadURL('http://github.com')
win.webContents.on('paint', (event, dirty, image) => {
// Example Code
fs.writeFile('ex.png', image.toPNG(), (err) => {
if (err) throw err;
console.log('The file has been saved!');
})
})
win.webContents.setFrameRate(30)
})