html转image 保存到zip

该博客介绍了如何将HTML转换为PNG或JPEG格式,并将其保存到ZIP文件中。通过html2canvas将DOM转换为canvas,然后利用canvas2image将canvas转化为图片资源,最后展示如何打包到ZIP进行下载。

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

网页dom转换成png,jpeg等,并保存到zip

 

  1. 使用html2canvas将html转换成canvas
  2. 使用canvas2image将canvas转换成图片资源
  3. 直接保存或则打包到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");
            });

示例代码点击这里

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值