html2canvas转图片问题

2024-08-31 14:48

本文主要是介绍html2canvas转图片问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在同一页面生成的时候,首先js执行的数据到DOM后生成页面,然后canvas才能生成,如果是纯前端,就要知道图片什么时候才能完全加载出来,否则执行canvas生成的时候是少图片的。canvas用的html2Canvas生成,用到img.onload判断。还有canvas生成的时候会有一条线,可能是背景图的原因,把背景图片换成img标签就OK了。深入的清晰度转化还有待研究,这里只是做了一个简单的生成图片的处理。

 

判断图片onload的封装函数,我这里是分开的两组图片判断,获取图片的总长度,和定义一个count,当count数组==length的时候执行canvas生成

var maxImg = 7, count = 0;
图片数组.forEach(function(item, index) {var src = item,img = new Image();img.index = index;img.onload = function() {//onload里面加载$('.peopleImg:eq(' + this.index + ')').attr('src', this.src);count ++;if(count >= maxImg) {generateCanvas();}}img.src = src;
})

 

function generateCanvas() {//canvas生成图片html2canvas(document.body).then(function(canvas) {//useCORS: true // 如果截图的内容里有图片,可能会有跨域的情况,加上这个参数,解决文件跨域问题document.body.appendChild(canvas);//直接生成,但是页面和生成的图片会同时存在,有两种办法,一种把页面隐藏,一种给生成的图片定位到最高层级,把页面给覆盖掉,我这里用的第二种。//  var newimg =  convertCanvasToImage(canvas);//  newimg.setAttribute('width','100%');//  newimg.style.position = 'fixed';//  newimg.style.top = 0;//  newimg.style.left = 0;//  newimg.style.zIndex = 999;//  document.body.appendChild(newimg);});
}

//转图片

function convertCanvasToImage(canvas) {var image = new Image();image.src = canvas.toDataURL("image/png");return image;
}

 

//这个是单独的数组判断,我这里没用到

function loadImage(imgList) {
   var len = imgList.length;
   var count = 0;
   imgList.forEach(function(item) {
      var img = new Image(item);
      $(..).attr('src', item);
      img.onload = function() {
         count++
        if(count === len) {
            return true
        }
     }
   })
}

 

 

 

 

这篇关于html2canvas转图片问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124206

相关文章

JAVA Calendar设置上个月时,日期不存在或错误提示问题及解决

《JAVACalendar设置上个月时,日期不存在或错误提示问题及解决》在使用Java的Calendar类设置上个月的日期时,如果遇到不存在的日期(如4月31日),默认会自动调整到下个月的相应日期(... 目录Java Calendar设置上个月时,日期不存在或错误提示java进行日期计算时如果出现不存在的

Mybatis对MySQL if 函数的不支持问题解读

《Mybatis对MySQLif函数的不支持问题解读》接手项目后,为了实现多租户功能,引入了Mybatis-plus,发现之前运行正常的SQL语句报错,原因是Mybatis不支持MySQL的if函... 目录MyBATis对mysql if 函数的不支持问题描述经过查询网上搜索资料找到原因解决方案总结Myb

Nginx错误拦截转发 error_page的问题解决

《Nginx错误拦截转发error_page的问题解决》Nginx通过配置错误页面和请求处理机制,可以在请求失败时展示自定义错误页面,提升用户体验,下面就来介绍一下Nginx错误拦截转发error_... 目录1. 准备自定义错误页面2. 配置 Nginx 错误页面基础配置示例:3. 关键配置说明4. 生效

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

Springboot3统一返回类设计全过程(从问题到实现)

《Springboot3统一返回类设计全过程(从问题到实现)》文章介绍了如何在SpringBoot3中设计一个统一返回类,以实现前后端接口返回格式的一致性,该类包含状态码、描述信息、业务数据和时间戳,... 目录Spring Boot 3 统一返回类设计:从问题到实现一、核心需求:统一返回类要解决什么问题?

Java使用Spire.Doc for Java实现Word自动化插入图片

《Java使用Spire.DocforJava实现Word自动化插入图片》在日常工作中,Word文档是不可或缺的工具,而图片作为信息传达的重要载体,其在文档中的插入与布局显得尤为关键,下面我们就来... 目录1. Spire.Doc for Java库介绍与安装2. 使用特定的环绕方式插入图片3. 在指定位

maven异常Invalid bound statement(not found)的问题解决

《maven异常Invalidboundstatement(notfound)的问题解决》本文详细介绍了Maven项目中常见的Invalidboundstatement异常及其解决方案,文中通过... 目录Maven异常:Invalid bound statement (not found) 详解问题描述可

idea粘贴空格时显示NBSP的问题及解决方案

《idea粘贴空格时显示NBSP的问题及解决方案》在IDEA中粘贴代码时出现大量空格占位符NBSP,可以通过取消勾选AdvancedSettings中的相应选项来解决... 目录1、背景介绍2、解决办法3、处理完成总结1、背景介绍python在idehttp://www.chinasem.cna粘贴代码,出

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.