• 移动端保存当前屏幕内容为图片,canvas图片拼接


    需求:1、移动端点击分享时,截屏当前屏幕,并保存为图片  2、将截屏的图片与一张二维码图片进行拼接后,生成一张新的图片

    技术栈:html2canvas.js、canvas2image.js

    代码:(jquery和原生js混写了,不是很规范)

    <script type="text/javascript">
      //获取页面中的分享按钮
      var sharebtn = document.querySelectorAll('.share');
        for(let i=0;i<sharebtn.length;i++){
            //给分享按钮添加touch事件
            sharebtn[i].ontouchend = function(){
                //html2canvas语法,截取当前屏幕h5转为canvas
              html2canvas(document.body).then(canvas => {
                    document.body.appendChild(canvas);
                    var canvasbox = document.getElementsByTagName('canvas')[0];
                  var w = canvasbox.width,h = canvasbox.height;
                  //canvas转化为图片并添加到body中,以便于第二次图片拼接时获取该图片
                    var img = Canvas2Image.convertToPNG(canvas, w, h);
                    img.id = 'img1';
                    document.body.appendChild(img)
                    
                    //创建新画布并添加到body中
                    var canvasel = document.createElement('canvas');
                    canvasel.id = 'mycanvas';
                    canvasel.width = 750;
                    canvasel.height = 1654;
                    document.body.appendChild(canvasel);
                    
                    //当截屏的图片加载完成后,执行该方法
                    img.onload = function(){
                        //获取新画布
                        var mycanvas = document.getElementsByTagName('canvas')[1];
                       var w = mycanvas.width,h = mycanvas.height;
                        var ctx = mycanvas.getContext('2d');
                        //创建需要拼接的二维码图片
                        var lastimg = new Image();
                        lastimg.src='image/ewm.png';
                        //获取截屏的图片
                        var img1 = document.getElementById('img1');
                        //当二维码图片加载完成后执行:
                        lastimg.onload = function(){
                            //在新的canvas中绘制两张图片并将该canvas转化为图片
                            ctx.drawImage(img1,0,0);
                            ctx.drawImage(lastimg,0,1334);
                            var newimg = Canvas2Image.convertToPNG(mycanvas,w,h);
                            //将图片添加到页面的结构中 并显示该结构
                            document.getElementById('imgbox').appendChild(newimg);
                            $('.img-show-wrap').removeClass('hide');
                            $('.mask').removeClass('hide');
                        }
                    }
              })
              }
        }
      </script>
  • 相关阅读:
    kubernetes yaml文件格式
    docker 镜像上传至私有仓库
    Docker Compose编排容器
    jenkins+gitlab+ansible+dockerfile+k8s自动发布代码
    kubernetes 命令行
    关于HDFS的读写流程
    vue中watched属性
    app中rem算法
    vue使用中的随笔
    react 表单获取多个input
  • 原文地址:https://www.cnblogs.com/javascripter/p/12190423.html
Copyright © 2020-2023  润新知