Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 如何在类似ffmpeg风格的画布中使用javascript绘制马赛克?_Video_Canvas_Ffmpeg_Blur_Mosaic - Fatal编程技术网

Video 如何在类似ffmpeg风格的画布中使用javascript绘制马赛克?

Video 如何在类似ffmpeg风格的画布中使用javascript绘制马赛克?,video,canvas,ffmpeg,blur,mosaic,Video,Canvas,Ffmpeg,Blur,Mosaic,视频的马赛克是由ffmpeg添加的,但我需要在画布上用javascrip绘制它 我试过BoxBlur和GaussBlur,它们都不是ffmpeg的风格, 有人知道红色循环中的样式算法,或者只是模糊样式的名称? 感谢您的关注这是一种简单的框模糊形式。您可以使用drawImage()的内置重采样/插值功能在画布中实现这一点,方法是绘制两个过程,首先使用一个垂直列并按宽度缩放,然后在顶部使用半阿尔法混合一行并垂直绘制 使用给定的修改版本的示例(但放大了,下面示例代码中的源区域扩展了10倍以匹配视觉效果

视频的马赛克是由ffmpeg添加的,但我需要在画布上用javascrip绘制它

我试过BoxBlur和GaussBlur,它们都不是ffmpeg的风格, 有人知道红色循环中的样式算法,或者只是模糊样式的名称?
感谢您的关注

这是一种简单的框模糊形式。您可以使用
drawImage()
的内置重采样/插值功能在画布中实现这一点,方法是绘制两个过程,首先使用一个垂直列并按宽度缩放,然后在顶部使用半阿尔法混合一行并垂直绘制

使用给定的修改版本的示例(但放大了,下面示例代码中的源区域扩展了10倍以匹配视觉效果)

需要注意的一点是,在这种情况下,垂直样品从底部到顶部;您可能需要考虑这一点,因为
drawImage()
将从上到下绘制。您可以使用变换来处理此问题(
scale(1,-1)
+适当的偏移)

var ctx,img=新图像;img.onload=模糊;img.src=“//i.stack.imgur.com/NbSH2.png”;
函数blur(){
c、 宽度=this.width;c.height=this.height;
ctx=c.getContext(“2d”);
ctx.drawImage(this,0,0);
//在原稿上使用alpha(在给定图像中不存在)。
//过程1:水平源列(10x)目标区域
drawImage(这个,50,0,10210,50,0,c.width-50210);
//第二关:垂直
ctx.globalAlpha=0.5;
ctx.drawImage(这个,50210,c.width-50,10,50,0,c.width-50210);
}

。。。你能链接到你所说的马赛克吗?你是指类似的东西吗?在本例中,只需使用drawImage,但我不明白为什么会使用BoxBlur和GaussBlur,不管它们是什么。