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