web截图

在项目开发过程中,我们会遇到需要截图当前系统窗口, 用户借助第三方截图工具可以实现。

但有一种,在供排水系统重,有个视频巡检功能,且能系统自动巡检,即按照系统设定的步骤,一步步播放视频,且自动填入巡检情况,这时候需要系统能自动截图并保存到相应的巡检步骤下。html2canvas是常用的截图插件,但该插件不支持网页有视频窗口,如有视频窗口,截图后,视频窗口是显示的全黑,没有视频内容。

但客户就要这么个功能,怎么办呢?经过各种测试,调试后,终于找到一个方法:js-web-screen-shot

废话不多说,首先,安装依赖。npm install

引用插件:import ScreenShort from 'js-web-screen-shot'

具体代码如下图:

        captureScreenshot() {
				    if (this.captureScreenshotLoading == false) {
					this.$Notice.success({
						title: "提示",
						desc: "图片正在上传,请稍后",
						duration: 3,
					});
					return
				}
                //获取需要截图的dom
				let el = document.querySelector('.patrol-task-executing .ivu-modal-content');
				let rect = el.getBoundingClientRect();
				setTimeout(() => {
					const screenShotHandler = new ScreenShort({
						enableWebRtc: true, //是否显示选项框
						level: 99999, //层级级别
						clickCutFullScreen: true,
						cropBoxInfo: {
							x: rect.x,
							y: rect.y,
							w: rect.width,
							h: rect.height
						},
						// canvasWidth:document.body.clientWidth,
						// canvasHeight:window.screen.availHeight,
						triggerCallback: () => {
							// 截图组件加载完毕调用此方法来完成框选区域的截图
							screenShotHandler.completeScreenshot()
						},
						completeCallback: this.screenShortSuccess,
						// closeCallback: this.screenShortClose,
					});
				}, 0)
			},


            screenShortSuccess(data) {
				let bar = document.querySelector('#screenShortLoadingbar');
				bar.style.display = 'none';
				var image = new Image();
				image.src = data.base64;
				image.onload = () => {
					var canvas = this.convertImageToCanvas(image);
					var url = canvas.toDataURL("image/png");
					//图片上传系统,这里可以根据自己需求处理
                    this.captureScreenshotUpload(url)
				}
			},

            screenShortClose() {
				let bar = document.querySelector('#screenShortLoadingbar');
				bar.style.display = 'none';
				console.log('截图结束')
			},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个程序猿cc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值