1

我目前正在尝试用视频制作色度键效果。这是部分工作,意思是:只有几个像素是透明的。但是我需要使相同颜色范围或颜色邻域内的其他像素透明。

下面的代码是使用 requestAnimationFrame 调用的代码。

任何帮助,将不胜感激!

computeFrame() {
    this.c_frame_context.drawImage(
        this.video,
        0,
        0,
        this.c_frame.width,
        this.c_frame.height,
    );
    let frame = this.c_frame_context.getImageData(
        0,
        0,
        this.c_frame.width,
        this.c_frame.height,
    );
    let l = frame.data.length / 4;

    for (let i = 0; i < l; i++) {
        let r = frame.data[i * 4 + 0];
        let g = frame.data[i * 4 + 1];
        let b = frame.data[i * 4 + 2];
        if (r > 180 && g > 194 && b < 189) frame.data[i * 4 + 3] = 0;
    }
    this.c_processed_context.putImageData(frame, 0, 0);
    return;
}
4

0 回答 0