Canvas绘制圆形头像

简介: Canvas绘制圆形头像

image.png

实现代码


<canvas id="canvas"
            width="500"
            height="500"></canvas>
    <script>
        let Canvas = document.querySelector('#canvas');
        let ctx = Canvas.getContext("2d");
        // 绘制画布背景
        ctx.fillStyle = "#ccc";
        ctx.fillRect(0, 0, 500, 500);
        // 绘制圆形头像
        let avatar = new Image();
        avatar.src = 'https://api.sunweihu.com/api/sjtx/api.php?lx=c1';
        avatar.onload = (res) => {
            // console.log(res);
            console.log(avatar.height, avatar.width);
            drawCircleImage(ctx, avatar, 250, 250, 100);
            // 图像绘制完成之后继续绘制其他内容
            ctx.strokeStyle = 'red'
            ctx.strokeRect(20, 20, 460, 460);
        }
        /**
         * ctx 画布上下文
         * img 图片对象
         * (x, y)圆心坐标
         * radius 半径
         * 注意:绘制圆形头像之前,保存画笔;绘制完成后恢复
         * */
        function drawCircleImage(ctx, img, x, y, radius) {
            ctx.save();
            let size = 2 * radius;
            ctx.arc(x, y, radius, 0, 2 * Math.PI);
            ctx.clip();
            ctx.drawImage(img, x - radius, y - radius, size, size);
            ctx.restore();
        }
</script>

在线demo: https://mouday.github.io/front-end-demo/canvas/canvas-avatar.html

目录
打赏
0
0
0
0
58
分享
相关文章
鸿蒙开发:Canvas绘制之画笔对象Brush
Brush对象主要适用于绘制图形的填充信息,可以修改的有,颜色,是否抗锯齿,透明度等属性,相对比Pen对象,少了几个属性,不过基本上也满足了日常的需求。
64 10
鸿蒙开发:Canvas绘制之画笔对象Brush
鸿蒙开发:Canvas绘制之画笔对象Pen
Pen对象主要适用于修改图形形状的轮廓信息,可以修改的有,颜色,线宽,是否抗锯齿,透明度,线帽样式等等属性,当然了如果你想实现一个填充效果,需要切换Brush对象。
鸿蒙开发:Canvas绘制之画笔对象Pen
|
11月前
|
canvas详解05-变形
canvas详解05-变形
109 2
canvas详解08-基本动画
canvas详解08-基本动画
85 1
用Canvas绘制一个数字键盘
用Canvas轻轻松松搞一个数字键盘,本身没什么难度,这种效果实现的方式也是多种多样,这篇只是其中的一种,要说本篇有什么特别之处,可能就是纯绘制,没有用到其它的任何资源,一个类就搞定了。
145 0
canvas绘制五角星
canvas绘制五角星
210 0
基于canvas绘制边框环绕进度条
基于canvas绘制边框环绕进度条
286 0
基于canvas绘制边框环绕进度条