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

政府门户网站建设的保障体系拉新推广怎么做

政府门户网站建设的保障体系,拉新推广怎么做,手机网站如何生成app,网页设计作品集展示项目中需要前端调用,所以做了如下操作 先看一下效果吧 主要是基于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.hkea.cn/news/3222/

相关文章:

  • 做网站需要的图片大小怎样在百度上免费做广告
  • wordpress图片多选百度seo怎么样优化
  • 邮箱官网登录入口seo自然排名关键词来源的优缺点
  • 网站怎么做才可以做评价阿里指数在哪里看
  • seo学习网站网络推广优化网站
  • 京东商城网站建设目标360搜索引擎推广
  • 让人做网站需要注意什如何创建自己的个人网站
  • python做电子商务网站北京seo招聘
  • 深圳网站建设q479185700強百度小说排行榜
  • 网站首页大图的尺寸济南网站建设老威
  • 拨付网站建设费用的报告广州网络公司
  • 代做课件的网站如何建立自己的网站?
  • 网站怎么做评估广告公司联系方式
  • 网站建设服务标准化四种营销模式
  • 秦皇岛网站建设报价sem是什么设备
  • 图片展示网站织梦源码seo推广软件排行榜
  • 专门做儿童的店铺网站百度竞价托管代运营公司
  • 服装网站设计公司网站建设高端公司
  • 江苏高校品牌专业建设网站网站推广论坛
  • 网站域名记录值公司排名seo
  • 手表网站有哪个比较好徐州seo推广优化
  • 怎么做招聘网站百度安装下载
  • wordpress页面湖北seo诊断
  • 上海建设单位工程备案网站网络营销的工具和方法有哪些
  • 如何让网站互动起来廊坊网站建设优化
  • 公司官网包括什么内容网站怎么seo关键词排名优化推广
  • 咨询公司名字大全优化绿松石什么意思
  • 做相片软件网站搜索引擎优化排名技巧
  • wordpress加关键字seo营销方法
  • 多软件网站下载安装谷歌google下载安卓版 app