CN115809387A - 基于svg的网页元素截图实现方法 - Google Patents

基于svg的网页元素截图实现方法 Download PDF

Info

Publication number
CN115809387A
CN115809387A CN202211509107.XA CN202211509107A CN115809387A CN 115809387 A CN115809387 A CN 115809387A CN 202211509107 A CN202211509107 A CN 202211509107A CN 115809387 A CN115809387 A CN 115809387A
Authority
CN
China
Prior art keywords
elements
dom tree
screenshot
picture
canvas
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211509107.XA
Other languages
English (en)
Inventor
龙杰
邓文科
黄睿葱
彭一亮
杨胜
宋舰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Hongmagic Cube Network Technology Co ltd
Original Assignee
Sichuan Hongmagic Cube Network Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan Hongmagic Cube Network Technology Co ltd filed Critical Sichuan Hongmagic Cube Network Technology Co ltd
Priority to CN202211509107.XA priority Critical patent/CN115809387A/zh
Publication of CN115809387A publication Critical patent/CN115809387A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开了一种基于SVG的网页元素截图实现方法,包括:遍历需要截取的元素及其子元素,作为行内样式直接写入对应元素;通过SVG重写整个DOM树;添加边框,展现一屏的效果;等比例缩放DOM树;创建一个新的img元素,通过Data URL和之前重写的DOM树给其src赋值;通过canvas重绘DOM树;遍历之前记录的外部引用图片,通过canvas重绘图片,使其还原到原本的位置;等待全部元素绘制完成后通过canvas生成二进制数据;调用接口发送二进制数据,返回截图对应的url;本发明解决了运营在手动截取组件时截取风格不统一、无法截取长图、操作繁琐等问题。

Description

基于SVG的网页元素截图实现方法
技术领域
本发明涉及计算机软件技术领域,特别是一种基于SVG的网页元素截图实现方法。
背景技术
运营管理平台是运营用于管理下发给电视终端数据的平台,其中的launcher系统则管理电视终端直接展示的内容。在launcher系统中,运营会事先配置好内容,再将内容填充到组件,多个组件组成一个板块,最后审核、发布,这样电视上展示的内容就会随之更新。
在运营日常使用时,自定义组件由于其灵活性成为最常用的组件,而为了方便预览,运营每次创建自定义组件时需要手动截图并上传图片,而手动截图存在以下缺陷:
1、每个运营截图的格式有所差异,例如把展示的按钮也截了进去或者没截空白处,无法展示一屏的效果;
2、当出现滚动条时,无法截取整个长图;
3、手动截图操作繁琐。
发明内容
为解决现有技术中存在的问题,本发明的目的是提供一种基于SVG的网页元素截图实现方法,本发明解决了运营在手动截取组件时截取风格不统一、无法截取长图、操作繁琐等问题。
为实现上述目的,本发明采用的技术方案是:一种基于SVG的网页元素截图实现方法,包括以下步骤:
(1)遍历需要截取的元素及其子元素,获取其样式,并作为行内样式直接写入对应元素;
(2)对于img标签,如果图片源是外部引用,记录其尺寸、位置和路径src,并清空其src;
(3)通过SVG重写整个DOM树;
(4)添加边框,展现一屏的效果;
(5)根据用户设置的截图尺寸,等比例缩放DOM树;
(6)创建一个新的img元素,通过Data URL和之前重写的DOM树给其src赋值;
(7)通过canvas重绘DOM树;
(8)遍历之前记录的外部引用图片,依次创建新的img元素并设置其尺寸、位置和src,通过canvas重绘图片,使其还原到原本的位置;
(9)等待全部元素绘制完成后通过canvas生成二进制数据;
(10)调用接口发送二进制数据,返回截图对应的url。
本发明的有益效果是:
1、本发明统一了截图的风格,避免了预览图不规范的情况;对于超过一屏的自定义组件也能完整截取,同时增加了边框,方便运营看到一屏的边界;省去了手动截图、上传的过程,提高了运营的配属效率。
2、本发明不依赖其他库,仅基于SVG标准和HTML标准,兼容性高;对于外部引用的图片也能保存;可以手动设置截图的尺寸并等比例缩放图片。
附图说明
图1为本发明实施例的流程框图。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例
如图1所示,一种基于SVG的网页元素截图实现方法,实现步骤如下:
(1)遍历需要截取的元素及其子元素,获取其样式,并作为行内样式直接写入对应元素。
(2)对于img标签,如果图片源是外部引用,记录其尺寸、位置和src,并清空其src。
(3)通过SVG重写整个DOM树。
(4)添加边框,展现一屏的效果。
(5)根据用户设置的截图尺寸,等比例缩放DOM树。
(6)创建一个新的img元素,通过Data URL和之前重写的DOM树给其src赋值。
(7)通过canvas重绘DOM树。
(8)遍历之前记录的外部引用图片,依次创建新的img元素并设置其尺寸、位置和src,通过canvas重绘图片,使其还原到原本的位置。
(9)等待全部元素绘制完成后通过canvas生成二进制数据。
(10)调用接口发送二进制数据,返回截图对应的url。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (1)

