使用 canvas 创建三个圆形蒙版
Create three circle mask with canvas
我需要用 canvas 创建一个圆形蒙版,我正在尝试这样做,但我做不到。
我知道使用 Flash 可以做到这一点,但我更喜欢没有这种技术:
有人可以帮助我吗?我不太了解 javascript
我需要的是在一张图片上创建三个不同大小的圆圈(Canvas 背景颜色)。
我知道你不是来这里做别人的工作的,但无论我怎么努力,我都没有得到...
您可以根据需要添加任意数量的圆,您必须仅指明位置和所需半径:
JavaScript:
var context = document.getElementById('canvas').getContext('2d');
// Color of the "mask"
context.fillStyle = '#000';
// Rectangle with the proportions of the image (600x400)
context.fillRect(0,0,600,400);
/**
* @param x Specifies the x-coordinate
* @param y Specifies the y-coordinate
* @param radius Specifies radius of the circle
*/
var clearCircle = function(x, y, radius){
context.save();
context.globalCompositeOperation = 'destination-out';
context.beginPath();
context.arc(x, y, radius, 0, 2 * Math.PI, false);
context.fill();
context.restore();
};
// First circle
clearCircle(155, 190, 50);
// Second circle
clearCircle(300, 190, 70);
// Third circle
clearCircle(440, 200, 60);
HTML:
<canvas id="canvas" width="600" height="400" />
CSS:
canvas{
background: url("http://cdn2.epictimes.com/derrickblair/wp-content/uploads/sites/9/2015/01/happy-people.jpg") no-repeat;
}
您可以在此处查看实际效果:http://jsfiddle.net/tomloprod/szau09x6/
相关链接:
- 您应该在此处阅读有关
canvas
的更多信息:http://www.w3schools.com/html/html5_canvas.asp
我需要用 canvas 创建一个圆形蒙版,我正在尝试这样做,但我做不到。
我知道使用 Flash 可以做到这一点,但我更喜欢没有这种技术:
有人可以帮助我吗?我不太了解 javascript
我需要的是在一张图片上创建三个不同大小的圆圈(Canvas 背景颜色)。
我知道你不是来这里做别人的工作的,但无论我怎么努力,我都没有得到...
您可以根据需要添加任意数量的圆,您必须仅指明位置和所需半径:
JavaScript:
var context = document.getElementById('canvas').getContext('2d');
// Color of the "mask"
context.fillStyle = '#000';
// Rectangle with the proportions of the image (600x400)
context.fillRect(0,0,600,400);
/**
* @param x Specifies the x-coordinate
* @param y Specifies the y-coordinate
* @param radius Specifies radius of the circle
*/
var clearCircle = function(x, y, radius){
context.save();
context.globalCompositeOperation = 'destination-out';
context.beginPath();
context.arc(x, y, radius, 0, 2 * Math.PI, false);
context.fill();
context.restore();
};
// First circle
clearCircle(155, 190, 50);
// Second circle
clearCircle(300, 190, 70);
// Third circle
clearCircle(440, 200, 60);
HTML:
<canvas id="canvas" width="600" height="400" />
CSS:
canvas{
background: url("http://cdn2.epictimes.com/derrickblair/wp-content/uploads/sites/9/2015/01/happy-people.jpg") no-repeat;
}
您可以在此处查看实际效果:http://jsfiddle.net/tomloprod/szau09x6/
相关链接:
- 您应该在此处阅读有关
canvas
的更多信息:http://www.w3schools.com/html/html5_canvas.asp