【发布时间】:2018-04-24 19:06:53
【问题描述】:
创建了一个圆形上下文并添加了图案图像以填充该圆圈。我怎样才能使该图案图像灰度化。 有什么想法可以帮到我。
代码:
ctx.beginPath();
var bg = new Image();
bg.src = image;
bg = function() {
var pattern = ctx.createPattern(this, "no-repeat");
ctx.fillStyle = pattern;
};
ctx.moveTo(canvasCenterHoriz, canvasCenterVert);
ctx.arc(x, y, radius, startAngle, endAngle, direction);
ctx.lineWidth = 0;
ctx.fill();
【问题讨论】:
-
那个 dup 答案已经过时并且不显示当前方法。使用
ctx.filter = "saturate(0%)"并绘制图像,它将是灰度的。或者绘制图像然后设置ctx.globalCompositeOperation = "saturation"和ctx.fillStyle = "#888",然后用填充在图像上绘制以获得灰度。 -
这个答案stackoverflow.com/a/39026987/3877726 显示了许多实时 FX 过滤器应用于画布上的视频(但也可用于静止图像)并且不需要安全的相同域图像,并且比建议的速度快很多倍重复答案的非常老派的方法。
-
太棒了@Blindman67,这是一个更好的副本:stackoverflow.com/questions/40787895/…
-
你打败了我,还有一个更好的答案:)
标签: javascript canvas grayscale