base64图片转文件&&视频获取第一帧图片

base64图片转文件

let base64toFile = function (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.length
         let u8arr = new Uint8Array(n)
         while (n--) {
             u8arr[n] = bstr.charCodeAt(n)
         }
         return new File([u8arr], `${filename}.${suffix}`, {
             type: mime
         })
     }

视频获取第一帧图片

<video
	 id="myVideo"
	  ref="video"
	  webkit-playsinline
	  playsinline
	  x-webkit-airplay
	  x5-playsinline
	  preload="auto"
	  loop
	  :src="uploadVideo.videoMsg"
	  class="bg-size"
></video>
	uploadVideo.videoFile = files[0]
   uploadVideo.videoMsg = URL.createObjectURL(files[0])
     uploadVideo.reader.readAsDataURL(files[0])
     uploadVideo.reader.addEventListener('loadend', () => {
        captureImage()
     })
captureImage: () => {
        const scale = 0.8
        const canvas = document.createElement('canvas')
        canvas.width = video.value.videoWidth * scale
        canvas.height = video.value.videoHeight * scale
        canvas.getContext('2d').drawImage(video.value, 0, 0, canvas.width, canvas.height)
        video.value.poster = canvas.toDataURL('image/png')
        uploadVideo.videoPoster = base64toFile(canvas.toDataURL('image/png'))
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值