[vue] 导出图片

该文章介绍了如何在Vue项目中利用html2canvas库进行页面截图。首先通过npm安装html2canvas,然后导入并创建截图函数,设置canvas尺寸,调用html2canvasAPI,最后将canvas转换为blob并下载为图片。
npm install --save html2canvas
import html2canvas from "html2canvas"
    create_image() {
      let shareContent = this.$refs.capture //需要截图的包裹的(原生的)DOM 对象
      let canvas = document.createElement('canvas') //创建一个canvas节点
      let scale = 1 //当前节点的1倍像素
      // let scale = 1.5 //当前节点的1.5倍像素
      // let scale = window.devicePixelRatio //视网膜屏幕,设备像素比,好的显示器是2,普通显示器的是1。
      canvas.width = shareContent.offsetWidth * scale //获取dom 宽度* 定义canvas 宽度 * 缩放
      canvas.height = shareContent.offsetHeight * scale //获取dom 高度*定义canvas高度 *缩放
      canvas.getContext('2d').scale(scale, scale) //获取context,设置scale
      html2canvas(shareContent, {
        dpi: window.devicePixelRatio,
        scale: scale, // 添加的scale 参数
        useCORS: true,
        canvas: canvas, //自定义 canvas
        logging: true, //日志开关
      }).then((canvas) => {
        canvas.toBlob(
          function (blob) {
            const eleLink = document.createElement('a')
            eleLink.download = `《导出的名字》.png`
            eleLink.style.display = 'none'
            eleLink.href = URL.createObjectURL(blob)
            document.body.appendChild(eleLink)
            eleLink.click()
            document.body.removeChild(eleLink)
          },
          'image/png',
          1
        )
      })
    },

参考:

vue 导出图片

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值