【问题标题】:HTML5 Live Video Canvas ShapeHTML5 实时视频画布形状
【发布时间】:2017-09-11 00:17:53
【问题描述】:

我正在尝试为实时 HTML5 视频创建一个圆形框架(或画布)。我可以使用关键帧半径属性来弯曲拐角,但这会给我留下一个椭圆形,而不是圆形。

理想情况下,我可以使用 div 对象(png 图像)作为视频的遮罩。话虽这么说,div 对象只是一个圆圈,所以我也很乐意使用圆圈来掩盖视频。

这是我当前的代码:

<style>
  video, canvas {
        z-index: 1;
        position: absolute;
        top: 10%;
        left: 25%;
        -webkit-border-radius: 50%; 
        -moz-border-radius: 50%;
        -ms-border-radius: 50%;
        border-radius: 50%;
        overflow: hidden; 
  }
</style>
<video id="video" width="600" height="450" preload autoplay loop muted controls></video>
<canvas id="canvas" width="600" height="600"></canvas>

最好为视频设置一个圆形遮罩,而不是更改宽高比以使视频被压缩。谢谢!

【问题讨论】:

    标签: javascript css html video canvas


    【解决方案1】:

    分别设置包含 div 和 video 元素的样式。添加 -webkit-mask-image 到包含的 div。

    -webkit-mask-image CSS 属性设置元素的掩码图像。蒙版图片根据蒙版图片的透明度裁剪元素的可见部分。

    CSS

    .canvas {
       width: 600px;
       height: 600px;
       border-radius: 300px;
       -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);
    }
    
    video {
       width: 600px;
       height: 600px;
       position: absolute;
       top: -125px;
       left: -125px;
    }
    

    HTML

    <div class="canvas">
        <video id="video" preload autoplay loop muted controls></video>
    </div>
    

    看看它是否有效:)

    【讨论】:

      猜你喜欢
      • 2013-05-10
      • 2016-09-24
      • 1970-01-01
      • 2018-07-24
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 2012-08-28
      • 2013-04-20
      相关资源
      最近更新 更多