截屏插件 js-web-screen-shot(Vue 、html)

这篇具有很好参考价值的文章主要介绍了截屏插件 js-web-screen-shot(Vue 、html)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近有个需求是需要再页面上截屏并上传的,于是找到了这个插件【js-web-screen-shot】

vue中使用该插件来截屏

先在package.json中添加这个

    "js-web-screen-shot": "^1.8.6"

然后 npm install

然后在对应页面的vue文件的 script 中 import

import ScreenShort from 'js-web-screen-shot'

接下就可以使用了;
使用方式大概就是 定义一个按钮,来触发构建该插件对象(也可以用其他方式)
然后就截图,截图完成后插件会调用完成的回调方法,该回调方法会将截图的图片base64传进来,然后拿到这个base64就可以进行自己的处理逻辑了。

 <button @click="btnClick()" style="margin-left: 5px">点击开始截图</button>

methods 里面定义以下方法

// 按钮点击时间方法,构建插件对象
 btnClick() {
 // 更多参数 和使用可以看它包里面的README.md文件
      const screenShotHandler = new ScreenShort({
        // 是否启用webrtc,值为boolean类型,值为false则使用html2canvas来截图
        enableWebRtc: false,
        // 层级级别,这个要比你页面上其他元素的z-index的值大,不然截不了
        level: 2001,
        completeCallback: this.callback, // 截图成功完成的回调
        closeCallback: this.closeFn // 截图取消的回调
      })
    },
  
   callback(base64data) {
      var image = new Image()
      image.src = base64data
      image.onload = () => {
        var canvas = this.convertImageToCanvas(image)
        var url = canvas.toDataURL('image/jpeg') // base64编码的图片
        // 通过atob将base64进行编码
        var bytes = window.atob(url.split(',')[1])
        // 处理异常,将ASCII码小于0的转换为大于0,进行二进制转换
        var buffer = new ArrayBuffer(bytes.length)
        // 生成一个8位数的数组
        var uint = new Uint8Array(buffer)
        for (var j = 0; j < bytes.length; j++) {
          uint[j] = bytes.charCodeAt(j)// 根据长度返回相对应的Unicode 编码
        }
        // Blob对象  // type 为图片的格式
        var imageFile = new Blob([buffer], { type: 'image/jpeg' })
        const formData = new FormData()
        // 上传的参数名是file,数据是该图片的blob对象,文件名是当前时间戳.jpeg;
        //如果不指定第三个参数文件名,那么默认文件名就是blob,没有后缀,后端的上传接口如果要截取文件名的话会出问题
        formData.append('file', imageFile, Date.now() + '.jpeg')
        // 我这儿是上传到某个地方了,上传地址是在data中定义的uploadRequestUrl
        axios.post(this.uploadRequestUrl, formData, {
          'Content-type' : 'multipart/form-data'
        }).then((res) => {
          // 上传成功的处理
        }).catch(e => {
          errorMsg('截图上传失败')
        })
      }
    },
convertImageToCanvas(image) {
      var canvas = document.createElement('canvas')
      canvas.width = image.width
      canvas.height = image.height
      canvas.getContext('2d').drawImage(image, 0, 0)
      return canvas
    },
    closeFn() {
      // 取消截图的回调
    }

普通html中使用该插件来截图

自己又琢磨着想在html中使用这个插件。
要先把这个插件的dist(我这个dist包是直接从vue的node_modules中复制过来的)包下载下来放到项目中去,如下图
前端截图插件,自我记录,javascript,前端,vue.js,html
上图中的这个,也是定义插件对象,其中的宽高是截屏时那个画布的宽高,表示最大能截屏的区域大小

function btn(){
   new screenShotPlugin({enableWebRtc: false, level: 2001, 
   canvasWidth : 1200, canvasHeight : 1200,
   completeCallback: callback,closeCallback: closeFn});
        }

这个值我开始没指定,然后截屏的大小就只有那个按钮那么小,没法全屏;
后面指定了这2个值的大小,就只能截这个大小的区域,也不是全屏;

后面看了 作者的博客 ,才反映过来,窝草,为啥要自己去琢磨啊,人家有demo啊。
从这个 html的demo地址 下载下来,解压,放到项目里面,按照deml.html就ok了。文章来源地址https://www.toymoban.com/news/detail-657344.html

