vue html2canvas生成base64图片和图片高度

vue html2canvas生成图片

bash 复制代码
exportAsBase64() {
      const ele = document.getElementById('content');
      html2canvas(ele, {
        dpi: 96, // 分辨率  
        scale: 2, // 设置缩放  
        useCORS: true, // 允许canvas画布内跨域请求外部链接图片  
        bgcolor: '#ffffff', // 背景颜色  
        logging: false, // 不打印日志  
        allowTaint: true, // 允许跨域  
        scrollY: 0,
        scrollX: 0
      }).then((canvas) => {
        // 使用canvas的toDataURL方法将canvas转换为Base64图片  
        const base64Image = canvas.toDataURL('image/png'); // 你可以根据需要更改'image/png'为'image/jpeg'等  

        // 在这里你可以对base64Image做进一步处理,比如将其赋值给img元素的src,或者发送到服务器等  
        console.log(base64Image); // 打印Base64图片数据到控制台  
      })
        .catch((error) => {
          console.error('导出图片失败:', error);
        });
    },

加上异步 和 base64图片高度

javascript 复制代码
    async exportAsBase64() {
      try {
        const ele = document.getElementById('content');

        // 临时设置元素的高度(注意:这可能会破坏你的布局,所以你可能需要在之后恢复它)  
        ele.style.height = '1000px';
        ele.style.overflow = 'hidden'; // 如果需要的话,可以添加这个来隐藏超出部分  

        const canvas = await html2canvas(ele, {
          dpi: 96, // 分辨率    
          scale: 2, // 设置缩放    
          useCORS: true, // 允许canvas画布内跨域请求外部链接图片    
          bgcolor: '#ffffff', // 背景颜色    
          logging: false, // 不打印日志    
          allowTaint: true, // 允许跨域    
          scrollY: 0,
          scrollX: 0
        });

        // 使用canvas的toDataURL方法将canvas转换为Base64图片    
        const base64Image = canvas.toDataURL('image/png'); // 你可以根据需要更改'image/png'为'image/jpeg'等

        // 恢复元素的高度(如果需要的话)  
        ele.style.height = ''; // 清除之前设置的高度  
        ele.style.overflow = ''; // 清除之前设置的overflow  

        // 在这里你可以对base64Image做进一步处理,比如将其赋值给img元素的src,或者发送到服务器等    
        // console.log(base64Image); // 打印Base64图片数据到控制台   

        return await this.uploadImg(base64Image)
      } catch (error) {
        console.error('导出图片失败:', error);
        return ''
      }
    },
相关推荐
云水一下3 小时前
TypeScript 从零基础到精通(五):高级类型与泛型
前端·javascript·typescript
counterxing3 小时前
vibe coding 之后,我更不想打字了
前端·agent·ai编程
copyer_xyf4 小时前
Python 模块与包的导入导出
前端·后端·python
研☆香4 小时前
es6新特性功能介绍(四)
前端·ecmascript·es6
微扬嘴角4 小时前
React篇1--JSX语法规则、组件、组件实例的3大特性
前端·react.js·前端框架
copyer_xyf4 小时前
Python venv 虚拟环境
前端·后端·python
无聊的老谢5 小时前
Vue 3 + TypeScript 构建大型电信运维平台的前端架构设计
前端·vue.js·typescript
xiaofeichaichai5 小时前
Map / Set / WeakMap / WeakSet
前端·javascript
李可以量化5 小时前
成交量的终极量化策略:价量共振指标完整实现(下篇)
前端·数据库·人工智能
copyer_xyf6 小时前
Python 如何同时做很多事:进程、线程、协程
前端·后端·python