1. 程式人生 > >canvas合成背景二維碼相容pc,ios,安卓

canvas合成背景二維碼相容pc,ios,安卓

html:

           <canvas id="canvas" style="width:320px;height:530px;display:none;"></canvas>
            <img src="背景圖片" id="bg" width="320" height="530" style=""/>
            <div id="imgCode" style="display:none;"></div>

js:自己下載資源哈

引用    <script src="jquery-3.1.1.min.js"></script>
           <script src=“jquery-qrcode.min.js"></script>

<script>
    var code = $("#codeImg").val();
    $("#imgCode").qrcode({
        render: 'image',
        size: 170,
        text: code,
        radius: 0.5,
        quiet: 2,
    });
    function openCode(){
        var bg=document.getElementById("bg");
        var code=document.getElementById("imgCode").getElementsByTagName("img")[0];
        var canvas="";
        canvas=document.getElementById("canvas");
        canvas.width = 320;
        canvas.height = 530;
        var ctx=canvas.getContext("2d");
        ctx.drawImage(bg, 0, 0, 320, 530);
        ctx.drawImage(code, 72, 200, 170, 170);
        
        /*判斷是否為PC頁面*/
        if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {
            canvas.toBlob(function(blob) {
                var url = URL.createObjectURL(blob);
                bg.setAttribute("src",url);
            });
        } else {
            var image= new Image();
            ctx.drawImage(image,0,0,320,530);
            image.src = canvas.toDataURL("image/png");
            image.setAttribute("crossOrigin", 'Anonymous');
            bg.setAttribute("src",canvas.toDataURL("image/png"));
        }

    }
</script>