博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给HTML拍个照(如何将html元素转成图片)
阅读量:4573 次
发布时间:2019-06-08

本文共 1013 字,大约阅读时间需要 3 分钟。

本文主要介绍一款好用的库,如何将HTML生成图片。

1、简述

最近在做的项目中,需要将界面转换成模板保存下来,本来想使用自适应布局完成,但是页面较复杂,模板较多,生成的模板使用过多的HTML标签,于是想着能否将HTML生成图片,保存及获取的时候直接使用图片,于是网上查了下,发现已经有人做好了轮子:,直接拿来滚滚就好啦~

2、使用

安装

npm install html2canvas --save-dev

html转为canvas

html2canvas.js可将html元素渲染为 canvas,这里只需调用 html2canvas(element[, options]) 即可。

html2canvas(document.body).then(function(canvas) {        document.body.appendChild(canvas);    });

canvas转image

基于原生canvas的 toDataURL 方法可以将 canvas 输出为data: URI类型的图片地址,再将该图片地址赋值给元素的src属性即可~

html2canvas($dom, {    useCORS: true, // 【重要】开启跨域配置    scale: 2, // canvas放大倍数,增加图片的清晰度    logging: false // 是否开启日志}).then(canvas => {    let imageSrc = canvas.toDataURL("image/png");})

也可以使用第三方库,调用其 convertToJPEG 方法即可。它也是基于canvas.toDataURL的封装,相比原生的canvas API对于转为图片的功能上考虑更为具体适合在项目中使用。

html2canvas($dom).then(canvas => {    let imageSrc = canvas2Image.convertToJPEG(canvas, 100, 100).getAttribute('src');})

一个坑

canvas对于图片资源的请求有 同源限制,如果画布中包含跨域的图片资源则会污染画布,造成含有图片的部分一片空白,因此必须使用同源的图片哦~

转载于:https://www.cnblogs.com/webhmy/p/9596945.html

你可能感兴趣的文章
java 序列化与反序列化
查看>>
nginx安装环境
查看>>
Adventures with Testing BI/DW Application
查看>>
XML
查看>>
Flash Builder4注册机
查看>>
如何把网页变成灰色效果
查看>>
如何让程序(如java Hello)只启动一次?
查看>>
rpath 与runpath
查看>>
WPF星空效果
查看>>
SQL语言基础-基本概念
查看>>
用迭代创建级联目录
查看>>
Docker安装Nginx
查看>>
Usenet:P2P下载的替代方法
查看>>
POJ 2155 Matrix (D区段树)
查看>>
我的小前端 (1)—— 安卓机和ios机的区别
查看>>
andorid简易定位
查看>>
前端基础标签
查看>>
PHP常见的加密算法
查看>>
react-navigation 简介
查看>>
源码编译安装php7
查看>>