canvas像素操作之视频滤镜(存疑)

视频实时变灰

由于本篇文章笔者对一些地方存在疑问,不能解答,所以此文暂且作一个备份,有兴趣的可以琢磨琢磨:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        body {
            background: gray;
            text-align: center;
        }
        video{
            margin: 0 auto;
        }
    </style>
    <script>
        window.onload = function () {
            let c1 = document.getElementsByTagName('canvas')[0];
            let gd = c1.getContext('2d');
            let v1 = document.getElementById('vid');

            requestAnimationFrame(next);
            function next(){
                gd.drawImage(v1, 0, 0,850,478);
                let oData=gd.getImageData(0,0,c1.width,c1.height);
                for(let r=0;r<c1.height;r++){
                    for(let c=0;c<c1.width;c++){
                        oData.data[4*(r*c1.width+c)+0]=
                        oData.data[4*(r*c1.width+c)+1]=
                        oData.data[4*(r*c1.width+c)+2]=
                        (oData.data[4*(r*c1.width+c)+0]+oData.data[4*(r*c1.width+c)+1]+oData.data[4*(r*c1.width+c)+2])/3;
                    }
                }
                gd.putImageData(oData,0,0);
                requestAnimationFrame(next);
            }
        }
    </script>
</head>
<body>
    <video src="test.mp4" id="vid" autoplay controls  loop width="850" style="display: block;">your browser does not support the video tag</video>
    <canvas width="850" height="478" style="background:white;"></canvas>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 刚刚在网上看到一篇文章,是调查关于长寿的真正原因。经过对几百名百岁老人的调查研究,发现他们唯一共同点就是乐观。 看...
    啊福送喜阅读 182评论 0 0
  • 我脚踩着的大地 里面有死了的人 和归了故里的魂 当我开始行走 它没有跟从,但却一直陪伴 有人亮出致命的刀锋 有人的...
    WTshirt阅读 198评论 0 2
  • 历经半个多月的学习生活,孩子们已经由原来的幼儿园的模式逐渐转变了角色,真正成为一年的小豆包儿了。 这三...
    Ulrica一tf阅读 122评论 0 3