【发布时间】:2020-04-05 14:39:09
【问题描述】:
我正在尝试在鼠标移动时在画布上应用灰度和棕褐色滤镜。 我正在使用 CanvasRenderingContext2D.filter 来应用过滤器。 这是示例代码
var radgrad = this.ctx.createRadialGradient(x, y, 50 / 8, x, y, 50 / 2);
radgrad.addColorStop(0, 'rgb(0, 0, 0)');
radgrad.addColorStop(1, 'rgb(0, 0, 0, 1)');
this.ctx.filter = "grayscale(100%) blur(5px) opacity(50%)";
this.ctx.fillStyle = radgrad;
this.ctx.beginPath();
this.ctx.arc(x, y, 50, 0, Math.PI * 2);
this.ctx.fill();
问题是当我尝试应用灰度时无法实现它,但 blur(5px) 正在被应用。
在上述方法中如何应用灰度或棕褐色滤镜的任何解决方案。
解决方案的任何线索都会有所帮助。谢谢
【问题讨论】:
-
请注意
rgb(0, 0, 0, 1)无效。 -
那么您想要的是您当前绘制的圆圈以该圆圈的形状绘制背景图像,但经过过滤?你希望它是累积的吗? (即如果您在同一位置两次通过光标,过滤器将应用两次)
-
我只需要在鼠标移动的路径上获得灰度或棕褐色。现在即使应用过滤器也是全黑的。
标签: javascript image-processing canvas html5-canvas