当前位置: 首页> 科技> 名企 > 平面设计培训大概费用_python在线编程工具_近期国内新闻摘抄_百度搜索引擎排行榜

平面设计培训大概费用_python在线编程工具_近期国内新闻摘抄_百度搜索引擎排行榜

时间:2025/7/18 6:36:26来源:https://blog.csdn.net/ALiangSev/article/details/145995597 浏览次数:0次
平面设计培训大概费用_python在线编程工具_近期国内新闻摘抄_百度搜索引擎排行榜

前言
刚开始做的时候太多坑,导致一直报错:
Uncaught (in promise) TypeError: Failed to execute ‘drawImage’ on ‘CanvasRenderingContext2D’: The provided value is not of type ‘(CSSImageValue or HTMLCanvasElement or HTMLImageElement or HTMLVideoElement or ImageBitmap or OffscreenCanvas or SVGImageElement or VideoFrame)’.

直接上代码!!!

1、html

<el-button class="capture-item" type="primary" @click="captureScreenshot">截图</el-button><video id="viewer" class="video-js vjs-default-skin" crossorigin="anonymous" controls><source :src="playVideo.url" type='video/mp4'>
</video>

2、js

/** 初始化视频播放器 */const initViewer = async () => {await nextTick() // 等待 DOM 更新// 初始化 video.jsplayer.value = videojs('viewer', {controls: true,autoplay: true,fluid: true,});}// 截图功能const captureScreenshot = () => {if (!player.value) return;const videoElement = player.value.el().querySelector('video');if (!videoElement) return;// 创建 Canvasconst canvas = document.createElement('canvas');const ctx = canvas.getContext('2d');if (!ctx) return;// 设置 Canvas 尺寸(可排除控制条)const controlHeight = 30; // 控制条高度canvas.width = videoElement.videoWidth;canvas.height = videoElement.videoHeight - controlHeight;// 绘制当前帧ctx.drawImage(videoElement,0, 0,videoElement.videoWidth, videoElement.videoHeight - controlHeight, // 源尺寸0, 0,canvas.width, canvas.height // 目标尺寸);// 转换为 DataURLconst dataUrl = canvas.toDataURL('image/png');downloadImage(dataUrl);};// 下载图片const downloadImage = (dataUrl: string) => {const link = document.createElement('a');link.download = `视频截图_${new Date()}.png`;link.href = dataUrl;link.click();};

我这里是截取完画面下载到浏览器!

3、图例

点击《截图》,直接下载
在这里插入图片描述
截取的画面:
在这里插入图片描述

关键字:平面设计培训大概费用_python在线编程工具_近期国内新闻摘抄_百度搜索引擎排行榜

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: