1、mac截图
使用的是macos-screencapture进行截图
感谢提供好了轮子~macos-screencapture
<template>
<div class="template-macosScreencapture">
<div>{{url}}</div>
<button @click="tap">tap</button>
</div>
</template>
<script>
import path from 'path';
const nativeImage = require('electron').nativeImage;
export default {
data() {
return {
url: ''
};
},
methods: {
tap() {
// 引入github模块
const screencapture = require('macos-screencapture');
// 拼接图片名称,这里是使用时间撮进行拼接
let imgPath = path.resolve('./') + '/public/' + new Date().getTime() + '.png';
const configguration = {
path: imgPath,
options: ['-s'],
};
screencapture(configguration)
.then((res) => {
// 使用electron.nativeImage模块进行解码
const image = nativeImage.createFromPath(res);
const dataUrl = image.toDataURL();
// base64转file对象
const file = this.dataURLtoFile(dataUrl);
console.log(file);
this.url = file;
})
.catch((err) => {
console.log(err);
});
},
dataURLtoFile(dataurl, filename) {
// 本地图片转file对象进行上传后台
const arr = dataurl.split(',');
const mime = arr[0].match(/:(.*?);/)[1];
const bstr = atob(arr[1]);
let n = bstr.length;
const u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {
type: mime
});
},
},
};
</script>
直接复制进去,然后点击tap就能进行截图啦