Asp.Net 将HTML中通过dom-to-image.js标签div内的内容转化为图片保存到本地
由于客户的需求,将js写出来的一个统计能够保存到本地。作为码奴的我只能慢慢搬砖咯!一开始使用的是html2canvas.js。功能是可以实现,但是有缺陷。话不多说开始搞!
1、引入几个JS库
①:jquery 版本还没试过我用的是3.1.1 (不贴链接了,这个要找很容易)
②:dom-to-image.js (点击下载 下载下来解压开在src目录里面)
③:FileSaver.js (点击下载 下载下来解压开在src目录里面)
2、新建HTML引入第一步中的几个库
3、生成图片
3.1、生成png图片
1 2 3 4 5 6 7 8 9 10 11 12 | <script> var jd= document.getElementById( '标签ID' ); domtoimage.toPng(jd) .then( function (url) { var img = new Image(); img.src = url; document.body.appendChild(img); }) . catch ( function (e) { console.log( '生成图片出错' , e); }); </script> |
3.2、生成下载图片
1 2 3 4 5 6 7 | //保存图片 $( "#btnToImg" ).click( function () { domtoimage.toBlob(document.getElementById( 'chartdiv' )) .then( function (blob) { window.saveAs(blob, 'ImgName.jpg' ); }); }); |
我写的是一个按钮的安吉事件
3.3、生成jpeg图片
domtoimage.toJpeg(document.getElementById('chartdiv'), { quality: 0.95 }) .then(function (dataUrl) { var link = document.createElement('a'); link.download = 'Imgname.jpeg'; link.href = dataUrl; link.click(); });
使用的额时候只要调方法就可以了
下面贴上Demo源码
<html> <head> <script type="text/javascript" src="jquery-3.3.1.js"></script> <script type="text/javascript" src="dom-to-image.js"></script> <script type="text/javascript" src="FileSaver.js"></script> <script type="text/javascript"> $(function () { $("#btnSave").click(function () { // 下载png图片 domtoimage.toBlob(document.getElementById('dvMain')) .then(function (blob) { window.saveAs(blob, '123.png'); }); }); }); </script> </head> <body> <input type="button" id="btnSave" value="保存图片" /> <div id="dvMain"> <h1>123456789</h1> <h2>H2H2H2</h2> <p>段落里面的内容</p> <span>span里面的内容</span> <table id="table" border="1" style="width:200px;border-collapse: collapse;border:1px solid black; width:80%;"> <tr> <td rowspan="3">111</td> <td>222</td> <td>333300</td> </tr> <tr> <td rowspan="2">444</td> <td>555</td> </tr> <tr > <td>666</td> </tr> <tr> <td rowspan="3">77</td> <td>888</td> <td>999</td> </tr> <tr > <td>000</td> <td>QQQ</td> </tr> <tr> <td>WWW</td> <td>EEE</td> </tr> </table> </div> </body> </html>
中间表格中海油跨行跨列的都没有什么问题。
4、问题:
我现在是弄好了保存成png或者是jpg的时候用win10 系统自带的windows自带的照片查看器看着会模糊 不知道是我个人电脑的问题还是都是这个问题
看着就这种。
用附件中的画画和其他工具打开又没有什么问题
下了班等下回去家里的电脑看看!
版权声明:本文为 魏杨杨 原创文章并发布到博客园, 除了【萬仟网】外, 其他平台欢迎转载,但必须在文章页面明显位置写明作者和出处,非常感谢。技术交流QQ群 99210270
微信扫一扫关注我公众号
一起学习,一起进步
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?