Tengo un código que toma una captura de pantalla y la almacena en una variable.
Aquí está el código:
takeScreenshot() { desktopCapturer.getSources({ types: ['screen'], thumbnailSize: { width: 800, height: 600 }) .then( (sources: { thumbnail: { toDataURL: () => any; }; }[]) => { const theimage = sources[0].thumbnail.toDataURL(); // Thumbnail size image }) }Ahora quiero guardar esta captura de pantalla en mi computadora.
He intentado esto:
fs.writeFile('myimage.png', this.theimage, function(err: any) { if (err) { console.error('Failed to save ' + err); } else { console.log('Saved: ' + 'myimage.png'); } });Pero el archivo que crea no se abre como una imagen.
¿Cómo puedo guardar esta captura como una imagen?
Puede usar contents.capturePage([dimensions]) en su archivo principal. si no proporciona un argumento de dimensiones, capturará toda la ventana. Esto devolverá una promesa con una imagen nativa y puede usar fs.writeFile para crear un nuevo archivo de imagen.
muestra
const { app, BrowserWindow } = require('electron'); const fs = require('fs'); const initWindow = () => { const window = new BrowserWindow({ width: 800, height: 600, }); window.loadFile('index.html'); return window; } app.once('ready', async () => { const window = initWindow(); const image = await window.webContents.capturePage(); fs.writeFile('image.png', image.toPNG()); });