• 二维码图片合成 ----合成图片以便微信长按保存(移动端)


    HTML:

    <div id="box">
        <img src="" alt="" id="bg-img" width="100%">
        <!--生成的图片宽高大小-->
        <canvas id="qr" style="display: none" width="640" height="1135"></canvas>
        <div class="bottom">
            <p>长按图片保存,邀请好友助力</p>
        </div>
    </div>

    Javascript:

    /* 获取地址栏参数 */
    function getQueryString (name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        var r = window.location.search.substr(1).match(reg);
        var context = "";
        if (r != null)
            context = r[2];
        reg = null;
        r = null;
        return context == null || context == "" || context == "undefined" ? "" : context;
    }
    
    $(function(){
        var canvas = document.getElementById('qr'),
            bg-img = document.getElementById('bg-img'),
            ctx = canvas.getContext('2d'); // 拿到一个CanvasRenderingContext2D对象,所有的绘图操作都需要通过这个对象完成
        var userId = getQueryString('user_id'); //获取地址栏参数,统计邀请人
        
        //获取用户头像、昵称、分享的二维码
        $.get("/open/api?method=mall.special.yunlan_image_base",{user_id: uesrId},function(res)     {
            if(res.response.status == "ok"){
                var bg = new Image(),
                    qr = new Image(),
                    logo = new Image();
                bg.src = '/assets/mob/20180325/images/share.jpg';
                          logo.src ="http://m.omicy.com/" + res.response.headimgurl_base64;
                          qr.src = "http://m.omicy.com/" + res.response.code_img_url_base64;
                          //canvas图片合成
                          bg.onload = function(){
                            setTimeout(function(){
                                //绘制文本
                                ctx.font = "normal bold 32px Arial";
                                ctx.fillStyle = "#E95572"; // 设置颜色
                                ctx.drawImage(bg, 0, 0,bg.width,bg.height);
                                ctx.fillText(res.response.nickname, 165, 920, 240);
                                ctx.drawImage(logo, 0, 0, logo.width,logo.height, 37, 850, 120, 120);
                                ctx.drawImage(qr, 0, 0, qr.width, qr.height, 415, 880, 190, 190);
                                img.src = canvas.toDataURL();
                                $(".bottom").show();
                            }, 1000);
                          }
    
            }
        });
    
    });
  • 相关阅读:
    jquery-4 完整表单验证实例
    从程序员的角度分析微信小程序(编程语言:用到什么学什么)
    微信程序开发
    css3-4 css3边框样式
    css3-3 css3背景样式
    boxfilter 实现
    opencv在arm和x86在移植
    PAT 1033. To Fill or Not to Fill (贪婪)
    [git] fatal: This operation must be run in a work tree
    spring与mybatis集成和事务控制
  • 原文地址:https://www.cnblogs.com/queende7/p/8668787.html
Copyright © 2020-2023  润新知