javascript - 如何将图像放入圆形 Canvas ?

标签 javascript css html html5-canvas

>>> Jsfiddle

var c = document.getElementById("myCanvas");
                            var ctx = c.getContext("2d");
                            ctx.beginPath();
                            ctx.arc(55,95,30,0,2*Math.PI);
                            ctx.stroke();

var canvas = document.getElementById('myCanvas'),
context = canvas.getContext('2d');

make_base();

function make_base()
{
  base_image = new Image();
  base_image.src='https://www.gravatar.com/avatar/4af2cdbaf02d97ba88d5d6daff94fbae/?default=&s=80';
  base_image.onload = function(){
    context.drawImage(base_image, 20, 20);
  }
}
<canvas id="myCanvas"  
        width="236" 
        height="413" 
        style="border:1px solid #000000; 
               position:absolute; 
               top:66px; 
               left:22px;"></canvas>

我已经尝试将图像放入 Canvas 而不是我的圆圈位置。 但我不知道如何将正方形图像调整为与我的绘制圆相同大小的圆并放在相同位置。

我该怎么办?

最佳答案

你必须为此使用clip。 这是 http://codepen.io/sam83045/pen/eBKRPr?editors=0010 的 Codepen

您编辑的 javascript 代码如下:

var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.beginPath();
ctx.arc(55, 95, 30, 0, 2 * Math.PI);
ctx.clip();
ctx.stroke();

var canvas = document.getElementById('myCanvas'),
  context = canvas.getContext('2d');

make_base();

function make_base() {
  base_image = new Image();
  base_image.src = 'https://www.gravatar.com/avatar/4af2cdbaf02d97ba88d5d6daff94fbae/?default=&s=80';
  base_image.onload = function() {
    context.drawImage(base_image, 16, 55);
  }
}

关于javascript - 如何将图像放入圆形 Canvas ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41039293/

相关文章:

html - 是否可以制作带有视频的横幅广告,例如谷歌广告的尺寸限制?

javascript - 如何在html页面中显示运行计数器

javascript - AngularJS - 居中图像的水平滚动条

angular2 进度条显示线性渐变颜色的进度

css - 为什么子元素不能用更大的值覆盖父元素的不透明度?

html - 如何使用 css 添加文本渐变?

javascript - 如何修复屏幕底部的页脚?

javascript - 如何使用 Prototype 在 IE8 中旋转图像?

javascript - 为什么使用设置为方法时函数语句不创建函数?

javascript - 通过window.print()方法打印输入框运行时值