如何使用jQuery / JavaScript对视频应用不同的滤镜效果

xxb16uws  于 2023-01-19  发布在  Java
关注(0)|答案(1)|浏览(133)
    • bounty将在6天后过期**。回答此问题可获得+50声望奖励。MAYUR SANCHETI希望引起更多人关注此问题。

我正在为https://www.veed.io/tools/video-filters等视频开发滤镜效果,我正在使用JavaScript/jQuery,Fabric。
但它不能正确地将效果应用到视频中。
有人能给一些建议或什么是下面的代码错误或可用库应用过滤器或一些有用的链接。
如果需要更清楚的说明,请评论。
我也试过下面的代码,

$(document).ready(function() {
    
        canvas = new fabric.Canvas('c');
        canvas.setWidth(480);
        canvas.setHeight(360);
    
        var video1El = document.getElementById('video1');
        var video1 = new fabric.Image(video1El, {
          left: 0,
          top: 0
        });
    
        canvas.add(video1);
        video1El.load();
    
    
        $(document.body).on('click', '#play' ,function(){
            video1El.play();
            var filter = new fabric.Image.filters.BlendColor({
                color:'red',
                mode: 'tint',
                alpha: 0.5
            });
            video1.filters = [filter];
        });
    
    
    
    
        fabric.util.requestAnimFrame(function render() {
          var image = canvas.item(0);
          var backend = fabric.filterBackend;
          if (backend && backend.evictCachesForKey) {
            backend.evictCachesForKey(image.cacheKey);
            backend.evictCachesForKey(image.cacheKey + '_filtered');
          }
          canvas.item(0).applyFilters();
          canvas.renderAll();
          fabric.util.requestAnimFrame(render);
        });
    
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.2.3/fabric.min.js"></script>
<button id="play">play</button>
<canvas id="c" width="300" height="300"></canvas>
<video crossorigin="anonymous" id="video1" style="display: none" class="canvas-img" width="480" height="360">
  <source id="video_src1" src="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" type="video/mp4">
</video>

我的期望是创建视频过滤器,例如-灰度过滤器,模糊,彩色过滤器,RGB过滤器,阴影,黑白视频。像我添加的网站链接。

o2g1uqev

o2g1uqev1#

你的代码基本上没问题。有趣的是

var filter = new fabric.Image.filters.BlendColor({
   color:'red',
   mode: 'tint',
   alpha: 0.5
});

在这里,您使用了筛选器BlendColor,它是许多其他筛选器中的一个。

  • 基础过滤器
  • 亮度
  • 回旋
  • 渐变透明度
  • 灰阶
  • 倒置
  • 面罩
  • 噪音
  • 皮克斯拉泰
  • 删除白色
  • 乌贼属
  • 乌贼墨2
  • 色调

请参见documentation
然而,在fabric.Image.filters之后你可以添加一个滤镜。例如,如果你想添加模糊效果,你可以使用fabric.Image.filters.Blur()Blur()的第一个参数是一个对象。在文档中,你可以找到你可以传递的属性。

示例:

x一个一个一个一个x一个一个二个x

相关问题