网站首页 > 技术文章 正文
网页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-10-16 【验证码逆向专栏】百某网数字九宫格验证码逆向分析
- 2024-10-16 jquery-利用canvas让图片旋转角度
- 2024-10-16 一文带你搞懂JS实现压缩图片 js压缩上传图片
- 2024-10-16 前端性能优化之请求优化 前端性能优化问题
- 2024-10-16 Serverless 实战:如何为你的头像增加点装饰?
- 2024-10-16 谈谈图片上传及canvas压缩的流程 js 图片压缩后上传
- 2024-10-16 妹子委婉地和男友说没钱了,结果差点换来一张luo照?
- 2024-10-16 Blob-对象介绍 对象object
- 2024-10-16 《小白HTML5成长之路51》canvas压缩图片上传功能的原理
- 2024-10-16 Dom-to-image截图将html生成图片 html2canvas截图
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)