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

h5在线网站建设徐州市政建设集团有限责任公司

h5在线网站建设,徐州市政建设集团有限责任公司,安卓手机做网站,外包公司排行网页截屏 js-web-screen-shot 截取其他窗口 显示不全问题 npm 安装 js-web-screen-shot npm install js-web-screen-shot --savejs-web-screen-shot默认截屏是从左下角开始的,修改成左上角开始,然后编辑cropBoxInfo参数宽高进行截取,目前截…

网页截屏 js-web-screen-shot 截取其他窗口 显示不全问题

npm 安装 js-web-screen-shot

npm install js-web-screen-shot --save

js-web-screen-shot默认截屏是从左下角开始的,修改成左上角开始,然后编辑cropBoxInfo参数宽高进行截取,目前截取适配的其他窗口宽高不能比浏览器页面宽高大

vue代码

import ScreenShot from 'js-web-screen-shot'new ScreenShot({enableWebRtc: true,level: 99999,wrcWindowMode: true,clickCutFullScreen: true,imgAutoFit: true,showScreenData: true,completeCallback: this.callback, // 截图成功完成的回调closeCallback: this.cancelCallback, // 截图取消的回调hiddenScrollBar: {state: true,fillState: true,color: "#FFFFFF"},// cropBoxInfo: {x: 0, y: 0, w: 1757, h: 1011},cropBoxInfo: {x: 0, y: 0, w: 1290, h: 640},// canvasWidth: window.innerWidth,// canvasHeight: window.innerHeight,})

修改js-web-screen-shot代码

main.ts文件

private loadScreenFlowData(triggerCallback: Function | undefined) {setTimeout(() => {// 获取截图区域canvas容器画布if (this.screenShotContainer == null) return;const canvasSize = this.plugInParameters.getCanvasSize();let containerWidth = this.screenShotImageController?.width;let containerHeight = this.screenShotImageController?.height;// 用户有传宽高时,则使用用户的if (canvasSize.canvasWidth !== 0 && canvasSize.canvasHeight !== 0) {containerWidth = canvasSize.canvasWidth;containerHeight = canvasSize.canvasHeight;}let imgContainerWidth = containerWidth;let imgContainerHeight = containerHeight;if (this.wrcWindowMode) {imgContainerWidth = containerWidth * this.dpr;imgContainerHeight = containerHeight * this.dpr;}const context = getCanvas2dCtx(this.screenShotContainer,containerWidth,containerHeight);const imgContext = getCanvas2dCtx(this.screenShotImageController,imgContainerWidth,imgContainerHeight);if (context == null || imgContext == null) return;// 赋值截图区域canvas画布this.screenShotCanvas = context;const { videoWidth, videoHeight } = this.videoController;if (this.wrcWindowMode) {// 从窗口视频流中获取body内容const bodyImgData = this.getWindowContentData(videoWidth,videoHeight,containerWidth * this.dpr,containerHeight * this.dpr);if (bodyImgData == null) return;// 将body内容绘制到图片容器里imgContext.putImageData(bodyImgData, 0, 0);} else {// 对webrtc源提供的图像宽高进行修复let fixWidth = containerWidth;let fixHeight = (videoHeight * containerWidth) / videoWidth;if (fixHeight > containerHeight) {fixWidth = (containerWidth * containerHeight) / fixHeight;fixHeight = containerHeight;}// 对视频容器的内容进行裁剪fixWidth = this.wrcImgPosition.w > 0 ? this.wrcImgPosition.w : fixWidth;fixHeight =this.wrcImgPosition.h > 0 ? this.wrcImgPosition.h : fixHeight;imgContext?.drawImage(this.videoController,this.wrcImgPosition.x,this.wrcImgPosition.y,fixWidth,fixHeight);// 隐藏滚动条会出现部分内容未截取到,需要进行修复const diffHeight = containerHeight - fixHeight;if (this.hiddenScrollBar.state &&diffHeight > 0 &&this.hiddenScrollBar.fillState) {// 填充容器的剩余部分imgContext.beginPath();let fillWidth = containerWidth;let fillHeight = diffHeight;if (this.hiddenScrollBar.fillWidth > 0) {fillWidth = this.hiddenScrollBar.fillWidth;}if (this.hiddenScrollBar.fillHeight > 0) {fillHeight = this.hiddenScrollBar.fillHeight;}imgContext.rect(0, fixHeight, fillWidth, fillHeight);imgContext.fillStyle = this.hiddenScrollBar.color;imgContext.fill();}}// 初始化截图容器this.initScreenShot(undefined, context, this.screenShotImageController);let displaySurface = null;let displayLabel = null;if (this.captureStream) {// 获取当前选择的窗口类型displaySurface = this.captureStream.getVideoTracks()[0].getSettings()?.displaySurface;// 获取当前选择的标签页标识displayLabel = this.captureStream.getVideoTracks()[0].label;}// 执行截图成功回调if (triggerCallback) {triggerCallback({code: 0,msg: "截图加载完成",displaySurface,displayLabel});}// 停止捕捉屏幕this.stopCapture();// 重置光标状态document.body.classList.remove("no-cursor");}, this.wrcReplyTime);}


文章转载自:

http://8mrUoK2N.zxznh.cn
http://qqpU5YZ5.zxznh.cn
http://nDhEO3xX.zxznh.cn
http://QMRUGA8a.zxznh.cn
http://ZcvzqPsY.zxznh.cn
http://Er4gi7Xg.zxznh.cn
http://dpnzvDt8.zxznh.cn
http://0CfvTb9E.zxznh.cn
http://bKDaHQgs.zxznh.cn
http://alQ5arrI.zxznh.cn
http://L0lhr1pe.zxznh.cn
http://F7x3Mubk.zxznh.cn
http://UIWi2XTl.zxznh.cn
http://x7viAWze.zxznh.cn
http://ChvHWCjw.zxznh.cn
http://zTkNp3mX.zxznh.cn
http://TOD27Ajn.zxznh.cn
http://tYADzkzC.zxznh.cn
http://WBGMqolG.zxznh.cn
http://vcYWRBws.zxznh.cn
http://69oigA5E.zxznh.cn
http://Xm1AF91U.zxznh.cn
http://Rrs35fFv.zxznh.cn
http://nVVXboR7.zxznh.cn
http://xwkzbQM2.zxznh.cn
http://MjQ0htim.zxznh.cn
http://aqjdSWwX.zxznh.cn
http://P76lvCWD.zxznh.cn
http://g7Vs3kCz.zxznh.cn
http://MHWOA7uX.zxznh.cn
http://www.dtcms.com/wzjs/756695.html

相关文章:

  • 网站搭建服务器需要什么郑州seo优化外包
  • 成都哪里做网站备案天津市中小企业局网站
  • 潍坊网站建设教程互联网推广营销隐迅推我选
  • 网站怎么做 凡科张雪峰谈广告学就业
  • 网站制作视频课程传奇游戏代理0加盟费
  • 什么公司会招网站建设做企业网站设
  • 建设网站需要注册证书吗南宁共建站
  • 网站开发对企业有什么用成都市网站建设设计
  • 建设部网站取消园林资质上海网站建设浦东
  • 视频网站建设服务网站制作那家便宜
  • 网站备案怎么这么麻烦佛山做pc端网站
  • 28网站建设搭建平台的成语
  • 网站的pv统计功能怎样做网站备案有什么好处
  • 广西网站建设推荐wordpress 只更鸟翻页设置
  • 谷歌官方建站服务布谷海南网站建设
  • 医院网站建设存在问题网站刚做怎么做seo优化
  • 网站的空间和域名备案网址缩短链接在线工具
  • 网站建设与网页制作基础入门教程北京网站优化快速排名
  • 临沧市建设局网站毕节城乡建设厅网站
  • 网站开发的逻辑学生网页设计实训个人总结
  • 建设网站如何索要素材wordpress 电台网站
  • 网站 注册模块怎么做公司网站需要多少钱
  • 基本网站建设知识医疗机构网站
  • 福田区罗湖区最新通告宁波本地抖音seo推广
  • 微信公众号推广怎么收费全是图片的网站怎么做seo
  • 不同的网站 做301沈阳做企业网站的公司
  • 厦门市建设合同备案网站wordpress整合主题
  • 为什么大公司开发网站全国建设教育联盟统一平台网站
  • 佛山全网营销型网站建设域名查询官网
  • 网站建设新一点网络c2c模式特点