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

高端网站建设天软科技网页百度

高端网站建设天软科技,网页百度,wordpress模板添加主题,免费网站托管今天给大家分享一下&#xff0c;如何实现视频封面截取功能&#xff0c;这里主要用到了 HTML5 的 canvas 相关的 api 和 js 相关的一些知识&#xff0c;话不多说&#xff0c;直接上代码&#xff1a; <template><div><div class"margin-tb-sm"><…

今天给大家分享一下,如何实现视频封面截取功能,这里主要用到了 HTML5 的 canvas 相关的 api 和 js 相关的一些知识,话不多说,直接上代码: 

<template><div><div class="margin-tb-sm"><button type="primary" @click="cutImage">请截取封面</button></div><div class="flex margin-top-sm"><div class="padding-right-xs"><videoref="video":src="videoUrl"controlsloopstyle="max-width: 200px;"crossorigin="anonymous" ></video><!-- crossorigin="anonymous" 如果视频链接和你的项目不在一个域名下,加上这个解决跨域 --></div><div class="padding-left-xs"><canvas ref="canvas" style="display: none;"></canvas><img v-show="coverImageBase64" :src="coverImageBase64" alt="封面图" style="max-width: 200px;" ref="coverImage" /></div></div></div>
</template>
<script>
export default {data() {return {coverImageBase64: '', // 视频封面截图videoUrl: 'example.mp4' // 替换成你的视频地址}},methods: {cutImage() {this.$refs.video.pause()this.clearCanvas()this.capturePoster()},clearCanvas() {const canvas = this.$refs.canvas // 获取canvas元素var ctx = canvas.getContext('2d') // 获取2D渲染上下文ctx.clearRect(0, 0, canvas.width, canvas.height) // 重置画布尺寸清空画布},capturePoster() {const video = this.$refs.videoconst canvas = this.$refs.canvasconst ctx = canvas.getContext('2d')canvas.width = video.videoWidthcanvas.height = video.videoHeightctx.drawImage(video, 0, 0, canvas.width, canvas.height)// toDataURL() 将画布上的所有内容(包括绘制的图形、文本、图像等)编码为一个 base64 编码的字符串const base64Data = canvas.toDataURL('image/png')this.coverImageBase64 = base64Data},base64ToBlob(base64Data, contentType) {const sliceSize = 512// atob() 用于解码 Base64 编码字符串const byteCharacters = atob(base64Data.split(',')[1])const byteArrays = []for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {const slice = byteCharacters.slice(offset, offset + sliceSize)const byteNumbers = new Array(slice.length)for (let i = 0; i < slice.length; i++) {byteNumbers[i] = slice.charCodeAt(i)}const byteArray = new Uint8Array(byteNumbers)byteArrays.push(byteArray)}return new Blob(byteArrays, { type: contentType })}}
}
</script>

知识点归纳: 

atob() 方法是一个非常实用的 JavaScript 内置函数,可以轻松地处理 base-64 编码的数据 ;

canvas.toDataURL() 是用于将 HTML5 <canvas> 元素的内容转换为一个数据 URL(data URL)的方法。这个数据 URL 可以被用于在网页上直接显示图像,或者在服务器端处理时作为图像数据的传输方式。

语法

var dataURL = canvas.toDataURL(mimeType, quality);

参数

  • mimeType (可选): 指定输出图像的 MIME 类型。默认值是 image/png,但你也可以指定其他格式,如 image/jpeg
  • quality (仅用于 JPEG 格式,可选): 指定图像的质量,范围从 0.0(最差质量,文件最小)到 1.0(最佳质量,文件最大)。如果省略该参数,则默认值为 0.92。

返回值

该方法返回一个包含完整 MIME 类型和 base64 编码数据的字符串。例如:

data:image/png;base64,iVBORw0KG...
http://www.15wanjia.com/news/39341.html

相关文章:

  • uv推广平台白银网站seo
  • 网站买空间的价格百度小说风云榜总榜
  • 做网站秒杀软件用什么语言好百度广告大全
  • 武汉响应式网站定制开发台湾新闻最新消息今天
  • wordpress 做网课网站互联网营销公司
  • 商城网站需要多少空间方象科技专注于什么领域
  • 手机网站建设运营方案百度搜索热词排行榜
  • 网站内容填写百度seo点击工具
  • 服务器 空间 虚拟主机 网站需要seo排名软件有用吗
  • 网站建设的宽带指标要求免费自己建网页
  • 服装营销型网站建设网站收录怎么做
  • office365做企业网站创建网站
  • 怎样做网站内链大白兔网络营销策划书
  • 手机网站页面尺寸大小百度收录批量提交入口
  • 乌鲁木齐做网站公司哪家好网络营销swot分析
  • ppt制作网站如何制作一个网站
  • 国内免费ip代理手机appseo是什么岗位简称
  • 做那个的网站谁有外贸推广方式都有哪些
  • 宝安网站设计招聘信息好搜搜索引擎
  • 微网站免费软件百度的人工客服
  • opencart做网站视频seo优化托管
  • 大庆做网站找谁百度网站推广教程
  • 网站 部署 域名百度高级搜索页面的网址
  • 南通智能模板建站平台推广引流
  • 网站建设学院友情链接推广平台
  • 广州网站设计培训班有什么平台可以发广告
  • php发布wordpress文章优化大师下载安装
  • 营销类网站建设如何推广品牌
  • web开发做电商网站的全过程seo博客模板
  • 中山市建设局网站窗口电话号码成品影视app开发