您现在的位置是:网站首页>软件开发>前端技术栈>vuevue

vue中使用html2canvas的坑(1)网络图片空白

风口下的猪2022-09-02vue

简介

html2canvas中使用网络图片,就会引起图片空白。

解决办法是

(1)先将网络图片地址转为base64;

(2)重新将其赋值到dom的img src中;

(3)再执行canvas

/**dom转canvas图片 */
        toImage() {
            var that=this;
            const image = new Image();
            image.setAttribute('crossOrigin','anonymous');
            image.src=''+this.picShow;
            image.onload=() => {
                var canvas=document.createElement('canvas');
                canvas.width=image.width;
                canvas.height=image.height;
                var context=canvas.getContext('2d');
                context.drawImage(image,0,0,image.width,image.height);
                var quality=0.8;
                var base64=canvas.toDataURL('image/jpeg',quality);
                that.picShow=base64;
                let content = this.$refs.imageTofile;
                let scrollHeight = content.scrollHeight;
                let scrollWidth = content.scrollWidth;
                html2canvas(content,{
                    scale: window.devicePixelRatio*1,
                    useCORS: true , //开启跨域配置,但和allowTaint不能共存
                    width:scrollWidth,
                    height:scrollHeight,
                    windowWidth:scrollWidth,
                    windowHeight:scrollHeight,
                    x:0,
                    y:window.pageYOffset,
                    backgroundColor:'#ffffff'
                }).then((canvas) => {
                    this.operType = 'edit'
                    let dataURL = canvas.toDataURL("image/jpg");
                    let link = document.createElement("a");    
                    link.href = dataURL;
                    let filename = `${new Date().getTime()}.jpg`;  //文件名称
                    link.setAttribute("download", filename);
                    link.style.display = "none"; //a标签隐藏
                    document.body.appendChild(link);
                    link.click();
                });
            }
        }



很赞哦! (0)

  • 软件开发
  • 素质要求
  • 计算机基础
  • 架构
  • 安全
  • 性能
  • 运维
  • 尾页
  • 数据库
  • 开发终端
  • 语言基础
  • 项目管理
  • 产品设计
  • 系统
  • 工作规范
  • 计算机网络
  • 前端技术栈
  • 数据结构
  • 计算机组成原理
  • 后端技术栈
  • 性能优化
  • 安全设计
  • 常见模块
  • 计算机操作系统
  • 服务器
  • python
  • MySQL
  • thinkphp
  • PHP
  • Java
  • JavaScript
  • Windows
  • Linux
  • 特效
  • indexedDB
  • vue
  • 淘宝联盟
  • Ionic
  • Angular
  • 微信小程序
  • 支付宝小程序
  • uni-app
  • css/sass/less
  • 支付
  • socket
  • 爬虫
  • web性能优化
  • 消息推送
  • CVM
  • sqlite
  • Redis
  • 前端基础
  • 基础
  • element
  • Nginx
  • yii2
  • /ponder/index.php/index/catelist/catelist/cateid/10.html

    相关阅读 (同一栏目)

    << /

    标签云

    站点信息

    • 文章统计:528篇
    • 移动端访问:扫码进入SQ3R