使用html2canvas实现将html内容写入到canvas中生成图片


Posted in HTML / CSS onJanuary 03, 2020

之前我们简单的了解了canvas的基本用法,这里我们来了解下如何将html内容写入到canvas中生成图片,这里我使用到了html2canvas插件,这个插件是基于canvas实现的

html2canvas官网: http://html2canvas.hertzen.com/

一:下载html2canvas插件

1:直接下载html2canvas插件

直接点击html2canvas.min.js,然后直接ctrl+s进行保存即可

使用html2canvas实现将html内容写入到canvas中生成图片

2:使用npm进行下载

npm install html2canvas

二:html2canvas使用介绍

在html2canvas中主要使用两种方法

1:将html内容写入到canvas中

html2canvas(element,options).then((canvas) =>{})

参数说明:

element:需要将html内容写入canvas的jQuery对象

options:配置信息

常用的配置基本信息:

scale:缩放比例,默认为1

allowTaint:是否允许跨域图像污染画布,默认为false

useCORS:是否尝试使用CORS从服务器加载图像,默认为false

width:canvas画布的宽度,默认为jQuery对象的宽度

height:canvas画布的高度,默认为jQuery对象的高度

backgroundColor:/画布的背景色,默认为透明(#fff),参数可以为#表示的颜色,也可以使用rgba

2:将canvas画布信息转化为base64格式图片

canvas.toDataURL("image/png")

如果你的html内容中有指定的内容不写入到canvas中的话,你可以给标签添加如下属性

data-html2canvas-ignore="true"

三:简单实例

1:引入html2canvas

<script src="js/html2canvas.min.js"></script>

或者使用import引入html2canvas

import html2canvas from 'html2canvas';

2:需要转化的的html内容

<div class="capture">
    <img src="./wj.jpg" alt="">
    <div>
        <span style="color: #f00;letter-spacing: 20px">这是文字文字</span>
        <span data-html2canvas-ignore="true">不写入canvas</span>
    </div>
</div>

3:将html内容写入canvas并转化为base64图片

html2canvas(document.getElementsByClassName("capture")[0], {
        scale: 2,//缩放比例,默认为1
        allowTaint: false,//是否允许跨域图像污染画布
        useCORS: true,//是否尝试使用CORS从服务器加载图像
        width: '500',//画布的宽度
        height: '500',//画布的高度
        backgroundColor: '#000000',//画布的背景色,默认为透明
    }).then((canvas) => {
        //将canvas转为base64格式
        var imgUri = canvas.toDataURL("image/png");
    });
这里注意jQuery对象是do

这里注意jQuery对象是document.getElementsByClassName("capture")[0]而不是document.getElementsByClassName("capture"),document.getElementsByClassName("capture")是DOM原生对象而不是jQuery对象

根据如上就可以实现将html内容写入canvas并转化为base64图片,这时候我们就可以将base64内容传到服务端,服务端可以将图片进行保存起来

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
微信小程序实现可实时改变转速的css3旋转动画实例代码
Sep 11 HTML / CSS
CSS3盒子模型详解
Apr 24 HTML / CSS
CSS3 Columns分列式布局方法简介
May 03 HTML / CSS
几个CSS3的flex弹性盒模型布局的简单例子演示
May 12 HTML / CSS
浅谈CSS3动画的回调处理
Jul 21 HTML / CSS
CSS3 实现童年的纸飞机
May 05 HTML / CSS
CSS3实现酷炫的3D旋转透视效果
Nov 21 HTML / CSS
详解HTML5中ol标签的用法
Sep 08 HTML / CSS
基于HTML5 Canvas的3D动态Chart图表的示例
Nov 02 HTML / CSS
深入了解canvas在移动端绘制模糊的问题解决
Apr 30 HTML / CSS
amazeui 验证按钮扩展的实现
Aug 21 HTML / CSS
详解CSS中postion和opacity及cursor的特性
Aug 14 HTML / CSS
HTML5去掉输入框type为number时的上下箭头的实现方法
Jan 03 #HTML / CSS
使用canvas实现黑客帝国数字雨效果
Jan 02 #HTML / CSS
HTML5中外部浏览器唤起微信分享
Jan 02 #HTML / CSS
Html5获取高德地图定位天气的方法
Dec 26 #HTML / CSS
鼠标滚轮事件和Mac触控板双指事件
Dec 23 #HTML / CSS
HTML5 Canvas 实现K线图的示例代码
Dec 23 #HTML / CSS
html5利用canvas实现颜色容差抠图功能
Dec 23 #HTML / CSS
You might like
Home Coffee Roasting
2021/03/03 咖啡文化
PHP函数eval()介绍和使用示例
2014/08/20 PHP
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
基于javascript bootstrap实现生日日期联动选择
2016/04/07 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
2019/04/12 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
Pycharm设置界面全黑的方法
2018/05/23 Python
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
详解python多线程之间的同步(一)
2019/04/03 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
pyspark给dataframe增加新的一列的实现示例
2020/04/24 Python
python不同系统中打开方法
2020/06/23 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
业务主管岗位职责
2013/11/20 职场文书
金属材料工程毕业生个人的自我评价
2013/11/28 职场文书
元旦活动感言
2014/03/08 职场文书
大学生学期个人总结
2015/02/12 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
Python max函数中key的用法及原理解析
2021/06/26 Python
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL