当前位置: 首页 > news >正文

德州做网站的公司有哪些网站管理助手打开是系统参数配置

德州做网站的公司有哪些,网站管理助手打开是系统参数配置,网站建设 网页设计,南昌网站推广项目中需要前端调用,所以做了如下操作 先看一下效果吧 主要是基于vue3,通过canvas把画面转成base64的形式,然后是把base64转成 file文件,最后调用了一下上传接口 以下是代码 进入页面先调用一下摄像头 navigator.mediaDevices.ge…

项目中需要前端调用,所以做了如下操作
先看一下效果吧
主要是基于vue3,通过canvas把画面转成base64的形式,然后是把base64转成
file文件,最后调用了一下上传接口

在这里插入图片描述
以下是代码

进入页面先调用一下摄像头

navigator.mediaDevices.getUserMedia({ video: true }).then((stream) => {video.value.srcObject = stream}).catch((error) => {console.error(error)})state.photoUrl = ''state.photo = true

拍照


const canvas = document.createElement('canvas')canvas.width = video.value.videoWidthcanvas.height = video.value.videoHeightcanvas.getContext('2d').drawImage(video.value, 0, 0, canvas.width, canvas.height)state.photoUrl = canvas.toDataURL('image/png')

转base64

  let arr = dataurl.split(',')let mime = arr[0].match(/:(.*?);/)[1]let suffix = mime.split('/')[1]let bstr = atob(arr[1])let n = bstr.lengthlet u8arr = new Uint8Array(n)while (n--) {u8arr[n] = bstr.charCodeAt(n)}return new File([u8arr], `${filename}.${suffix}`, {type: mime,})

完整代码

<template><div><div><div>摄像头实时画面</div><div class="hm"><video ref="video" v-if="state.photo" autoplay></video><img :src="state.photoUrl" v-else></div></div><div class="maT10"><el-button @click="takePhoto">拍照</el-button><el-button @click="retake">重拍</el-button></div></div>
</template><script setup lang="ts" name="photo">
import axios from 'axios'
const state = reactive({photo: true,photoUrl: '',
})
const video = ref()const takePhoto = () => {const canvas = document.createElement('canvas')canvas.width = video.value.videoWidthcanvas.height = video.value.videoHeightcanvas.getContext('2d').drawImage(video.value, 0, 0, canvas.width, canvas.height)state.photoUrl = canvas.toDataURL('image/png')clearVideo()state.photo = falselet file = base64ImgtoFile(state.photoUrl)let param = new FormData()param.append('file', file, file.name)param.append('fileReName', 'true')let config = {headers: {'Content-Type': 'multipart/form-data',Authorization: 'token',  //此处是token},}let url = import.meta.env.VITE_API_URL + '/api/admin/file/upload-file'axios.post(url, param, config).then((response) => {})
}
const base64ImgtoFile = (dataurl, filename = 'file') => {let arr = dataurl.split(',')let mime = arr[0].match(/:(.*?);/)[1]let suffix = mime.split('/')[1]let bstr = atob(arr[1])let n = bstr.lengthlet u8arr = new Uint8Array(n)while (n--) {u8arr[n] = bstr.charCodeAt(n)}return new File([u8arr], `${filename}.${suffix}`, {type: mime,})
}
const clearVideo = () => {const stream = video.value.srcObjectconst tracks = stream.getTracks()tracks.forEach((track) => {track.stop()})video.value.srcObject = null
}const retake = () => {navigator.mediaDevices.getUserMedia({ video: true }).then((stream) => {video.value.srcObject = stream}).catch((error) => {console.error(error)})state.photoUrl = ''state.photo = true
}onMounted(() => {retake()
})
//在离开当前页面的时候把摄像头关了,不然页面一直会显示摄像头的图标
onBeforeUnmount(() => {video.value.srcObject = null
})
</script><style scoped lang="scss">
.hm {width: 400px;height: 300px;video,img {width: 100%;}
}
</style>
http://www.yayakq.cn/news/315774/

相关文章:

  • 做网站需要编程?国内网站建设排名
  • 怎么做示爱的网站免费seo诊断
  • 网站营销策略有哪些友情链接发布网
  • 网站分析设计做的项目的过程公司网站做优化少钱
  • 中国建设银行抚州分行网站建网站建设网站
  • 绵阳微网站制作wordpress微博图床怎么用
  • 甘肃建投土木工程建设有限公司网站后台欧阳娜娜自创品牌
  • 看谁做的好舞蹈视频网站巨腾外贸网站建设
  • 做视频网站教程网页设计图片边框代码
  • 网站自动生成做网站平台的公司
  • 网站无后台可以上框架宣传的网站开发需要多少钱
  • 网站建设用哪种语言好公众号排版怎么做
  • 破解php网站后台密码做企业网站选百度云还是阿里云
  • 揭阳智能模板建站wordpress设置插件
  • 郑州做营销型网站公司注册了一个域名怎么做网站
  • ai可以用来做网站吗wordpress视频上传太小
  • 免费注册网页的网站如何给公司做网站
  • 网站为什么被挂马wordpress模板 美容
  • 村级网站建设 不断增强贵阳北京小学网站建设
  • 微信代理网站模板比较好的网站建设哪家好
  • 5个不好的网站logo网站有哪些
  • 做销售在那个网站找商丘家居网站建设
  • 网页素材提取企业搜索引擎优化
  • 做汽车团购网站广宗企业做网站
  • 网站入口首页抖音代运营报价明细
  • 网站模版更新公告网站导航栏分析
  • 企业网站推广哪家好彩票站自己做网站吗
  • 谷歌网站统计广告业网站开发
  • 注册网站要多久网络营销推广策划案例
  • 沈阳做网站需要多少钱邯郸网站制作基本流程