美文网首页
electron-vue 调用截图两种方法

electron-vue 调用截图两种方法

作者: Han涛_ | 来源:发表于2022-08-05 09:39 被阅读0次

调用QQ的截图方法进行截图
1、采用第三方现有截图工具,添加dll和exe文件,
下载地址:
将下载的这两个文件放在_dirname 指向的文件夹下
2、background.js 主进程文件中需引入

import {globalShortcut, BrowserWindow} from 'electron'
const { execFile } = require('child_process')

核心代码, 在渲染的mainWindow = new BrowserWindow({})中

globalShortcut.register('CommandOrControl+Alt+Z', function(){
  if(process.platform === 'darwin'){
    handleScreenShots()
  } else {
    screenWindow()
  }
})
function screenWindow(){
  let url = path.resolve(_static, '../build/PrintScr.exe')
  if(isDevelopment && !process.env.IS_TEST){
    // 生产环境
    url = path.join(path.dirname(app.getPath('exe')), '/PrintScr.exe') // 获取打包后exe文件的位置,并允许指定文件。
  }
  let screenWindow = execFile(url)
  mainWindow.minimize()
  screenWindow.on('exit', (code) => {
    mainWindow.restore()
    if(code) console.log(code)
  })
}
function handleScreenShots(){
  exec('screencapture -i -U -c', (error, stdout, stderr) =>{
    console.log('error', error)
  })
}

打包时需要将依赖exe文件单独设置打包。我将依赖单独放在了一个build文件中。

// vue.config.js
module.exports = {
  pluginOptions: {
    electrinBuilder: {
      builderOptions: {
        extraResources: {
          form: 'build',
          to: '../'
        }
      }
    }
  }
}

利用 html2canvas 截取当前屏幕指定内容存为图片
// ref 内的内容为所截取图片的内容

<template>
  <div ref="creditQrCodeShare">
      内容
    <button @click="saveImage">点击保存图片</button>
  <div>
</template>

import html2canvas from 'html2canvas';

methods: {
  saveImage(){
    // 第一个参数是需要生成截图的元素,第二个是自己需要配置的参数,高度等
    html2canvas(this.$refs.creditQrCodeShare, {
      backgroundColor: null,  // 画出来的图片有白色的边框,不要可设置背景为透明色
      useCORS: true,  // 支持图片跨域
      scale: 1  // 设置放大的倍数
    }).then(canvas => {
      // 把生成的base64位图片
      let url =canvas.toDataURL('image/png');
      this.imgUrl = url;
      let a = document.createElement('a');
      let event = new MouseEvent('click');
      a.download = name || this.newDates();
      a.href = this.imgUrl;
      a.dispatchEvent(event);
    })
  }
}

相关文章

网友评论

      本文标题:electron-vue 调用截图两种方法

      本文链接:https://www.haomeiwen.com/subject/zuxpwrtx.html