css filter和getUserMedia的联合使用


Posted in HTML / CSS onFebruary 24, 2022

一、设置CSS3 filter(滤镜) 属性

filter 属性定义了元素(通常是<img>)的可视效果(例如:模糊与饱和度)。

blur(px) 给图像设置高斯模糊。"radius"一值设定高斯函数的标准差,或者是屏幕上以多少像素融在一起, 所以值越大越模糊;

grayscale(%) 将图像转换为灰度图像。值定义转换的比例。值为100%则完全转为灰度图像,值为0%图像无变化。值在0%到100%之间,则是效果的线性乘子。若未设置,值默认是0;

invert(%) 反转输入图像。值定义转换的比例。100%的价值是完全反转。值为0%则图像无变化。值在0%和100%之间,则是效果的线性乘子。 若值未设置,值默认是0。

sepia(%) 将图像转换为深褐色。值定义转换的比例。值为100%则完全是深褐色的,值为0%图像无变化。值在0%到100%之间,则是效果的线性乘子。若未设置,值默认是0;

.none {

    -webkit-filter: none;

    filter: none;

}



.blur {

    -webkit-filter: blur(3px);

    filter: blur(3px);

}



.grayscale {

    -webkit-filter: grayscale(1);

    filter: grayscale(1);

}



.invert {

    -webkit-filter: invert(1);

    filter: invert(1);

}



.sepia {

    -webkit-filter: sepia(1);

    filter: sepia(1);

}



button#snapshot {

    margin: 0 10px 25px 0;

    width: 110px;

}



video {

    object-fit: cover;

}

二、取元素

Document方法querySelector(), 返回Element文档中与指定选择器或选择器组匹配的第一个。如果未找到匹配项,null则返回。

匹配是使用文档节点的深度优先预序遍历完成的,从文档标记中的第一个元素开始,并按子节点数量的顺序迭代顺序节点。

const filterSelect = document.querySelector('select#filter');

const video = window.video = document.querySelector('video');

三、绑定change事件

  • 当元素的值发生改变时,会发生 onchange 事件。
  • 该事件类似于 oninput 事件。不同之处在于 oninput 事件在元素值改变后立即发生,而 onchange 在元素失去焦点而内容发生改变后发生。另一个区别是 onchange 事件也适用于 <select> 元素。
filterSelect.onchange = function() {

  video.className = filterSelect.value;

};

四、获取音视频轨道

  • MediaDevices.getUserMedia() 会提示用户给予使用媒体输入的许可,媒体输入会产生一个MediaStream,里面包含了请求的媒体类型的轨道。此流可以包含一个视频轨道(来自硬件或者虚拟视频源,比如相机、视频采集设备和屏幕共享服务等等)、一个音频轨道(同样来自硬件或虚拟音频源,比如麦克风、A/D转换器等等),也可能是其它轨道类型。
  • 它返回一个 Promise对象,成功后会resolve回调一个 MediaStream 对象。若用户拒绝了使用权限,或者需要的媒体源不可用,promise会reject回调一个 PermissionDeniedError 或者 NotFoundError 。
navigator.mediaDevices.getUserMedia({

    audio: false,

    video: true

}).then(handleSuccess).catch(handleError);



function handleSuccess(stream) {

  video.srcObject = stream;

}



function handleError(error) {

  console.log('navigator.MediaDevices.getUserMedia error: ', error.message, error.name);

}

五、HTML

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <link rel="stylesheet" href="./index.css">

</head>



<body>

<video playsinline autoplay></video>

<label for="filter">Filter: </label>

<select id="filter">

    <option value="none">None</option>

    <option value="blur">Blur</option>

    <option value="grayscale">Grayscale</option>

    <option value="invert">Invert</option>

    <option value="sepia">Sepia</option>

</select>



<script src="./index.js"></script>

</body>

</html>

效果展示:

 css filter和getUserMedia的联合使用

 css filter和getUserMedia的联合使用

 css filter和getUserMedia的联合使用

i css filter和getUserMedia的联合使用

到此这篇关于 css filter和getUserMedia的联合使用(web技术分享)的文章就介绍到这了,更多相关 css filter和getUserMedia的联合使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
手把手教你用纯css3实现轮播图效果实例
May 04 HTML / CSS
css3绘制天猫logo实现代码
Nov 06 HTML / CSS
使用css3制作动感导航条示例
Jan 26 HTML / CSS
深入浅析css3 中display box使用方法
Nov 25 HTML / CSS
纯CSS3打造属于自己的“小黄人”
Mar 14 HTML / CSS
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
Aug 15 HTML / CSS
HTML5注册表单的自动聚焦与占位文本示例代码
Jul 19 HTML / CSS
html5实现的便签特效(实战分享)
Nov 29 HTML / CSS
一文彻底解决HTML5页面中长按保存图片功能
Jun 10 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
Oct 08 HTML / CSS
iframe跨域的几种常用方法
Nov 11 HTML / CSS
html5实现九宫格抽奖可固定抽中某项奖品
Jun 15 HTML / CSS
css3中2D转换之有趣的transform形变效果
css3带你实现3D转换效果
bootstrapv4轮播图去除两侧阴影及线框的方法
企业开发CSS命名BEM代码规范实践
CSS3实现360度循环旋转功能
CSS实现九宫格布局(自适应)的示例代码
Feb 12 #HTML / CSS
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
Jan 18 #HTML / CSS
You might like
让PHP COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
2016/02/27 PHP
一行代码告别document.getElementById
2012/06/01 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
JS中正则表达式全局匹配模式 /g用法详解
2017/04/01 Javascript
webpack之devtool详解
2018/02/10 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
Python发送email的3种方法
2015/04/28 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
香港艺人陈冠希创办的潮流品牌:JUICESTORE
2021/03/04 全球购物
数控专业毕业生求职信范文
2013/09/21 职场文书
毕业生个人总结
2015/02/28 职场文书
大学优秀学生主要事迹材料
2015/11/04 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书
七年级写作指导之游记作文
2019/10/07 职场文书
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS
Win11 PC上的Outlook搜索错误怎么办?
2022/07/15 数码科技