网站首页 > 技术文章 正文
网页dom转换成png,jpeg等,并保存到zip
- 使用html2canvas将html转换成canvas
- 使用canvas2image将canvas转换成图片资源
- 直接保存或则打包到zip
1.html2canvas使用
html2canvas(document.body).then(function(canvas) { document.body.appendChild(canvas); });
简单示例:html2canvas(element, [options]);
options具体参数看这里
2.canvas2image使用
有两种使用方式,第一种直接保存
Canvas2Image.saveAsImage(canvasObj, width, height, type) Canvas2Image.saveAsPNG(canvasObj, width, height) Canvas2Image.saveAsJPEG(canvasObj, width, height) Canvas2Image.saveAsGIF(canvasObj, width, height) Canvas2Image.saveAsBMP(canvasObj, width, height)
第二种生成图片资源
Canvas2Image.convertToImage(canvasObj, width, height, type) Canvas2Image.convertToPNG(canvasObj, width, height) Canvas2Image.convertToJPEG(canvasObj, width, height) Canvas2Image.convertToGIF(canvasObj, width, height) Canvas2Image.convertToBMP(canvasObj, width, height)
3.生成png并保存
html2canvas(document.getElementById(id)) .then(function (canvas) { //Canvas2Image.convertToPNG(canvas); Canvas2Image.saveAsPNG(canvas); });
4.打包到zip
zip使用示例:
var zip = new JSZip(); zip.file("Hello.txt", "Hello World\n"); var img = zip.folder("images"); img.file("smile.gif", imgData, {base64: true}); zip.generateAsync({type:"blob"}) .then(function(content) { // see FileSaver.js saveAs(content, "example.zip"); });
如果生成的是单张图片可以直接保存,如果需要生成多张,这个时候就需要将生成的图片打包下载
var zip = new JSZip(); var img = zip.folder('images'); // 新建一个images目录 $('.show').each(function (index) { var id = $(this).attr('id'); // 这里的element只能是html dom 使用$(this)会报错 // { useCORS: true } 如果需要跨域加载图片 var data = html2canvas(document.getElementById(id), { useCORS: true }) .then(function (canvas) { var image = Canvas2Image.convertToPNG(canvas, 1920, 1080); var image_data = $(image).attr('src'); // 生成的image_data是图片链接,不能直接保存为图片,需要做一下截取 return image_data.split('data:image/png;base64,')[1]; }); img.file(id + '.jpg', data, { base64: true }); }) zip.generateAsync({ type: "blob" }) .then(function (content) { saveAs(content, "example.zip"); });
示例代码点击这里
喜欢请点击关注哦谢谢啦,另外,更多精彩内容敬请关注百战程序员哦!
猜你喜欢
- 2024-09-10 Python奇淫技巧之自动登录哔哩哔哩(解决滑块验证)
- 2024-09-10 前端上传图片被旋转的处理方案(nba常规赛录像高清回放)
- 2024-09-10 Day 3 学习Canvas这一篇文章就够了
- 2024-09-10 JavaScript实现浏览器本地的图像移动、大小调整和裁剪
- 2024-09-10 微信内置浏览器动态生成二维码并长按识别
- 2024-09-10 Python奇淫技巧之自动登录哔哩哔哩
- 2024-09-10 JSPDF + html2canvas A4分页截断(html做分页)
- 2024-09-10 vue手把手教学~搭建web聊天室(vue简单聊天室)
- 2024-09-10 前端:从零实现一款可视化图片编辑器
- 2024-09-10 一键生成图片!教你用Canvas绘制图像并转为图片展示,附详细代码
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)