前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js实现截图并保存图片(html转canvas、canvas转image)

js实现截图并保存图片(html转canvas、canvas转image)

作者头像
从入门到进错门
发布2018-08-21 16:36:45
26.1K3
发布2018-08-21 16:36:45
举报
文章被收录于专栏:前端菜鸟变老鸟

js实现截图并保存图片在本地(html转canvas、canvas转image)

一、html转canvas

需要的库html2canvas.jscanvas2image.js

话不多说,直接上代码!

html
代码语言:javascript
复制
<h2>原始HTML</h2>
<div style="background:red;width: 600px;" class="test">
    <div style="background:green;">
        <div style="background:blue;">
            <div style="background:yellow;">
                <div style="background:orange;">
                    33333333333333333333333333333333
                </div>
            </div>

        </div>

    </div>
</div>
<h2 class="toCanvas"> <a href="javascript:void(0);"> 转成canvas </a></h2>
<h2 class="toPic"><a href="javascript:void(0);"> 转成图片 </a></h2>
<h5>
    <label for="imgW">宽度:</label>
    <input type="number" value="" id="imgW" placeholder="默认是原图宽度" />
    <label for="imgH">高度:</label>
    <input type="number" value="" id="imgH" placeholder="默认是原图高度" />
    <label for="imgFileName">文件名:</label>
    <input type="text" placeholder="文件名" id="imgFileName" />
    <select id="sel">
                <option value="png">png</option>
                <option value="jpeg">jpeg</option>
                <option value="bmp">bmp</option>
            </select>
    <button id="save">保存</button>
</h5>
css
代码语言:javascript
复制
<style>
    * {
        margin: 0;
        padding: 0;
    }

    div {
        padding: 20px;
        border: 5px solid black;
    }

    h2 {
        background: #efefef;
        margin: 10px;
    }

    .toPic {
        display: none;
    }
</style>
js
代码语言:javascript
复制
<script type="text/javascript" src="jquery-3.3.1.js"></script>
<script type="text/javascript" src="html2canvas.min.js"></script>
<script type="text/javascript" src="canvas2image.js"></script>
<script type="text/javascript">
    var test = $(".test").get(0); //将jQuery对象转换为dom对象
    // 点击转成canvas
    $('.toCanvas').click(function(e) {
        // 调用html2canvas插件
        html2canvas(test).then(function(canvas) {
            // canvas宽度
            var canvasWidth = canvas.width;
            // canvas高度
            var canvasHeight = canvas.height;
            // 渲染canvas
            $('.toCanvas').after(canvas);
            // 显示‘转成图片’按钮
            $('.toPic').show(1000);
            // 点击转成图片
            $('.toPic').click(function(e) {
                // 调用Canvas2Image插件
                var img = Canvas2Image.convertToImage(canvas, canvasWidth, canvasHeight);
                // 渲染图片
                $(".toPic").after(img);
                // 点击保存
                $('#save').click(function(e) {
                    let type = $('#sel').val(); //图片类型
                    let w = $('#imgW').val(); //图片宽度
                    let h = $('#imgH').val(); //图片高度
                    let f = $('#imgFileName').val(); //图片文件名
                    w = (w === '') ? canvasWidth : w; //判断输入宽高是否为空,为空时保持原来的值
                    h = (h === '') ? canvasHeight : h;
                    // 调用Canvas2Image插件
                    Canvas2Image.saveAsImage(canvas, w, h, type, f);
                });
            });


        });
    });
</script>

代码都有详细的注释,就不一一介绍了。 下面来看看效果:

首先原始HTML里面的内容是需要截图的:
点击转成canvas:
可以看见此时增加一个一个canvas标签:
点击转成图片:
可以看见此时增加一个一个img标签:
点击保存:

至此,js截图就做完了。

html2canvas.jscanvas2image.js的下载地址:

html2canvas.js:http://html2canvas.hertzen.com/dist/html2canvas.min.js
canvas2image.js:https://github.com/SuperAL/canvas2image

源代码下载

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年07月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • js实现截图并保存图片在本地(html转canvas、canvas转image)
    • 一、html转canvas
      • 需要的库html2canvas.js和canvas2image.js
      • 首先原始HTML里面的内容是需要截图的:
      • 点击转成canvas:
      • 可以看见此时增加一个一个canvas标签:
      • 点击转成图片:
      • 可以看见此时增加一个一个img标签:
      • 点击保存:
    • html2canvas.js和canvas2image.js的下载地址:
      • html2canvas.js:http://html2canvas.hertzen.com/dist/html2canvas.min.js
      • canvas2image.js:https://github.com/SuperAL/canvas2image
  • 源代码下载
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档