起始信息: video element
可以作为 html5 画布的图像源。这意味着视频帧可以被绘制到(并且可以被)画布所操纵。
概述: context.getImageData
方法将在一个数组中获取画布的 RGBA 像素数据。修改数组的像素数据后,context.putImageData
将修改后的像素放回画布上。
一个计划: 使用 CSS 定位一个 html5 画布覆盖网站背景。使用该画布在网站上绘制视频帧(绿色视频像素透明,使得网站背景显示出来)。
(你需要进行一些组装和学习):
定位一个 html5 画布元素,覆盖网站背景。
在一个时间循环内(requestAnimationFrame
):
context.clearRect
,context.drawImage(video,0,0)
,context.getImageData
,if(green>220 && red<20 && blue<20)
,(alpha=0)
,context.putImageData
,参考资料以帮助你学习
Stackoverflow 关于 #2 的先前帖子:Put the video tag on the Canvas tag
Stackoverflow 关于 #3-6 的先前帖子:Looping through pixels in an image
rec<20&&green<20&&blue>220
开始。 :-) - markEgreen > red + reverse_tolerance && green > blue + tolerance
效果更好,但仍然很差。难道没有更准确的方法吗?我认为 HSL 格式可能会更有帮助。 - Eksapsy