学pchome截图-用html2canvas转成canvas,再下载

用html2canvas转成canvas,再下载

载入js,js会把div里的东西,转换成canvas

<head>
<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
</head>

准备容器,把要截图的内容,包在里面(等等转成canvas)

    <div id="capture" style="padding: 10px; background: #f5da55">
        <h4 style="color: #000; ">Hello world!</h4>        
    </div>

将canvas下载成jpg

    <script>
        function block_capture() {
            html2canvas(document.querySelector("#capture")).then(function (canvas) {              
                a = document.createElement('a');//add canvas
                a.href = canvas.toDataURL("image/jpeg", 0.92).replace("image/jpeg", "image/octet-stream");//toDataURL将canvas转成base64
                //下载成png     toDataURL("image/png")
                //下载成jpg     toDataURL("image/jpeg")
                a.download = 'image.jpg';
                a.click();
            });
        }
    </script>

全文

<!DOCTYPE html>
<html lang="zh-tw">

<head>
    <meta charset=" UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
    <title>JavaScript canvas</title>
    <style>
        button{
            margin: 5px;
        }
    </style>
</head>

<body>
    <div id="capture" style="padding: 10px; background: #f5da55">
        <h4 style="color: #000; ">Hello world!</h4>
        <table><tr><td>3333</td></tr></table>
    </div>
    <button onclick="block_capture()">Click</button>
    <script>
        function block_capture() {
            html2canvas(document.querySelector("#capture")).then(function (canvas) {
                a = document.createElement('a');
                a.href = canvas.toDataURL("image/jpeg", 0.92).replace("image/jpeg", "image/octet-stream");
                a.download = 'image.jpg';
                a.click();
            });
        }
    </script>
</body>

</html>

ref
https://mnya.tw/cc/word/1573.html


<<:  [REPORT] IMAGE BASE64

>>:  ISO 27001 资讯安全管理系统 【解析】(十五)

30天学会Python: Day 23-交换数值

要交换两个变数的值,在 Python 有几种写法 可以先另外建立一个变数,再互相指派,假设输入的数值...

[Day28] 第二十八课 Azure灾害复原(DRaaS)-1[进阶]

先前提到Azure有很多客户拿来做第三份备份存放外,异地备援陆续也有不少客户来询问 了解,原因就在异...

Day15-D3 的 Zoom 缩放

本篇大纲:d3.zoom( )、zoom 旗下的API、范例 上一篇看完让人烧脑的Force之後,...

Day29 MANO开源专案使用之kube5gnfvo - 样板介绍篇

相信在前两天介绍的OSM部分,有观看的大概了解了关於Network Slicing(NS)实例化所需...

【Day 26】Google Apps Script - API Blueprint 篇 - Apiary 介面介绍

Apiary 介面分4个区块:功能列区、编辑区、预览区、测试区。 今日要点: 》Apiary 介面...