美文网首页
js利用canvas合成图片

js利用canvas合成图片

作者: code_nerd | 来源:发表于2017-11-06 10:31 被阅读0次

    转自 前端老徐
    合成图片

    //须引入jq
        function draw() {
            var base64=[];
            var src = $('#qrcode').find('img').attr('src');
            var data = ['/wap/img/about.png', src];//图片数组
            var c = document.createElement('canvas'),
                ctx = c.getContext('2d');
            c.width = 400;
            c.height = 400;
            ctx.rect(0, 0, c.width, c.height);
            ctx.fillStyle = '#fff';
            ctx.fill();
            var img = new Image;
            img.onload = function () {
                img.src = data[0];
                ctx.drawImage(img, 0, 0, 400, 400);//定位图片位置及大小
                img.src=data[1];
                ctx.drawImage(img, 100, 100, 200, 200);
                base64.push(c.toDataURL("image/jpeg", 0.8));
                fn();
            }
            return base64;//base64[0]即为图片的src
    }
    

    递归方式合成图片

     function hecheng(){
            draw(function(){
                document.getElementById('imgBox').innerHTML='<p style="padding:10px 0">合成图片成功!可以鼠标另存图片查看我是否是一张图片~~!</p>![]('+base64[0]+')';
            })
        }
    
    //图片的src
        var data=['img1.png','img2.png','img3.png','img4.png'],base64=[];
        function draw(fn){
            var c=document.createElement('canvas'),
                ctx=c.getContext('2d'),
                len=data.length;
            c.width=290;
            c.height=290;
            ctx.rect(0,0,c.width,c.height);
            ctx.fillStyle='#fff';
            ctx.fill();
            function drawing(n){
                if(n<len){
                    var img=new Image;
                    //img.crossOrigin = 'Anonymous'; //解决跨域
                    img.src=data[n];
                    img.onload=function(){
                        ctx.drawImage(img,0,0,290,290);
                        drawing(n+1);//递归
                    }
                }else{
                    //保存生成作品图片
                    base64.push(c.toDataURL("image/jpeg",0.8));
                    //alert(JSON.stringify(base64));
                    fn();
                }
            }
            drawing(0);
        }
    

    相关文章

      网友评论

          本文标题:js利用canvas合成图片

          本文链接:https://www.haomeiwen.com/subject/ycgkmxtx.html