美文网首页
圆形头像

圆形头像

作者: 下班再说 | 来源:发表于2021-09-10 15:48 被阅读0次

HTML:

<canvas id="myCanvas" width="640" height="1008" style="display:none">

<!-- 圆形头像嵌套canvas -->

<canvas id="cCanvas" style="display:none"></canvas>

// canvas画海报

var loading;

function imageToCanvas() {

if(activity_exist()) {

turnguanzhu();

return;

    }

// if($("#c_class").val()==0){

//    layer.open({

    //        content: "请选择生成证书的课程",

    //        btn: '确定'

//    });

//    $('#popup_reg').popup();

//    return;

// }

    loading = layer.open({

shadeClose:false,

        type:2,

        content:'正在生成海报'

    });

    var canvas =document.getElementById("myCanvas");

    var element =poster_item[poster_id]['c_data'];

    var ctx = canvas.getContext("2d");

    var image_arr = {};

    var text_arr = {};

    for(var iin element) {

if(['bg','roundhead','qr'].indexOf(i) > -1) {

image_arr[i]=element[i];

            if(i=='roundhead'){

element[i]['src'] =$('.make-poster .wx_photo').attr('src');

            }

}else if(['c_class','realname','mobile','c_date'].indexOf(i) > -1) {

text_arr[i]=element[i];

            if(i=='c_class' || i=='c_date'){

element[i]['value'] =$('.make-poster .'+i).html();

            }else{

element[i]['value'] =$('.make-poster .wx_'+i).html();

            }

}

}

drawImage(ctx,image_arr,text_arr);

}

function drawImage(ctx,image_arr,text_arr) {

var rank = ['bg','roundhead','qr'];

    draw(0,image_arr[rank[0]]);

    function draw(i,item) {

if(i <= rank.length) {

i++;

            if(item&&item.src) {

var image =new Image();

                image.setAttribute('crossOrigin','anonymous');

                image.src = item.src;

                image.onload =function() {

                    if(rank[i-1]=='roundhead'){

                        var canvasTemp =document.getElementById("cCanvas");

                        canvasTemp.width =640;

                        canvasTemp.height =1008;

                        var contextTemp = canvasTemp.getContext('2d');

                        contextTemp.drawImage(image,item.left,item.top,item.width,item.height);

                        var ptn = ctx.createPattern(canvasTemp,'no-repeat');

                        let min =Math.min(item.width/2, item.height/2);

                        let r = min;

                        ctx.fillStyle = ptn;

                        ctx.arc(item.left+r, item.top+r, r, 0, Math.PI *2);

                        ctx.fill();

                    }else{

ctx.drawImage(image,item.left,item.top,item.width,item.height);

                    }

draw(i,image_arr[rank[i]]);

                }

}else {

draw(i,image_arr[rank[i]]);

            }

}else {

drawText(ctx,text_arr);

        }

}

}

function drawText(ctx,text_arr) {

console.log(text_arr);

    for(var iin text_arr) {

var item = text_arr[i];

        if(item.value) {

ctx.textBaseline ='top';

            ctx.textAlign = item.align;

            ctx.font = item.size+"px Arial";

            ctx.fillStyle = item.color;

            if(item.align=='right'){

item.left = item.left+item.width;

            }else if(item.align=="center"){

item.left =320;

            }

ctx.fillText(item.value,item.left,item.top+item.size*0.5);

        }

}

convertCanvasToImage()

}

// 转成图片

function convertCanvasToImage() {

var base64ImgSrc =document.getElementById("myCanvas").toDataURL("image/png");

    submitForm(base64ImgSrc);

}

相关文章

  • 自定义view-仿抖音直播头像

    直接贴代码 原理为画边框,波纹圆形和圆形头像 然后波纹圆形和圆形头像一起播放动画.

  • 圆形头像

    HTML: // canvas画海报var loading;funct...

  • CircleAvatar

    CircleAvatar 圆形头像

  • 圆形头像OR方形头像

    圆形头像OR方形头像 知乎上有人问圆形头像or方形头像选择背后的设计理论,我也掺和了一脚: 问题地址:http:/...

  • android笔记-003 开源库

    圆形头像 使用开源库 https://github.com/hdodenhof/CircleImageView圆形...

  • Glide 显示圆形头像

    前提 以前都是用CircleImageView来显示圆形头像,近来发现经常用的Glide也可以显示圆形头像,就在项...

  • 环信圆形头像实现(glide圆形头像)

    环信SDK中的聊天界面,iOS使用的是圆形头像,android使用的方形头像,这两者UI都不统一,没办法,只能将a...

  • 画圆形头像

    现在的很多应用在做用户信息展现这一块,主流的形状是圆形。这里我们可以用代码来实现: rightImage.laye...

  • iOS 圆形头像

    iOS 显示圆形头像是一个比较常见的需求,之前面试的时候也有被问到。当时答出来的是设置 CALayer 以及在 S...

  • Android圆形头像

    现在基本上很多APP会用到圆形头像,而关于这方面也有很多的示例。今天我也把我的分享一下给大家,也是新手一枚,不好的...

网友评论

      本文标题:圆形头像

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