js实现调用摄像头拍照功能

2023-10-31

js实现调用摄像头拍照功能

<!DOCTYPE html>
<html lang="en">
<head>
    <!-- 样式部分可以忽略 -->
    <style>
        * {
            padding: 0;
            margin: 0;
        }
        div {
            width: 100vw;
            height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .btn {
            width: 100px;
            height: 50px;
            border-radius: 10px;
            background: #ff9900;
            line-height: 50px;
            text-align: center;
            color: #fff;
            box-shadow: 0 0 10px #999;
        }
        video, canvas {
            width: 300px;
            height: 300px;
            border: 5px solid #000;
            border-radius: 10px;
            margin-left: 5px;
        }
    </style>
</head>
<body>
    <div>
        <div id="play" class="btn">开启摄像</div>
        <div id="take" class="btn">拍照</div>
        <video id="video"></video>
        <!-- 尽量在canvas标签上设置宽高 -->
        <canvas id="canvas" width="300px" height="300px"></canvas>
    </div>
    <script>
        // 开启摄像
        document.getElementById('play').onclick = () => {
            let constraints = {
                // video属性设置
                video: {
                    width: 300,
                    height: 300
                },
                // audio属性设置
                audio: true
            }
            navigator.mediaDevices.getUserMedia(constraints)
            .then(mediaStream => {
                // 成功返回promise对象,接收一个mediaStream参数与video标签进行对接
                document.getElementById('video').srcObject = mediaStream
                document.getElementById('video').play()
            })
            // 失败就失败了
        }
        // 拍照、canvas绘制
        document.getElementById('take').onclick = () => {
            let ctx = document.getElementById("canvas").getContext('2d')
            ctx.drawImage(document.getElementById("video"), 0, 0, 300, 300)
        }
    </script>
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js实现调用摄像头拍照功能 的相关文章

  • Node js 使用中间件重定向进行过多重定向

    在我的 Node js 应用程序 我使用的是express 4 x 中 我想检查用户是否已登录 如果用户未登录 我想重定向到我的登录页面 然后我在中间件中这样做 服务器 js app use function req res next if
  • 消息“在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调”

    我正在使用 Puppeteer 和 Jest 来运行一些前端测试 我的测试如下 describe Profile Tab Exists and Clickable settings user gt test Assert that you
  • 为什么需要重置浏览器?

    好吧 我知道这可能不是最好的标题why我们需要重置浏览器 因为浏览器有不同的默认设置 我的问题太长 无法放入标题中 如果每个人 90 的时间都需要使用重置样式表 为什么浏览器需要设置默认样式 无论如何我们都会删除它们 对吗 因为某些规则默认
  • 如何使用 jest 模拟第三方库

    我正在开发一个node js应用程序使用nestjs我有一堂课叫LoggerService如下 export class LoggerService private logger Rollbar constructor this logge
  • 按百分比设置 bootstrap 模态身高

    我正在尝试制作一个带有主体的模态 当内容变得太大时 该主体会滚动 但是 我希望模式能够响应屏幕尺寸 当我将最大高度设置为 40 时 它没有任何效果 但是 如果我将最大高度设置为 400px 它会按预期工作 但不会响应 我确信我只是错过了一些
  • javascript中按tab键时如何调用函数?

    我有一个这样的功能 function whenEmpty field if field value field style backgroundColor ffcccc alert Please fill the field field f
  • 是否有任何非轮询方式来检测 DOM 元素的大小或位置何时发生变化?

    很长一段时间以来 我一直在寻找一种方法来检测 DOM 元素的大小或位置何时发生变化 这可能是因为窗口调整了大小 或者因为向该元素添加了新的子元素 或者因为在该元素周围添加了新元素 或者因为 CSS 规则已更改 或者因为用户更改了浏览器的字体
  • 在d3.js中将2D形状转换为3D,并根据ANGULAR中的值调整高度

    我正在使用 d3 js v6 创建以下 2D 图表表示的 3D 图表 这个圆圈中有多个正方形 每个正方形都根据值分配了一种颜色 值越大 正方形越暗 现在我想将其转换为 3D 形状 其中当值变高时 只有特定正方形的高度会增加 因此结果在某种程
  • 如何使JavaScript函数在Eclipse“大纲视图”中可见?

    我有这样的代码 但如果它在匿名函数中定义 则无法打开函数大纲 类没有问题 我该如何概述something2 请分享一些提示 我可以将所有函数标记为构造函数 但这是无效的方法 start of track event required deb
  • 悬停时为 SVG 制作动画

    我正在尝试在悬停时为 SVG 文件设置动画 默认情况下 它可以使用 svg 函数实现出色的动画效果 例如
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的
  • JavaScript 代码在不使用 ActiveX 的情况下截取网站屏幕截图

    我有一个用户与之交互的 JavaScript 应用程序 我需要保存当前界面的外观 裁剪出我需要的部分 或者通过指定div只拍摄我需要的部分 然后发送回服务器 显然任何外部服务都无法做到这一点 我需要一个 JavaScript 或Flash
  • 如果数字小于 10,则显示前导零 [重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 相当于 printf string format https stackoverflow com questions 610406 javascript equivalent t
  • 如何获取 UIWebView 中元素的位置?

    我在 iPad 程序中加载了 html 的 UIWebView 通过使用 webkit column width 我将 html 分为几列 padding 0px height 1024px webkit column gap 0px we
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 显示覆盖以覆盖整个页面

    我有一个正在加载的网络应用程序iframe 我需要显示一个覆盖 div 来覆盖整个页面 问题是叠加层当前仅显示在iframe区域而不覆盖整个页面 我们的应用程序 子应用程序 是加载的一组应用程序的一部分iframe 你可以做这样的事情 di
  • 在 Javascript 中减少/分组数组

    基于this https stackoverflow com a 40774906 3254598例如 我想以稍微不同的方式按对象进行分组 结果应该如下 key audi items make audi model r8 year 2012
  • 如何在打字稿文件中导入没有定义文件的js库

    随着我们的项目变得越来越大 我想从 JavaScript 切换到 TypeScript 以帮助进行代码管理 然而 我们使用许多库作为 amd 模块 我们不想将其转换为 TypeScript 我们仍然想将它们导入 TypeScript 文件
  • HTML 默认图像大小

    我在我的代码上显示 3 张图片 图片具有不同的尺寸 宽度和高度 div class row div class col lg 12 h2 class page header Gallery h2 div div class col md 4
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • Linux Socket网络编程 循环互相通信

    一 效果展示 持续互相通信 上面是服务端 下面为客户端加上ip 最后客户端输入exit退出 二 代码展示 服务端 server c include
  • Leetcode刷题:空间缩减思想

    文章目录 167 两数之和 II 输入有序数组 11 盛最多水的容器 240 搜索二维矩阵 II 11 盛最多水的容器 暴力 空间缩减 证明 二分 167 两数之和 II 输入有序数组 167 两数之和 II 输入有序数组 1 二分 cla
  • R语言在图上标出点坐标_R语言做图plot参数

    R语言做图plot参数函数名称 plot 用 途 作图 用 法 plot x y 参 数 1 符号和线条 pch 指定绘制点所使用的符号 取值范围 0 24 其中4是 差号 20是 点 cex 指定符号的大小 cex是一个数值 表示pch的
  • NVIDIA GeFprce GTX 1080 Ti NVIDIA图形驱动程序版本466.77下载和安装

    前言 在win7下 NVIDIA GeFprce GTX 1080 Ti NVIDIA图形驱动程序版本466 77下载和安装 但安装时系统报错 缺少KB4474419和KB4490628补丁 解决 NVIDIA GeFprce GTX 10
  • win10解决COM Surrogate问题

    Fix Problems with COM Surrogate on Windows 10 For various PC problems we recommend to use this tool This tool will repai
  • NPN和PNP 的电流方向 、大小关系 、电压偏置

    电流流向 NPN三极管 电流方向为基极流向发射极 驱动电流从基极流入 集电极流向发射极 PNP三极管 电流方向为发射极流向基极 驱动电流从基极流出 发射极流向集电极 PNP的电流方向是从下往上流的 但是在实际电路图中 大多还是发射极连接高电
  • 【LVGL事件(Events)】事件在不同组件上的应用(一)

    点击 滑动 输入 数字改变等等都可触发事件 事件就是针对不同的操作做出相对应的反应 最近看到组态屏 这玩意开发起来好像挺简单的 哈哈哈 研究完LVGL的事件就看看这个 LVGL事件 Events 事件代码 喜暖知寒的博客 CSDN博客LVG
  • 如何监听edittext输入完成

    转载于 http blog csdn net harryweasley article details 50395209 假如你要做这样的一个功能 通过在编辑框输入一些字符进行搜索 输入完成后 再显示搜索结果 在输入的过程中 并不想一直通知
  • ffmpeg命令行太多了_如何使用FFmpeg从视频中删除多个片段?

    我编写了一个脚本来加快编辑录制的电视的速度 该脚本会询问您要保留的段的开始和结束时间 并将其拆分为文件 它为您提供了选择 您可以 采取一个或多个细分 您可以将这些段合并为一个结果文件 加入后 您可以保留或删除零件文件 您可以保留原始文件或将
  • python爬虫-单线程爬取图片

    今天我们准备使用爬虫来爬取一些图片首先我们找到其url页面 https pvp qq com web201605 wallpaper shtml 进入之后当我们点击跳转页面的时候 发现其上方的网址没有发生变化 如果不发生变化的话就不可以进行
  • 【TensorFlow】tf.nn、tf.layers和tf.contrib模块

    转自 https blog csdn net u014365862 article details 77833481 我们在使用tensorflow时 会发现tf nn tf layers tf contrib模块有很多功能是重复的 尤其是
  • Aware&原理---Spring源码从入门到精通(十四)

    上篇文章主要介绍 Autowired自动装配 1 Bean注解 传参在方法上 自动装配 参数会从ioc容器从获取 2 有参构造器如果只有一个的情况下 也可以省略 Autowired不写 自动装配 感兴趣的同学可以点进去看看 自动装配构造器
  • php 代码需要重写注释_不要注释错误的代码-重写它

    php 代码需要重写注释 在这篇文章中 我将分享我通过阅读代码 编写代码和阅读书本获得的 代码注释 的经验 让我们从著名的报价开始 Don t comment bad code rewrite it Brian W Kernighan an
  • 第一章 安装OpenResty(Nginx+Lua)开发环境

    首先我们选择使用OpenResty 其是由Nginx核心加很多第三方模块组成 其最大的亮点是默认集成了Lua开发环境 使得Nginx可以作为一个Web Server使用 借助于Nginx的事件驱动模型和非阻塞IO 可以实现高性能的Web应用
  • 华为OD机试 - 运维日志排序(Java)

    题目描述 运维工程师采集到某产品线网运行一天产生的日志n条 现需根据日志时间先后顺序对日志进行排序 日志时间格式为H M S N H表示小时 0 23 M表示分钟 0 59 S表示秒 0 59 N表示毫秒 0 999 时间可能并没有补全 也
  • 软件测试面试题及答案

    软件测试面试题及答案 以下是软件测试相关的面试题及答案 欢迎大家参考 1 你的测试职业发展是什么 测试经验越多 测试能力越高 所以我的职业发展是需要时间积累的 一步步向着高级测试工程师奔去 而且我也有初步的职业规划 前3年积累测试经验 按如
  • nvm、node、npm、node-sass版本相关问题

    node js的运行环境 npm 管理js的第三方插件 node modules nvm 管理node的版本 不同的项目可能使用的node的版本不同 使用nvm可以快速下载不同版本的node 和切换不同版本的node 1 下载nvm 下载地
  • 首富王健林:万达管理员工的20条天规!

    为现今亚洲首富的王健林 在公司员工管理方面必有他的过人之处 今天 我们带您看看他对员工从团队利益到个人价值 以及做人准则方面的要求 深刻体现出一个优秀企业的管理根基 值得大家一看 第1条天规 公司利益高于一切 公司是全体员工的生存平台 个人
  • nginx绑定多个端口

    有两种方法 一 在server段写上2个Listen就可以了 listen 192 168 0 15 808 listen 192 168 0 15 8098 如上 就可以同时监听2个端口了 二 在 nginx conf 中配置多个个ser
  • js实现调用摄像头拍照功能

    js实现调用摄像头拍照功能