【发布时间】:2020-07-09 11:08:43
【问题描述】:
我使用画布在照片上刻录的时间戳有问题。
目前,我将其着色为青色,然后应用差异过滤器来处理背景中的相似颜色。但是,当背景为灰色时,差异过滤器无法解决此问题,并且时间戳可能变得不可读。
是否可以在过滤器后仅在文本上查找一系列颜色并替换这些颜色?我正在考虑寻找一个灰色范围,然后用纯黑色或白色替换该范围。
我环顾四周,但似乎只能找到有关如何将这样的过滤器应用于整个图像的说明,而不仅仅是文本。
这是我现在做的一个例子,但在实际代码中我使用的是网络摄像头输入,所以图像绘制略有不同。
var image = new Image();
image.src = "http://i.stack.imgur.com/UFBxY.png";
image.onload = draw;
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
function drawImage(img, x, y, filter) {
ctx.beginPath()
ctx.filter = filter
ctx.drawImage(img, x, y);
ctx.closePath()
}
ctx.globalCompositeOperation = "difference";
ctx.fillStyle = "cyan";
ctx.fillText("Hello World!", 150, 100);
function draw() {
drawImage(image, 0, 0, 'none');
}
<canvas id="canvas" width=500></canvas>
【问题讨论】:
-
一个功能齐全的示例显示“时间戳可能变得不可读”问题可以帮助我们帮助您......您提供的代码将很难提供帮助
标签: javascript text colors html5-canvas