到了这里,关于截屏插件 js-web-screen-shot(Vue 、html)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【开发环境】VSCode 安装插件 ( 简体中文插件 | Open in Browser 插件 | Auto Rename Tag 插件 | JS-CSS-HTML Formatter 插件 )

    【开发环境】VSCode 安装插件 ( 简体中文插件 | Open in Browser 插件 | Auto Rename Tag 插件 | JS-CSS-HTML Formatter 插件 )

    在 VSCode 中 , 左侧的 按钮 是 扩展 按钮 , 使用 Ctrl + Shift + X 也可以快速进入插件安装界面 ; 在弹出的 扩展 面板中 , 可以搜索和安装插件 ; 在扩展工具面板中 , 搜索 Chinese , 可以看到 简体中文 插件 , 安装该插件后 , 界面会变为简体中文界面 ; 安装完毕后 , 重启 VSCode 即可完成

    2024年02月13日
    浏览(5)
  • Web课程设计——小米商城页面实战(html,css,js实现)

    Web课程设计——小米商城页面实战(html,css,js实现)

    主要完成了三个页面,效果如下:   主页面html部分源码: 主页面css部分: js部分:

    2024年02月11日
    浏览(7)
  • web期末大作业--网页设计 HTML+CSS+JS(附源码)

    web期末大作业--网页设计 HTML+CSS+JS(附源码)

    目录 一,作品介绍 二.运用知识 三.作品详情 四.部分作品效果图 我的:​编辑 五.部分源代码 六.文件目录  七.源码 作品介绍:该作品是一个是一个关于影视作品的网页,一共有五个页面,主页,最新,排行,我的,联系我们 1.HTML是超文本标记语言,是为浏览器设计的语言

    2024年02月06日
    浏览(8)
  • Web实战丨基于django+html+css+js的在线博客网站

    Web实战丨基于django+html+css+js的在线博客网站

    本期内容:基于Django+Html+Css+JavaScript的在线博客网站 实验环境: vscode或pycharm python(3.11.4及以上) django 项目下载地址:https://download.csdn.net/download/m0_68111267/88731015 使用Django+HTML+CSS+JS开发一个含登录界面的在线博客网站,用户可以通过网站发布博客,管理员可以登录后台管理博客

    2024年01月16日
    浏览(33)
  • 大二学生web期末大作业 在线电影网站 HTML+CSS+JS

    大二学生web期末大作业 在线电影网站 HTML+CSS+JS

    🌩️ 精彩专栏推荐👇🏻👇🏻👇🏻 💂 作者主页: 【进入主页—🚀获取更多源码】 🎓 web前端期末大作业: 【📚HTML5网页期末作业 (1000套) 】 🧡 程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作 (110套) 】 📔网站布局方面 :计划采用目前主流的、能兼容各大主

    2024年02月03日
    浏览(13)
  • 【QT进阶】Qt Web混合编程之html、 js的简单交互

    【QT进阶】Qt Web混合编程之html、 js的简单交互

    往期回顾 【QT进阶】Qt Web混合编程之VS2019 CEF的编译与使用(图文并茂超详细介绍)-CSDN博客 【QT进阶】Qt Web混合编程之QWebEngineView基本用法-CSDN博客 【QT进阶】Qt Web混合编程之CMake VS2019编译并使用QCefView(图文并茂超详细版本)-CSDN博客【QT进阶】Qt Web混合编程之VS2019 CEF的编译

    2024年04月22日
    浏览(4)
  • 【Vue 插件篇】粘贴板插件 clipboard.js 与 原生JS中的复制、剪切、粘贴

    【Vue 插件篇】粘贴板插件 clipboard.js 与 原生JS中的复制、剪切、粘贴

    在前端项目开发过程中,文本的复制粘贴功能经常会被用到。如上图,将列表中的链接地址进行复制,到浏览器中粘贴打开。再或者一些网站上,通过按钮粘贴输入框中的代码的功能等等。今天,我们就来讲一下,Vue 项目中用于复制的一个插件 clipboard。 clipboard官网 数字化管

    2024年01月19日
    浏览(5)
  • HTML+CSS+JS做一个好看的个人网页—web网页设计作业

    HTML+CSS+JS做一个好看的个人网页—web网页设计作业

    个人网页(html+css+js)——网页设计作业 带背景音乐(The way I still Love you)、樱花飘落效果、粒子飘落效果 页面美观,样式精美 涉及(html+css+js),下载后可以根据自己需求进行修改 完整源码在这里获取https://download.csdn.net/download/weixin_61370021/87240400 主页 博客页面 视频页面

    2024年02月03日
    浏览(16)
  • Web实战丨基于django+html+css+js的电子商务网站

    Web实战丨基于django+html+css+js的电子商务网站

    本期内容:基于Django+HTML+CSS+JS的电子商务网站 实验环境: vscode或pycharm python(3.11.4) django 代码下载地址:https://download.csdn.net/download/m0_68111267/88725954 使用Django+HTML+CSS+JS开发一个含登陆界面的电子商务网站。本项目共分为六大模块: 用户信息界面 商品信息界面 购物车界面 送货

    2024年01月25日
    浏览(38)
  • Web实战丨基于django+html+css+js的学院门户网站

    Web实战丨基于django+html+css+js的学院门户网站

    本期内容:基于Django+Html+Css+JavaScript的学院门户网站 项目需求: python django 项目下载地址:https://download.csdn.net/download/m0_68111267/88726654 Web系统与技术课程旨在培养学生对Web系统的设计、开发和管理能力。课程内容包括Web系统的基本概念、体系结构和工作原理,以及常用的Web开

    2024年02月02日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包