html2canvas实现网页保存为图片

本文介绍如何使用html2canvas库将网页内容转换为图片,包括解决跨域图片问题,提供两种canvas转img的方法,并实现高保真图片生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天我们来学习一波怎么将一个网页生成一张图片的,主要的应用场景在,分享,截图等
我主要使用的是一个js库 html2canvas ,下面来了解一下他的详细用法吧。

大家可以去这里https://download.youkuaiyun.com/download/qq_20343517/10739325下载这个库
然后直接通过script标签引入或者通过其他方式导入也可以。

基于html2canvas.js 可将一个元素渲染为canvas,只需要简单的调用,html2canvas(element[,options]);即可,下列html2canvas方法会返回一个包含有canvas元素的promise:

html2canvas(document.body,{useCORS: true}).then(function(canvas) {
   document.body.appendChild(canvas);
});
  • 由于canvas对于图片资源的同源限制,经测试,同时包含cdn图片和本地图片的资源的页面,只有本地图片能够被渲染出来。

canvas转img

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

方案二:使用第三方库 Canvas2Image.js 调用其 convertToImage 方法即可

<div id="box">
    <h1>hello world</h1>
    <img style="width:100px;" src="abc.png" alt="">
    <p style="background-color:#000;color:#fff;border:1px solid red;">我是一只大灰狼</p>
</div>
<a href="#" id="a" download>点击下载图片</a>
html2canvas(document.getElementById("box"),{useCORS: true}).then(function(canvas) {
    url=canvas.toDataURL();
    a=document.querySelector('#a');
    a.href=url;
});

高保真图片

可以参考这个链接https://segmentfault.com/a/1190000011478657

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值