Если веб-страница, которую вы хотите нарисовать, содержит изображение аватара в форме дуги, но сам аватар квадратный, требуемый метод следующий:
Сначала получим координаты, ширину и высоту аватара на холсте: (здесь не буду подробно рассказывать, как это получить)
пусть {avatarX, avatarY, avatarW, avatarH} = {20, 20, 80, 80};
Затем просто вызовите следующую функцию:
let Canvas = document.createElement('canvas');let ctx = Canvas.getContext(2d);let avatar = new Image();avatar.src = '../src/xx.png';avatar.onload = ( ScaleBy = 2) => { CircleImg(ctx, avatar, avatarX * ScaleBy, avatarY * ScaleBy, avatarW * ScaleBy / 2);}// r: функция радиуса CircleImg(ctx, img, x, y, r) { ctx.save(); var d =2 * r; var cx = x + r; var cy = y + r; ctx.arc(cx, cy, r, 0, 2 * Math.PI); ctx.clip(); ctx.drawImage(img, x, y, д, д); ctx.restore();}
Выше приведено все содержание этой статьи. Я надеюсь, что она будет полезна для изучения всеми. Я также надеюсь, что все поддержат сеть VeVb Wulin.