CN110347319A - 一种应用内屏幕截图方法及装置 - Google Patents
一种应用内屏幕截图方法及装置 Download PDFInfo
- Publication number
- CN110347319A CN110347319A CN201910577011.9A CN201910577011A CN110347319A CN 110347319 A CN110347319 A CN 110347319A CN 201910577011 A CN201910577011 A CN 201910577011A CN 110347319 A CN110347319 A CN 110347319A
- Authority
- CN
- China
- Prior art keywords
- layer
- content
- screenshot
- processing module
- browser
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
公开了一种应用内屏幕截图方法及装置。一种应用内屏幕截图方法,所述应用包括截图处理模块与浏览器模块,该方法包括:所述截图处理模块在接收到截图操作触发的情况下,向所述浏览器模块发送图层获取请求;所述浏览器模块根据所述图层获取请求,确定当前页面所包含的载体层与内容层;所述浏览器模块将所述内容层转换为图像格式,并将得到的内容层图像添加到所述载体层中,将携带内容层图像的新载体层发送至所述截图处理模块;所述截图处理模块在接收到新载体层后,对所述新载体层进行绘制,并根据绘制结果进行屏幕截图操作。
Description
技术领域
本说明书实施例涉及互联网应用技术领域,尤其涉及一种应用内屏幕截图方法及装置。
背景技术
用户在使用智能终端设备时,可能存在屏幕截图的需求。截图这一操作,不仅可以由操作系统(OS)执行,还可以由某个应用(APP)来执行。例如,用户在使用某应用时,通过屏幕截图,并进一步上传图片以进行问题反馈。对应地,应用可以在用户对本应用所显示内容进行截图操作时,截取当前屏幕所显示的图像并直接呈现预览图,从而为用户提供更便捷的问题反馈操作途经。
由于应用的权限一般低于操作系统,因此与操作系统截图相比,在应用内进行截图时,往往会受到一些限制。例如某些应用可以通过调用浏览器加载显示页面,应用在进行屏幕截图时,如果当前显示为浏览器页面,则可能存在应用无法绘制的图层,如WebGL层,使得应用对当前浏览器页面绘制得到的屏幕截图中内容不完整。
发明内容
针对上述技术问题,本说明书实施例提供一种应用内屏幕截图方法及装置,技术方案如下:
根据本说明书实施例的第一方面,提供一种应用内屏幕截图方法,所述应用包括截图处理模块与浏览器模块,该方法包括:
所述截图处理模块在接收到截图操作触发的情况下,向所述浏览器模块发送图层获取请求;
所述浏览器模块根据所述图层获取请求,确定当前页面所包含的载体层与内容层;其中,所述载体层为:能够被所述截图处理模块绘制、且能够被添加内容的图层;所述内容层为:不能被所述截图处理模块绘制的图层;
所述浏览器模块将所述内容层转换为图像格式,并将得到的内容层图像添加到所述载体层中,将携带内容层图像的新载体层发送至所述截图处理模块;
所述截图处理模块在接收到新载体层后,对所述新载体层进行绘制,并根据绘制结果进行屏幕截图操作。
可选的,所述在接收到截图操作触发的情况下,向所述浏览器模块发送图层获取请求,包括:
在接收到截图操作触发的情况下,判断当前屏幕所显示画面是否包含浏览器页面;
在包含浏览器页面的情况下,判断所述浏览器页面是否包含内容层;
在包含内容层的情况下,向所述浏览器模块发送图层获取请求。
可选的,所述载体层为文档对象模型DOM层;
所述确定当前页面所包含的载体层,包括:
解析当前页面的超文本标记语言,构建DOM Tree,并将所构建的DOM Tree作为当前页面包含的载体层。
可选的,所述将得到的内容层图像添加到所述载体层中,包括:
将得到的内容层图像作为DOM元素,添加到所构建的DOM Tree中。
可选的,所述将所述内容层转换为图像格式,包括:
使用画布对所述内容层进行绘制;
将画布的绘制结果提取为图片格式,得到内容层图像。
可选的,所述浏览器模块在将所述内容层转换为图像格式之后,将得到的内容层图像添加到所述载体层中之前,还包括:
对得到的初始内容层图像进行图像质量压缩,得到压缩后的内容层图像;所述初始内容层图像为将所述内容层转换为图像格式后得到的图像。
可选的,所述根据绘制结果进行屏幕截图操作,包括:
确定当前屏幕所显示的各图层;
获得载体层之外其他图层的内容,并对所获得的各图层进行绘制,得到其他各图层的绘制结果;
对当前屏幕所显示各图层的绘制结果进行叠加,得到屏幕截图结果。
可选的,所述的方法,还包括:
所述截图处理模块在完成屏幕截图操作后,向所述浏览器模块发送图像删除请求;
所述浏览器模块根据所述图像删除请求,将载体层中的内容层图像删除。
根据本说明书实施例的第二方面,提供一种应用内屏幕截图装置,该装置包括:截图处理模块与浏览器模块;
所述截图处理模块包括请求发送单元,用于在接收到截图操作触发的情况下,向所述浏览器模块发送图层获取请求;
所述浏览器模块包括内容确定单元,用于根据所述图层获取请求,确定当前页面所包含的载体层与内容层;其中,所述载体层为:能够被所述截图处理模块绘制、且能够被添加内容的图层;所述内容层为:不能被所述截图处理模块绘制的图层;
所述浏览器模块还包括图层处理单元,用于将所述内容层转换为图像格式,并将得到的内容层图像添加到所述载体层中,将携带内容层图像的新载体层发送至所述截图处理模块;
所述截图处理模块还包括截图处理单元,用于在接收到新载体层后,对所述新载体层进行绘制,并根据绘制结果进行屏幕截图操作。
可选的,所述请求发送单元,包括:
判断子单元,用于在接收到截图操作触发的情况下,判断当前屏幕所显示画面是否包含浏览器页面;以及,在包含浏览器页面的情况下,判断所述浏览器页面是否包含内容层;
发送子单元,用于在包含内容层的情况下,向所述浏览器模块发送图层获取请求。
可选的,所述载体层为文档对象模型DOM层;
所述内容确定单元,具体用于:
解析当前页面的超文本标记语言,构建DOM Tree,并将所构建的DOM Tree作为当前页面包含的载体层。
可选的,所述图层处理单元,具体用于:
将得到的内容层图像作为DOM元素,添加到所构建的DOM Tree中。
可选的,所述图层处理单元,包括:
绘制子单元,用于使用画布对所述内容层进行绘制;
提取子单元,用于将画布的绘制结果提取为图片格式,得到内容层图像。
可选的,所述图层处理单元还包括:
压缩子单元,用于在将所述内容层转换为图像格式之后,将得到的内容层图像添加到所述载体层中之前,对得到的初始内容层图像进行图像质量压缩,得到压缩后的内容层图像;所述初始内容层图像为将所述内容层转换为图像格式后得到的图像。
可选的,所述截图处理单元,包括:
图层确定子单元,用于确定当前屏幕所显示的各图层;
图层绘制子单元,用于获得载体层之外其他图层的内容,并对所获得的各图层进行绘制,得到其他各图层的绘制结果;
图层叠加子单元,用于对当前屏幕所显示各图层的绘制结果进行叠加,得到屏幕截图结果。
可选的,所述截图处理模块的请求发送单元,还用于在完成屏幕截图操作后,向所述浏览器模块发送图像删除请求;
所述浏览器模块的图层处理单元,还用于根据所述图像删除请求,将载体层中的内容层图像删除。
根据本说明书实施例的第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现所述应用内屏幕截图的方法。
本说明书实施例所提供的技术方案,在应用中的截图处理模块需对屏幕所显示的画面进行屏幕截图时,如果画面中包括浏览器页面,则首先由浏览器模块将截图处理模块无法直接绘制的图层转换为图像,添加到截图处理模块能够绘制的其他层中发送至应用,从而使截图处理模块通过对其他层的绘制,获得浏览器页面中各图层的信息,从而得到信息完整的屏幕截图结果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例的应用内屏幕截图方法的场景示意图;
图2是本说明书实施例的应用内屏幕截图装置的一种结构示意图;
图3是本说明书实施例的应用内屏幕截图方法的流程示意图;
图4是本说明书实施例的应用内屏幕截图的图层结构示意图;
图5是本说明书实施例的应用内屏幕截图装置的另一种结构示意图;
图6是本说明书实施例的请求发送单元的结构示意图;
图7是本说明书实施例的图层处理单元的结构示意图;
图8是本说明书实施例的截图处理单元的结构示意图;
图9用于配置本说明书实施例装置的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
用户在使用智能终端设备时,可能存在屏幕截图的需求,用户可以通过操作智能终端设备中提供的截图快捷键或组合键,进行屏幕截图操作触发。
例如,Android系统的手机通常在顶部下拉菜单中提供截图按键,用户下拉顶部菜单并点击按键便可以进行屏幕截图操作触发;又如,iOS系统的平板电脑提供屏幕截图操作的组合键,用户可以通过同时按下电源键与Home键进行屏幕截图操作触发;等等。
在用户进行屏幕截图操作触发后,截图这一操作,不仅可以由操作系统(OS)执行,还可以由某个应用(APP)来执行。
例如,用户在使用某应用时,可以进行屏幕截图,并进一步上传图片以进行问题反馈。对应地,当用户对本应用所显示内容进行截图操作时,应用中的截图处理模块可以截取当前屏幕所显示的图像,并且如图1所示为例,在屏幕的某一位置直接呈现预览图,从而为用户提供更便捷的问题反馈操作途经。
但是,应用的权限一般低于操作系统,因此与操作系统截图相比,在应用内进行截图时,往往会受到一些限制。
例如,某应用可以通过浏览器模块,调用浏览器加载显示页面,因此该应用在进行屏幕截图时,如果当前显示为浏览器页面,可能存在该应用无法绘制的图层,如WebGL层,使得该应用对当前浏览器页面绘制得到的屏幕截图内容不完整,即由该应用来执行屏幕截图这一操作时,得到的截图结果中内容不完整。
针对上述问题,本说明书实施例提供一种应用内屏幕截图方法,解决应用无法绘制浏览器页面中图层的问题,使应用内屏幕截图可以获得完整的图像。
参见图2所示,本说明书实施例的应用中,包括截图处理模块210与浏览器模块220。图3为本说明书实施例的应用内屏幕截图方法中,截图处理模块与浏览器模块的一种交互流程示意图。
本说明书实施例的应用内屏幕截图方法,可以应用于智能终端设备所安装的应用中。本说明书实施例中所称的应用,只要其中包括能够进行截图处理的模块及显示浏览器页面的模块,理论上并不需要限定应用的具体形式。并且,本说明书实施例中的智能终端设备,可以是智能手机、平板电脑等设备,只要可以实现应用内屏幕截图的功能,并且能够安装包括截图处理模块与浏览器模块的应用,本说明书实施例并不限定智能终端设备的具体形式。
参见图3所示,本说明书实施例的应用内屏幕截图方法可以包括以下步骤:
S301,所述截图处理模块在接收到截图操作触发的情况下,向所述浏览器模块发送图层获取请求;
截图处理模块可以对设备中的截图事件进行监听,如果监听到开始截屏动作,即接收到截图操作触发。
在一种具体实施方式中,截图处理模块可以在接收到截图操作触发的情况下,进一步判断当前屏幕所显示画面是否包含浏览器页面。
如果当前屏幕所显示画面不包含浏览器页面,则可以直接或通过本方法外的其他方式,获取各图层的内容进行绘制,进行屏幕截图操作;
而如果确定当前屏幕所显示画面包含浏览器页面,在一个例子中,可以向浏览器模块发送图层获取请求,以获取浏览器页面中各图层的内容;在另一个例子中,也可以进一步地判断该浏览器页面是否包含内容层,即是否包含不能被本模块绘制的图层。
如果该浏览器页面不包含内容层,则可以直接或通过本方法外的其他方式,获取各图层的内容进行绘制,进行屏幕截图操作;
而如果该浏览器页面包含内容层,则可以向浏览器模块发送图层获取请求,以通过本方法进行应用内屏幕截图操作。
S302,所述浏览器模块根据所述图层获取请求,确定当前页面所包含的载体层与内容层;
浏览器当前所显示的页面中,可能包括载体层与内容层。其中,如上所述,内容层即不能被截图处理模块绘制的图层;而载体层为能够被截图处理模块绘制、且能够被添加内容的图层。
本说明书实施例中并不限定载体层及内容层对应的实际图层,因而也不限定确定当前页面所包含的载体层与内容层的具体实现方式,本领域技术人员可以根据实际情况灵活地选择。
在一种具体实施方式中,载体层可以为文档对象模型DOM层,对应地在确定当前页面所包含的载体层时,具体地,可以解析当前页面的HTML(Hyper Text Markup Language,超文本标记语言),构建DOM Tree,并将所构建的DOM Tree作为当前页面包含的载体层。
在另一种具体实施方式中,内容层可以为WebGL层。WebGL(Web GraphicsLibrary,网络图形库)是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGLES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5画布提供硬件3D加速渲染。WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面。
但是,应用中的截图处理模块通常无法对WebGL层进行绘制,因此在应用内对包含WebGL层的浏览器页面进行屏幕截图时,将无法得到包括WebGL层内容的完整屏幕截图。
S303,所述浏览器模块将所述内容层转换为图像格式,并将得到的内容层图像添加到所述载体层中,将携带内容层图像的新载体层发送至所述截图处理模块;
本说明书实施例中,为了解决应用中的截图处理模块无法绘制内容层的问题,由浏览器模块将内容层转换为图像格式,并添加到载体层,使内容层图像成为载体层的内容之一,从而使截图处理模块在绘制载体层使时,可以得到包括了内容层的绘制结果。
在一种具体实施方式中,浏览器模块将所述内容层转换为图像格式,具体实现方式可以为:首先使用画布对所述内容层进行绘制,然后将画布的绘制结果提取为图片格式,例如,提取为base64编码格式的图片,从而得到内容层图像。
这里所称的画布,可以为HTML5中的画布(canvas)元素,canvas元素可用于通过使用JavaScript中的脚本来绘制图形。
仍以前述的WebGL层为例,浏览器模块可以首先使用canvas对WebGL层进行绘制,然后将绘制结果提取为图片格式,得到WebGL层图像。
当然,本说明书实施例理论上并不需要对浏览器模块将所述内容层转换为图像格式的具体实现方式进行限定。
在另一种具体实施方式中,浏览器模块在将所述内容层转换为图像格式之后,将得到初始内容层图像,而在将得到的内容层图像添加到所述载体层中之前,可以对得到的初始内容层图像进行图像质量压缩,得到压缩后的内容层图像,再将压缩后的内容层图像添加到所述载体层中。
此外,如S302中所述,载体层可以为文档对象模型DOM层,并且可以将所构建的DOMTree作为当前页面包含的载体层。因此对应地,浏览器模块将得到的内容层图像添加到所述载体层中时,具体地,可以是将得到的内容层图像作为DOM元素,添加到所构建的DOMTree中。
例如,可以将内容层图像添加到DOM Tree的最底层节点中,从而使截图处理模块在对添加了内容层图像的新载体层进行绘制时,得到以内容层为背景的绘制结果。
S304,所述截图处理模块在接收到新载体层后,对所述新载体层进行绘制,并根据绘制结果进行屏幕截图操作。
本说明书实施例中,截图处理模块接收到截图操作触发后,由浏览器页面显示的图层,是由截图处理模块通过图层获取请求向浏览器模块获取,而当前屏幕中可能还包括其他图层,如包含系统信息的窗口层等。
在一种具体实施方式中,截图处理模块在根据绘制结果进行屏幕截图操作时,具体地,可以首先确定当前屏幕所显示的各图层,然后获得前述载体层之外其他图层的内容,并对所获得的各图层进行绘制,得到其他各图层的绘制结果,从而对当前屏幕所显示各图层的绘制结果进行叠加,得到屏幕截图结果。
例如,截图处理模块确定当前屏幕所显示的图层为:窗口层、DOM层以及WebGL层,则可以通过图层获取请求,使浏览器模块返回添加了WebGL层图像的新DOM层,并且获得窗口层,然后分别对新DOM层和窗口层进行绘制,得到2个图层绘制结果,然后对2个图层绘制结果进行叠加,得到屏幕截图结果。
其中,浏览器模块也可以将WebGL层直接发送至截图处理模块,但由于截图处理模块无法绘制WebGL层,因此并不会影响最终得到的屏幕截图结果,而由于新DOM层中包括了WebGL层图像,因此最终得到的屏幕截图结果中信息完整。
此外,添加到载体层的内容层图像可能会对后续浏览器所显示画面的影响,如后续浏览器所显示的画面中,内容层对应的图像将发生变化,而如果载体层中添加了内容层图像,则可能会遮挡实际的内容层对应的图像的显示,从而使得浏览器页面所显示画面中,内容层对应的图像始终为前述的内容层图像。
因此,为了避免前述内容层图像对后续浏览器所显示画面的影响,在截图处理模块完成屏幕截图操作后,可以进一步地向浏览器模块发送图像删除请求,而浏览器模块接收到该请求后,可以根据该图像删除请求,将载体层中的内容层图像删除。
下面结合一个更为具体的实例,对本说明书提供的应用内屏幕截图方法进行说明。
以iOS系统为例,在iOS的WKWebView内核中,可以通过WebGL为HTML5画布提供硬件3D加速渲染,但应用中的截图处理模块通常无法对WebGL层进行绘制。
假设用户通过同时按下电源键与Home键进行屏幕截图,应用中的截图处理模块接收到截屏操作触发后,确定当前屏幕所显示的画面,为应用调用浏览器加载显示的页面,且当前屏幕所显示的画面中各图层的结构可以如图4所示,即页面中包括WebGL层。
因此,截图处理模块向浏览器模块发送图层获取请求。
浏览器模块接收到该请求后,确定当前页面包括的DOM层与WebGL层。
解析当前页面的HTML,构建DOM Tree,并将所构建的DOM Tree作为当前页面包含的载体层;使用canvas对WebGL层进行绘制,然后将绘制结果提取为base64编码格式的图片,并对该图片进行图像质量压缩,得到压缩后的WebGL层图像;将WebGL层图像添加到DOMTree的最底层节点中。
浏览器模块将添加WebGL层图像后的新DOM层以及WebGL层,发送至截图处理模块,通知截图处理模块继续进行绘制。
截图处理模块对新DOM层及窗口层进行绘制与叠加,得到屏幕截图结果。其中,由于截图处理模块无法绘制WebGL层,因此不会对屏幕截图结果造成影响;而由于新DOM层中包括了WebGL层图像,因此屏幕截图结果中包括浏览器模块所绘制的WebGL层图像,即屏幕截图结果中的画面信息完整。
截图处理模块完成屏幕截图操作后,向浏览器模块发送图像删除请求。
浏览器模块接收到该请求后,将DOM层中的WebGL层图像(即最底层节点)删除。
可见,应用上述方案,针对应用中的截图处理模块无法绘制的内容层,由浏览器模块进行绘制后将图像添加到载体层,并将添加图像的新载体层发送至截图处理模块,截图处理模块对新载体层绘制得到的结果中,同时包括了载体层与内容层的信息,从而保证了应用内屏幕截图结果中信息的完整性。
相应于上述方法实施例,本说明书实施例还提供一种应用内屏幕截图装置,参见图2所示,该装置可以包括:截图处理模块210与浏览器模块220;参见图5所示,
所述截图处理模块210包括请求发送单元211,用于在接收到截图操作触发的情况下,向所述浏览器模块220发送图层获取请求;
所述浏览器模块220包括内容确定单元221,用于根据所述图层获取请求,确定当前页面所包含的载体层与内容层;其中,所述载体层为:能够被所述截图处理模块210绘制、且能够被添加内容的图层;所述内容层为:不能被所述截图处理模块210绘制的图层;
所述浏览器模块220还包括图层处理单元222,用于将所述内容层转换为图像格式,并将得到的内容层图像添加到所述载体层中,将携带内容层图像的新载体层发送至所述截图处理模块210;
所述截图处理模块210还包括截图处理单元212,用于在接收到新载体层后,对所述新载体层进行绘制,并根据绘制结果进行屏幕截图操作。
在本说明书提供的一种具体实施方式中,参见图6所示,所述请求发送单元211,包括:
判断子单元211a,用于在接收到截图操作触发的情况下,判断当前屏幕所显示画面是否包含浏览器页面;以及,在包含浏览器页面的情况下,判断所述浏览器页面是否包含内容层;
发送子单元211b,用于在包含内容层的情况下,向所述浏览器模块发送图层获取请求。
在本说明书提供的一种具体实施方式中,所述载体层为文档对象模型DOM层;
所述内容确定单元221,具体用于:
解析当前页面的超文本标记语言,构建DOM Tree,并将所构建的DOM Tree作为当前页面包含的载体层。
在本说明书提供的一种具体实施方式中,所述图层处理单元222,具体用于:
将得到的内容层图像作为DOM元素,添加到所构建的DOM Tree中。
在本说明书提供的一种具体实施方式中,参见图7所示,所述图层处理单元222,包括:
绘制子单元222a,用于使用画布对所述内容层进行绘制;
提取子单元222b,用于将画布的绘制结果提取为图片格式,得到内容层图像。
在本说明书提供的一种具体实施方式中,参见图7所示,所述图层处理单元222还包括:
压缩子单元222c,用于在将所述内容层转换为图像格式之后,将得到的内容层图像添加到所述载体层中之前,对得到的初始内容层图像进行图像质量压缩,得到压缩后的内容层图像;所述初始内容层图像为将所述内容层转换为图像格式后得到的图像。
在本说明书提供的一种具体实施方式中,参见图8所示,所述截图处理单元212,包括:
图层确定子单元212a,用于确定当前屏幕所显示的各图层;
图层绘制子单元212b,用于获得载体层之外其他图层的内容,并对所获得的各图层进行绘制,得到其他各图层的绘制结果;
图层叠加子单元212c,用于对当前屏幕所显示各图层的绘制结果进行叠加,得到屏幕截图结果。
在本说明书提供的一种具体实施方式中,所述截图处理模块210的请求发送单元211,还用于在完成屏幕截图操作后,向所述浏览器模块发送图像删除请求;
所述浏览器模块220的图层处理单元222,还用于根据所述图像删除请求,将载体层中的内容层图像删除。
可以理解的是,绘制子单元222a、提取子单元222b与压缩子单元222c作为两种功能独立的模块,既可以如图7所示同时配置在装置中,也可以分别单独配置在装置中,因此图7所示的结构不应理解为对本说明书实施例方案的限定。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的应用内屏幕截图方法,所述应用包括截图处理模块与浏览器模块,。该方法至少包括:
所述截图处理模块在接收到截图操作触发的情况下,向所述浏览器模块发送图层获取请求;
所述浏览器模块根据所述图层获取请求,确定当前页面所包含的载体层与内容层;其中,所述载体层为:能够被所述截图处理模块绘制、且能够被添加内容的图层;所述内容层为:不能被所述截图处理模块绘制的图层;
所述浏览器模块将所述内容层转换为图像格式,并将得到的内容层图像添加到所述载体层中,将携带内容层图像的新载体层发送至所述截图处理模块;
所述截图处理模块在接收到新载体层后,对所述新载体层进行绘制,并根据绘制结果进行屏幕截图操作。
图9示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的应用内屏幕截图方法,所述应用包括截图处理模块与浏览器模块,。该方法至少包括:
所述截图处理模块在接收到截图操作触发的情况下,向所述浏览器模块发送图层获取请求;
所述浏览器模块根据所述图层获取请求,确定当前页面所包含的载体层与内容层;其中,所述载体层为:能够被所述截图处理模块绘制、且能够被添加内容的图层;所述内容层为:不能被所述截图处理模块绘制的图层;
所述浏览器模块将所述内容层转换为图像格式,并将得到的内容层图像添加到所述载体层中,将携带内容层图像的新载体层发送至所述截图处理模块;
所述截图处理模块在接收到新载体层后,对所述新载体层进行绘制,并根据绘制结果进行屏幕截图操作。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (10)
1.一种应用内屏幕截图方法,所述应用包括截图处理模块与浏览器模块,该方法包括:
所述截图处理模块在接收到截图操作触发的情况下,向所述浏览器模块发送图层获取请求;
所述浏览器模块根据所述图层获取请求,确定当前页面所包含的载体层与内容层;其中,所述载体层为:能够被所述截图处理模块绘制、且能够被添加内容的图层;所述内容层为:不能被所述截图处理模块绘制的图层;
所述浏览器模块将所述内容层转换为图像格式,并将得到的内容层图像添加到所述载体层中,将携带内容层图像的新载体层发送至所述截图处理模块;
所述截图处理模块在接收到新载体层后,对所述新载体层进行绘制,并根据绘制结果进行屏幕截图操作。
2.根据权利要求1所述的方法,所述在接收到截图操作触发的情况下,向所述浏览器模块发送图层获取请求,包括:
在接收到截图操作触发的情况下,判断当前屏幕所显示画面是否包含浏览器页面;
在包含浏览器页面的情况下,判断所述浏览器页面是否包含内容层;
在包含内容层的情况下,向所述浏览器模块发送图层获取请求。
3.根据权利要求1所述的方法,所述载体层为文档对象模型DOM层;
所述确定当前页面所包含的载体层,包括:
解析当前页面的超文本标记语言,构建DOM Tree,并将所构建的DOM Tree作为当前页面包含的载体层。
4.根据权利要求3所述的方法,所述将得到的内容层图像添加到所述载体层中,包括:
将得到的内容层图像作为DOM元素,添加到所构建的DOM Tree中。
5.根据权利要求1所述的方法,所述将所述内容层转换为图像格式,包括:
使用画布对所述内容层进行绘制;
将画布的绘制结果提取为图片格式,得到内容层图像。
6.根据权利要求1所述的方法,所述浏览器模块在将所述内容层转换为图像格式之后,将得到的内容层图像添加到所述载体层中之前,还包括:
对得到的初始内容层图像进行图像质量压缩,得到压缩后的内容层图像;所述初始内容层图像为将所述内容层转换为图像格式后得到的图像。
7.根据权利要求1所述的方法,所述根据绘制结果进行屏幕截图操作,包括:
确定当前屏幕所显示的各图层;
获得载体层之外其他图层的内容,并对所获得的各图层进行绘制,得到其他各图层的绘制结果;
对当前屏幕所显示各图层的绘制结果进行叠加,得到屏幕截图结果。
8.根据权利要求1所述的方法,还包括:
所述截图处理模块在完成屏幕截图操作后,向所述浏览器模块发送图像删除请求;
所述浏览器模块根据所述图像删除请求,将载体层中的内容层图像删除。
9.一种应用内屏幕截图装置,该装置包括:截图处理模块与浏览器模块;
所述截图处理模块包括请求发送单元,用于在接收到截图操作触发的情况下,向所述浏览器模块发送图层获取请求;
所述浏览器模块包括内容确定单元,用于根据所述图层获取请求,确定当前页面所包含的载体层与内容层;其中,所述载体层为:能够被所述截图处理模块绘制、且能够被添加内容的图层;所述内容层为:不能被所述截图处理模块绘制的图层;
所述浏览器模块还包括图层处理单元,用于将所述内容层转换为图像格式,并将得到的内容层图像添加到所述载体层中,将携带内容层图像的新载体层发送至所述截图处理模块;
所述截图处理模块还包括截图处理单元,用于在接收到新载体层后,对所述新载体层进行绘制,并根据绘制结果进行屏幕截图操作。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910577011.9A CN110347319B (zh) | 2019-06-28 | 2019-06-28 | 一种应用内屏幕截图方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910577011.9A CN110347319B (zh) | 2019-06-28 | 2019-06-28 | 一种应用内屏幕截图方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347319A true CN110347319A (zh) | 2019-10-18 |
CN110347319B CN110347319B (zh) | 2021-04-27 |
Family
ID=68177111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910577011.9A Active CN110347319B (zh) | 2019-06-28 | 2019-06-28 | 一种应用内屏幕截图方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347319B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110838152A (zh) * | 2019-10-21 | 2020-02-25 | 稿定(厦门)科技有限公司 | 多图层混合后的快速截图方法和装置 |
CN112037332A (zh) * | 2020-09-28 | 2020-12-04 | 北京百度网讯科技有限公司 | 浏览器的显示校验方法、装置、计算机设备和存储介质 |
CN112306619A (zh) * | 2020-12-02 | 2021-02-02 | 广州橙行智动汽车科技有限公司 | 一种截图方法和装置 |
CN114119375A (zh) * | 2022-01-25 | 2022-03-01 | 广州市玄武无线科技股份有限公司 | 一种实现iOS端自动生成长截图的方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140181629A1 (en) * | 2012-12-21 | 2014-06-26 | International Business Machines Corporation | Automated screen captures |
CN104834855A (zh) * | 2015-04-20 | 2015-08-12 | 北京奇虎科技有限公司 | 一种系统数据的获取方法、装置和移动终端 |
CN104834753A (zh) * | 2015-05-28 | 2015-08-12 | 百度在线网络技术(北京)有限公司 | 生成网页截图的方法及其装置 |
CN104965881A (zh) * | 2015-06-12 | 2015-10-07 | 北京奇虎科技有限公司 | 在页面中提取选区的方法及装置 |
CN105573694A (zh) * | 2014-10-30 | 2016-05-11 | 奥多比公司 | 数字内容的多个显示渲染 |
US20160132989A1 (en) * | 2011-11-04 | 2016-05-12 | Microsoft Technology Licensing, Llc | Real Time Visual Feedback During Move, Resize and/or Rotate Actions in an Electronic Document |
CN107615266A (zh) * | 2015-03-31 | 2018-01-19 | 卡尔加里科学股份有限公司 | 用于捕获分层屏幕内容的方法 |
CN108563382A (zh) * | 2018-02-26 | 2018-09-21 | 挖财网络技术有限公司 | 基于安卓系统的截屏方法及装置 |
CN109117228A (zh) * | 2018-08-01 | 2019-01-01 | 浙江口碑网络技术有限公司 | 图形界面的生成方法及装置 |
-
2019
- 2019-06-28 CN CN201910577011.9A patent/CN110347319B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160132989A1 (en) * | 2011-11-04 | 2016-05-12 | Microsoft Technology Licensing, Llc | Real Time Visual Feedback During Move, Resize and/or Rotate Actions in an Electronic Document |
US20140181629A1 (en) * | 2012-12-21 | 2014-06-26 | International Business Machines Corporation | Automated screen captures |
CN105573694A (zh) * | 2014-10-30 | 2016-05-11 | 奥多比公司 | 数字内容的多个显示渲染 |
CN107615266A (zh) * | 2015-03-31 | 2018-01-19 | 卡尔加里科学股份有限公司 | 用于捕获分层屏幕内容的方法 |
CN104834855A (zh) * | 2015-04-20 | 2015-08-12 | 北京奇虎科技有限公司 | 一种系统数据的获取方法、装置和移动终端 |
CN104834753A (zh) * | 2015-05-28 | 2015-08-12 | 百度在线网络技术(北京)有限公司 | 生成网页截图的方法及其装置 |
CN104965881A (zh) * | 2015-06-12 | 2015-10-07 | 北京奇虎科技有限公司 | 在页面中提取选区的方法及装置 |
CN108563382A (zh) * | 2018-02-26 | 2018-09-21 | 挖财网络技术有限公司 | 基于安卓系统的截屏方法及装置 |
CN109117228A (zh) * | 2018-08-01 | 2019-01-01 | 浙江口碑网络技术有限公司 | 图形界面的生成方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110838152A (zh) * | 2019-10-21 | 2020-02-25 | 稿定(厦门)科技有限公司 | 多图层混合后的快速截图方法和装置 |
CN110838152B (zh) * | 2019-10-21 | 2023-04-25 | 稿定(厦门)科技有限公司 | 多图层混合后的快速截图方法和装置 |
CN112037332A (zh) * | 2020-09-28 | 2020-12-04 | 北京百度网讯科技有限公司 | 浏览器的显示校验方法、装置、计算机设备和存储介质 |
CN112037332B (zh) * | 2020-09-28 | 2023-09-05 | 北京百度网讯科技有限公司 | 浏览器的显示校验方法、装置、计算机设备和存储介质 |
CN112306619A (zh) * | 2020-12-02 | 2021-02-02 | 广州橙行智动汽车科技有限公司 | 一种截图方法和装置 |
CN114119375A (zh) * | 2022-01-25 | 2022-03-01 | 广州市玄武无线科技股份有限公司 | 一种实现iOS端自动生成长截图的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110347319B (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347319A (zh) | 一种应用内屏幕截图方法及装置 | |
CN110795195A (zh) | 一种网页渲染方法、装置、电子设备及存储介质 | |
CN111580879A (zh) | 小程序的运行方法、装置、电子设备及计算机存储介质 | |
EP3416054B1 (en) | Method and device for page display, and storage medium | |
CN104978358B (zh) | 桌面展示网页片段的方法及截取网页片段至桌面展示系统 | |
CN109145238B (zh) | 一种卡片显示方法、装置及移动设备 | |
CN106780684B (zh) | 一种动画效果实现方法及装置 | |
CN104199728B (zh) | 图片传送信息展示方法和装置 | |
CN105786455B (zh) | 一种数据处理方法、装置及终端 | |
CN105975393B (zh) | 一种页面显示的检测方法及系统 | |
CN113313804B (zh) | 一种图像渲染方法、装置、电子设备和存储介质 | |
EP4343706A1 (en) | Data processing method and apparatus, and electronic device and storage medium | |
JP7261732B2 (ja) | 文字の色を決定する方法および装置 | |
CN113835571A (zh) | 一种终端设备、信息展示方法和存储介质 | |
CN110134477B (zh) | 一种动态布局用户页面的方法、装置、介质和电子设备 | |
US11758016B2 (en) | Hosted application as web widget toolkit | |
CN110688282B (zh) | 网页性能数据的监测、监测任务分发方法及装置 | |
CN110309454B (zh) | 一种界面显示方法、装置、设备及存储介质 | |
CN109992698B (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN114510417A (zh) | 一种图像渲染效果测试方法、装置、电子设备和存储介质 | |
CN104978181B (zh) | 一种页面显示方法、终端和装置 | |
CN113542335A (zh) | 一种信息共享方法、装置、电子设备及存储介质 | |
CN110465093A (zh) | 一种基于Unity的包体冗余资源分析方法及其装置 | |
CN112765526B (zh) | 一种页面截图方法、装置、终端设备及介质 | |
CN114827113B (zh) | 一种网页访问方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |