Vue 调用电脑摄像头拍照 返回base64格式图片 简单例子

调用电脑摄像头拍照的简单例子,延伸使用可参考往期帖子 戳我传送

<template><div><el-button @click="isShow = !isShow">{{isShow ? "显示" : "隐藏"}}</el-button><el-button @click="OpenCamera" v-show="!isOpen">打开摄像头</el-button><el-button @click="CloseCamera" v-show="isOpen">关闭摄像头</el-button><el-button @click="setImage" v-show="isOpen">拍照</el-button><br /><videoref="captureVideo"id="captureVideo":class="isShow ? 'isShow' : ''"></video><canvas id="canvasCamera" :class="isShow ? 'isShow' : ''"></canvas><div v-if="imgSrc" :class="isShow ? 'isShow' : ''"><img :src="imgSrc" class="captureImg" /></div></div>
</template><script>
export default {data() {return {imgSrc: "", // 拍照图片canvas: null,context: null,videoWidth: 0, //视频实际宽度videoHeight: 0, //视频实际高度isShow: false,isOpen: false,};},mounted() {// this.OpenCamera();},methods: {// 调用打开摄像头功能OpenCamera(flag) {// console.log("flag", flag);var me = this;// 获取 canvas 画布this.canvas = document.getElementById("canvasCamera");this.context = this.canvas.getContext("2d");// 旧版本浏览器可能根本不支持mediaDevices,我们首先设置一个空对象if (navigator.mediaDevices === undefined) {navigator.mediaDevices = {};}// 正常支持版本navigator.mediaDevices.getUserMedia({video: true,}).then((stream) => {this.isOpen = true;// 摄像头开启成功this.$refs.captureVideo.srcObject = stream;this.$refs.captureVideo.play();var video = document.querySelector("#captureVideo");video.addEventListener("canplay", function () {me.videoWidth = video.videoWidth;me.videoHeight = video.videoHeight;video.style.width = me.videoWidth + "px";video.style.height = me.videoHeight + "px";var canvas = document.querySelector("canvas");canvas.width = me.videoWidth;canvas.height = me.videoHeight;});}).catch((err) => {console.log(err);});},// 关闭摄像头CloseCamera() {console.log("关闭摄像头");this.$refs.captureVideo.srcObject.getTracks()[0].stop();this.isOpen = false;this.imgSrc = null;this.context.clearRect(0, 0, this.videoWidth, this.videoHeight);},// 拍照 绘制图片setImage(type) {console.log("拍照");// 点击canvas画图this.context.drawImage(this.$refs.captureVideo,0,0,this.videoWidth,this.videoHeight);// 获取图片base64链接const image = this.canvas.toDataURL("image/png");this.imgSrc = image;// 干点啥呢},},
};
</script><style lang="scss" scoped>
#captureVideo {width: 100px;// display: none;
}
#canvasCamera {// display: none;
}
.captureImg {// display: none;width: 300px;height: auto;
}
.isShow {display: none;
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/56504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA就业笔记7——第二阶段(4)

课程须知 A类知识&#xff1a;工作和面试常用&#xff0c;代码必须要手敲&#xff0c;需要掌握。 B类知识&#xff1a;面试会问道&#xff0c;工作不常用&#xff0c;代码不需要手敲&#xff0c;理解能正确表达即可。 C类知识&#xff1a;工作和面试不常用&#xff0c;代码不…

绘制YOLOv11模型在训练过程中,精准率,召回率,mAP_0.5,mAP_0.5:0.95,以及各种损失的变化曲线

一、本文介绍 本文用于绘制模型在训练过程中,精准率,召回率,mAP_0.5,mAP_0.5:0.95,以及各种损失的变化曲线。用以比较不同算法的收敛速度,最终精度等,并且能够在论文中直观的展示改进效果。支持多文件的数据比较。 专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化…

spring task的使用场景

spring task 简介 spring task 是spring自带的任务调度框架按照约定的时间执行某个方法的工具&#xff0c;类似于闹钟 应用场景 cron表达式 周和日两者必定有一个是问号 简单案例 使用步骤 demo Component注解表示这是一个Spring的组件&#xff0c;会被Spring容器扫描到&#…

wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理的解决方法

前言 开头先讲讲wsl2启用代理的必要性&#xff0c;一般来说&#xff0c;会用wsl的都是开发者&#xff0c;那么就避免不了从网络上下载软件和应用&#xff0c;但是由于众所周知的原因&#xff0c;你使用apt&#xff0c;wget等工具下载国外网站的东西时&#xff0c;下载速度就会…

全面超越Spark,Clickhouse,比 Spark 快 900%,基于云器Lakehouse构建新一代一体化数据平台

人工智能的迅速发展正在改变着我们的世界&#xff0c;对于大数据企业来说更是如此。 在大语言模型的引领下&#xff0c;数据平台领军企业 Databricks 和 Snowflake 的未来正在被重新书写。这两家企业在不久前的发布会上强调了大语言模型和 AI 能力的重要性&#xff0c;试图通过…

【建议收藏】两万字总结Git的60个常用操作

文章目录 问题1&#xff1a;如何配置 Git 的全局用户名和邮箱&#xff1f;问题2&#xff1a;如何查看 Git 的全局和当前仓库配置&#xff1f;问题3&#xff1a;如何查看 Git 仓库的变更情况&#xff1f;问题4&#xff1a;如何将文件添加到 Git 的暂存区&#xff1f;问题5&#…

[单master节点k8s部署]41.部署springcloud项目

在之前的文章中我们配置了mysql和harbor&#xff0c;现在我们可以将一个springcloud部署在k8s集群中了。 项目概述 这个springcloud项目将采用maven进行打包部署。首先安装maven&#xff1a; yum install java-1.8.0-openjdk maven-3.0.5* -y 然后将该项目上传到k8s集群的m…

C#从零开始学习(Head First C#)

想要开发游戏&#xff0c;C#是unity用的编程语言,所以想系统的巩固和学习一下&#xff0c;在此记录自己的学习笔记&#xff0c;来和大家共同学习&#xff0c;同时也希望能够帮助一些想入门的同学&#xff0c;因此我会使用Head First C#这本书籍,从最开始的章节记录。给自己定个…

ANSYS 2024 R2设置中文

ANSYS 2024 R2设置中文 打开ANSYS Workbench R2软件依次点击Tools、Options 在弹出的Options选项卡中选择Regional and Language Options项&#xff0c;选择Language为Chinese然后点击OK 重启软件即可切换为中文界面

珠海自闭症寄宿学校:打造温馨家庭般的学习氛围

原文链接&#xff1a;http://www.zibizhengwang.com/page35.html 在探索自闭症儿童教育的广阔领域里&#xff0c;寄宿制学校以其独特的优势&#xff0c;为自闭症儿童提供了一个集教育、康复与生活于一体的综合性环境。而在珠海乃至全国&#xff0c;众多自闭症寄宿学校正不断努…

为什么inet_ntoa会返回错误的IP地址?

目录 1、调用inet_addr和inet_ntoa实现整型IP与点式字符串之间的转换 1.1、调用inet_addr将点式字符串IP转换成整型IP 1.2、调用inet_ntoa将整型IP转换成点式字符串IP 2、调用inet_ntoa返回错误点式字符串IP的原因分析 3、解决多线程调用inet_ntoa返回错误点式字符串IP的办…

请求第三方接口有反斜杠和双引号怎么处理,且做格式校验?

如&#xff1a;接口文档要求 直接使用转义失败&#xff0c;在postman中填值请求正常。 String para "[" "\\" "\"" "预计今天白天我市多云间晴&#xff1b;" "\\" "\"]"; System.err.println(pa…

Applied Spatial Statistics(九)GWR示例

Applied Spatial Statistics&#xff08;九&#xff09;GWR 示例 这是一个基本的示例笔记本&#xff0c;演示了如何使用开源“mgwr”包在 Python 中校准 GWR&#xff08;Fotheringham 等人&#xff0c;2002&#xff09;模型。mgwr 包由 Oshan 等人&#xff08;2019 年&#xff…

塞班和诺基亚(中古手机图,你见过哪个?)

诺基亚的塞班系统&#xff0c;是比较早和强大的移动操作系统了。当时还有Palm&#xff0c;微软的平台&#xff0c;但市占率都很低。 安卓从被谷歌收购那天&#xff0c;每个特性都预示着&#xff0c;未来一定会超越塞班。而塞班后来取消了生态&#xff0c;自己来使用&#xff0c…

element-ui点击文字查看图片预览功能

今天做一个点击文字查看图片的功能&#xff0c;大体页面长这样子&#xff0c;点击查看显示对应的图片 引入el-image-viewer&#xff0c;点击的文字时候设置图片预览组件显示并传入图片的地址 关键代码 <el-link v-if"scope.row.fileList.length > 0" type&…

Python基础:18、Python文件操作

1&#xff09;文件的编码 什么是编码&#xff1f; 编码就是一种规则集合&#xff0c;记录了内容和二进制间进行相互转换的逻辑。 编码有许多中&#xff0c;我们最常用的是UTF-8编码 为什么需要使用编码&#xff1f; 计算机只认识0和1&#xff0c;所以需要将内容翻译成0和1才能…

Ubuntu20.04卸载ros2 foxy版本安装ros1 noetic版本

前言 如果你ubuntu中没有ros&#xff0c;可以试着直接从鱼香ros一键安装包指令处开始。 卸载ros2 sudo apt-get remove ros-*接下来如果你直接使用鱼香ros的一键安装命令&#xff0c;会出错。 设置源 设置源&#xff0c;这里使用的是中科大的。 sudo sh -c . /etc/lsb-r…

GRU--详解

GRU&#xff08;Gated Recurrent Unit&#xff09;&#xff08;门控循环单元&#xff09;是RNN&#xff08;循环神经网络&#xff09;的一种变体。GRU的设计简化了另一种RNN变体——LSTM&#xff08;长短期记忆网络&#xff09;&#xff0c;与LSTM不同的是&#xff0c;GRU将输入…

【OpenGauss源码学习 —— (VecSortAgg)】

VecSortAgg 概述SortAggRunner::SortAggRunner 函数SortAggRunner::init_phase 函数SortAggRunner::init_indexForApFun 函数SortAggRunner::set_key 函数BaseAggRunner::initialize_sortstate 函数SortAggRunner::BindingFp 函数SortAggRunner::buildSortAgg 函数SortAggRunne…

python从0快速上手(一)python环境搭建 windows macos linux

Python环境搭建超详细指南 Python是一种广泛使用的高级编程语言&#xff0c;它以其简洁的语法和强大的功能而受到开发者的喜爱。对于初学者来说&#xff0c;搭建一个合适的Python开发环境是开始Python之旅的第一步。本文将为你提供一个超级详细的Python环境搭建指南&#xff0…