1.一种基于SVG的网页元素截图实现方法,其特征在于,包括以下步骤:
(1)遍历需要截取的元素及其子元素,获取其样式,并作为行内样式直接写入对应元素;
(2)对于img标签,如果图片源是外部引用,记录其尺寸、位置和路径src,并清空其src;
(3)通过SVG重写整个DOM树;
(4)添加边框,展现一屏的效果;
(5)根据用户设置的截图尺寸,等比例缩放DOM树;
(6)创建一个新的img元素,通过Data URL和之前重写的DOM树给其src赋值;
(7)通过canvas重绘DOM树;
(8)遍历之前记录的外部引用图片,依次创建新的img元素并设置其尺寸、位置和src,通过canvas重绘图片,使其还原到原本的位置;
(9)等待全部元素绘制完成后通过canvas生成二进制数据;
(10)调用接口发送二进制数据,返回截图对应的url。
CN202211509107.XA 2022-11-29 2022-11-29 基于svg的网页元素截图实现方法 Pending CN115809387A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211509107.XA CN115809387A (zh) 2022-11-29 2022-11-29 基于svg的网页元素截图实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211509107.XA CN115809387A (zh) 2022-11-29 2022-11-29 基于svg的网页元素截图实现方法

Publications (1)

Publication Number Publication Date
CN115809387A true CN115809387A (zh) 2023-03-17

Family

ID=85484569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211509107.XA Pending CN115809387A (zh) 2022-11-29 2022-11-29 基于svg的网页元素截图实现方法

Country Status (1)

Country Link
CN (1) CN115809387A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8286076B1 (en) * 2011-06-22 2012-10-09 Google Inc. Rendering approximate webpage screenshot client-side
US20140047413A1 (en) * 2012-08-09 2014-02-13 Modit, Inc. Developing, Modifying, and Using Applications
US20170116162A1 (en) * 2004-06-25 2017-04-27 Apple Inc. Procedurally expressing graphic objects for web pages
CN107766359A (zh) * 2016-08-17 2018-03-06 广州市动景计算机科技有限公司 一种将页面内容转换为图片的方法、装置以及计算设备
CN107885848A (zh) * 2017-11-10 2018-04-06 杭州美创科技有限公司 基于web技术的网页截屏方法
CN111694493A (zh) * 2020-06-08 2020-09-22 杭州有赞科技有限公司 一种网页截图方法、计算机设备及可读存储介质
CN112784202A (zh) * 2021-02-03 2021-05-11 中国电子科技集团公司第二十八研究所 一种基于web技术的提高网页截图清晰度的方法
CN114692034A (zh) * 2020-12-30 2022-07-01 北京国双科技有限公司 图像显示方法、装置、电子设备及计算机存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170116162A1 (en) * 2004-06-25 2017-04-27 Apple Inc. Procedurally expressing graphic objects for web pages
US8286076B1 (en) * 2011-06-22 2012-10-09 Google Inc. Rendering approximate webpage screenshot client-side
US20140047413A1 (en) * 2012-08-09 2014-02-13 Modit, Inc. Developing, Modifying, and Using Applications
CN107766359A (zh) * 2016-08-17 2018-03-06 广州市动景计算机科技有限公司 一种将页面内容转换为图片的方法、装置以及计算设备
CN107885848A (zh) * 2017-11-10 2018-04-06 杭州美创科技有限公司 基于web技术的网页截屏方法
CN111694493A (zh) * 2020-06-08 2020-09-22 杭州有赞科技有限公司 一种网页截图方法、计算机设备及可读存储介质
CN114692034A (zh) * 2020-12-30 2022-07-01 北京国双科技有限公司 图像显示方法、装置、电子设备及计算机存储介质
CN112784202A (zh) * 2021-02-03 2021-05-11 中国电子科技集团公司第二十八研究所 一种基于web技术的提高网页截图清晰度的方法

Similar Documents

Publication Publication Date Title
CN107832108B (zh) 3D canvas网页元素的渲染方法、装置及电子设备
CN107885848B (zh) 基于web技术的网页截屏方法
US10210144B2 (en) Creation and display of a webpage with alternative layouts for different webpage widths
KR101130484B1 (ko) 형상들을 사용하는 공통 차팅
CN111651966A (zh) 数据报告文件生成方法、装置与电子设备
CN111951356B (zh) 基于json数据格式的动画渲染方法
CN110633436A (zh) 可视化、自定义全景编辑方法、系统、存储介质及设备
CN111399831A (zh) 页面的展示方法和装置、存储介质、电子装置
CN111176643A (zh) 子系统首页的生成方法及计算机可读存储介质
US9501812B2 (en) Map performance by dynamically reducing map detail
CN108875085B (zh) 混合应用的图片处理方法、装置、计算机设备及存储介质
JP5303534B2 (ja) 体裁情報処理装置及び方法
CN115809387A (zh) 基于svg的网页元素截图实现方法
CN112954030A (zh) 一种Web端图片压缩方法、装置及电子设备
CN111915705B (zh) 图片可视化编辑方法、装置、设备和介质
CN112307385A (zh) 网页数据加载和处理方法、装置、电子设备及存储介质
CN108153845B (zh) 一种实现后台图像数据导出的方法及装置
CN116578795A (zh) 网页页面的生成方法及装置、存储介质、电子设备
CN115586941A (zh) 一种移动端rn页面录屏回放的方法及装置
CN114866801B (zh) 视频数据的处理方法、装置、设备及计算机可读存储介质
CN113691835B (zh) 视频植入方法、装置、设备及计算机可读存储介质
CN109714624B (zh) 一种基于QTextEdit的直播弹幕的显示方法及系统
CN111881648A (zh) 一种生成电子书字体文件的方法
CN110825390A (zh) 可视化大屏项目快速部署
CN112995711B (zh) 一种web前端视频的分帧与图片处理合成方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination