html2canvas截图拍照,结合element小图大图预览

29 篇文章 2 订阅
26 篇文章 0 订阅
cnpm i html2canvas -S //安装html2canvas
cnpm i jquery -S //安装jquery

script标签内引用

import html2canvas from "html2canvas";
import $ from "jquery";

视频区域(所需要截图的区域,博主的区域是canvas的一个帧视频区域,你可以用一张图片代替)

 <canvas id="canvas" width="1280" height="720">Your browser sucks.</canvas>

截图到这个容器(但这个容器我们并不会真正去显示图片,反而会给他设置隐藏,我们图片会转成base64用img标签实现)

 <canvas id="myCanvas"></canvas>

点击该标签进行截图

 <i @click="getCanvasPic" class="el-icon-camera" style="margin-right: 15px"></i>

在data()中创建一个变量

data(){
    return{
    canvass:[] //截图后图片存放这里
  }
}

vue 实例中实现getCanvasPic  (注释的是保存下载的方法,如果你需要的话)

    getCanvasPic() {
      // 截图
      const c = document.getElementById("myCanvas");
      const cxt = c.getContext("2d");
      const canvas = document.querySelector("#canvas");
      //设置图片大小
      cxt.drawImage(canvas, 0, 0, 240, 144);
       //将canvas转为base64
      var url = canvas.toDataURL();
      var newImg = document.createElement("img");
      newImg.src = url;
      // 往数组第一个添加数据
      this.canvass.unshift(url);
      console.log(this.canvass);
      // this.saveAsPNG(c)
    },
    // saveAsPNG(canvas) {
    //   // 转为图片
    //   return canvas.toDataURL("image/png");
    //   console.log(canvas.toDataURL("image/png"))
    // },
    // downLoad(url) { // 下载图片
    //     const oA = document.createElement('a')
    //     oA.download = new Date()// 设置下载的文件名,默认是'下载'
    //     oA.href = url
    //     document.body.appendChild(oA)
    //     oA.click()
    //     oA.remove() // 下载之后把创建的元素删除
    // },

这样我们就拿到了数据,可以开始渲染了

<div class="box">
      <span v-for="(item,i) in canvass" :key="i">
               <div class="demo-image__preview">
               <el-image
               style="width: 128px; height: 72px;margin-left:10px"
               :src="item"
               :preview-src-list="item.split('??????')" //问号是为了将字符串变成数组提供的
           ></el-image>
       </div>
   </span>
</div>

看看效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值