pc端页面内容生成海报图片下载

1 篇文章 0 订阅
0 篇文章 0 订阅

        目前有一个需求,前端网页生成海报并且下载,经过几天的研究和查找,目前找到html2canvas.js这个可以把dom元素生成画布的插件,具体使用方式请参考官网或者自行查找,以下是我的部分页面代码,仅供参考,注意手机端因为和pc端不一样,点击下载无效,具体解决方法,请参考我的下一篇文章

html2canvas.js(上传的需要审核,可以在官网下)github下载https://github.com/niklasvh/html2canvas/releases


1.html css


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>pc端海报下载</title>
    <!-- 引入插件 -->
    <script src="js/html2canvas.min.js"></script>
    <style>
        body {
            text-align: center;
        }
        
        .center_title {
            width: 100%;
            height: 90px;
            background-color: rebeccapurple;
            text-align: center;
        }
        
        button {
            width: 50px;
            height: 30px;
            background-color: red;
        }
    </style>
</head>

<body>
    <div id="content">
        <div class="test">
            <p class="center_title">测试</p>
        </div>
    </div>
    <div class="copy">
        <button onclick="copy()">截图</button>
        <a class="down" href="" download="downImg">下载</a>
    </div>
</body>

2js 代码

<script>
    var pic;
    var canvas2 = document.createElement("canvas");
    let _canvas = document.querySelector('.test');
    var w = parseInt(window.getComputedStyle(_canvas).width);
    var h = parseInt(window.getComputedStyle(_canvas).height);
    //将canvas画布放大若干倍,然后盛放在较小的容器内,就显得不模糊了
    canvas2.width = w * 2;
    canvas2.height = h * 2;
    canvas2.style.width = w + "px";
    canvas2.style.height = h + "px";
    //可以按照自己的需求,对context的参数修改,translate指的是偏移量   
    var context = canvas2.getContext("2d");
    context.scale(2, 2);
    html2canvas(document.querySelector('.test'), {
        canvas: canvas2
    }).then(function(canvas) {
        pic = canvas;
        //canvas转换成url,然后利用a标签的download属性,直接下载,绕过上传服务器再下载
        document.querySelector(".down").setAttribute('href', canvas.toDataURL());
    });
    //点击的时候把图片复制到下面那个div下
    function copy() {
        document.querySelector(".copy").appendChild(pic);
    }
</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值