electron 截图 插件
时间: 2023-09-05 18:13:44 浏览: 91
你可以使用 Electron 的 `desktopCapturer` API 来进行截图。这个 API 允许你从用户的显示器中捕获屏幕、窗口或标签页的内容。以下是一个简单的例子:
```javascript
const { desktopCapturer } = require('electron')
desktopCapturer.getSources({ types: ['window', 'screen'] }).then(async sources => {
for (const source of sources) {
if (source.name === 'Entire Screen' || source.name === 'Screen 1') {
try {
const stream = await navigator.mediaDevices.getUserMedia({
audio: false,
video: {
mandatory: {
chromeMediaSource: 'desktop',
chromeMediaSourceId: source.id,
minWidth: 1280,
maxWidth: 1280,
minHeight: 720,
maxHeight: 720
}
}
})
handleStream(stream)
} catch (e) {
handleError(e)
}
return
}
}
})
function handleStream (stream) {
const video = document.createElement('video')
video.srcObject = stream
video.onloadedmetadata = () => {
video.play()
const canvas = document.createElement('canvas')
canvas.width = video.videoWidth
canvas.height = video.videoHeight
const ctx = canvas.getContext('2d')
ctx.drawImage(video, 0, 0, canvas.width, canvas.height)
const imgUrl = canvas.toDataURL()
// 在这里可以上传 imgUrl 到服务器或者进行其他操作
}
}
function handleError (e) {
console.log(e)
}
```
这个例子中,我们首先使用 `desktopCapturer.getSources` 来获取可以捕获的源,然后选择一个源来获取媒体流,最后使用 `canvas` 来抓取视频帧并将其转换为图片数据。你可以使用这个图片数据来上传到服务器或者进行其他操作。
阅读全文