一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种终端设备、长截屏方法和存储介质与流程

2022-05-18 02:17:30 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别涉及一种终端设备、长截屏方法和存储介质。


背景技术:

2.随着智能终端设备的普及与发展,终端设备具备越来越多的功能,例如,截屏功能,终端设备可以将显示屏幕中所显示的全部内容进行截屏。
3.目前,终端设备只能针对当前显示界面的全部内容进行截屏,而无法对当前显示界面中包含的部分内容进行截屏,尤其是对当前显示界面中包含的可滚动的悬浮窗口,如何将悬浮窗口中显示在显示屏幕中的内容和未显示在显示屏幕中的内容均通过截屏进行保存,是尚未得到解决的问题。


技术实现要素:

4.为了解决上述现有技术中的问题,本技术实施例提供了一种终端设备、长截屏方法和存储介质,可以对终端设备的当前显示界面中包含的悬浮窗口中的内容进行截屏。
5.第一方面,本技术实施例提供了一种终端设备,包括:显示器、存储器和处理器;
6.所述显示器被配置为,显示所述终端设备运行时的界面;
7.所述存储器被配置为,存储所述终端设备运行所使用的程序或数据;
8.所述处理器被配置为,响应于用户输入的截屏操作,检测当前显示界面中是否包含滚动窗口;若所述当前显示界面中包含滚动窗口,则显示针对所述滚动窗口的长截屏控件;响应于针对所述长截屏控件的触发操作,基于所述滚动窗口生成长截屏图片。
9.在一种可能的实施方式中,所述处理器具体被配置为:
10.响应于用户输入的截屏操作,检测当前显示界面中是否包含悬浮窗口;所述悬浮窗口指覆盖终端设备的部分显示屏幕的窗口;
11.若所述当前显示界面中包含悬浮窗口,则确定所述悬浮窗口是否为滚动窗口。
12.在一种可能的实施方式中,所述处理器具体被配置为:
13.响应于用户输入的截屏操作,获取所述当前显示界面中包含的各个图层的图层数据;
14.分别基于所述各个图层的图层数据,确定所述各个图层的面积;
15.分别基于所述各个图层的面积,确定所述各个图层与所述显示屏幕的面积比值;
16.若至少一个面积比值在预设的面积比例范围之内,则确定所述当前显示界面中包含悬浮窗口。
17.在一种可能的实施方式中,所述处理器具体被配置为:
18.获取所述悬浮窗口当前显示的第一界面;
19.针对所述悬浮窗口进行滚动操作;
20.获取滚动后的悬浮窗口显示的第二界面,对所述第一界面和所述第二界面进行比对;
21.若所述第一界面和所述第二界面存在差异,则确定所述悬浮窗口为滚动窗口。
22.在一种可能的实施方式中,所述处理器具体被配置为:
23.响应于针对所述长截屏控件的触发操作,针对所述滚动窗口执行至少一次滚动操作,并分别获取每次滚动操作对应的第一图像和第二图像;所述第一图像为进行滚动操作之前滚动窗口的界面图像;所述第二图像为进行滚动操作之后滚动窗口的界面图像;
24.将每次滚动操作对应的第一图像和第二图像依次进行拼接,生成所述长截屏图片。
25.在一种可能的实施方式中,所述处理器具体被配置为:
26.针对所述滚动窗口执行一次滚动操作,并获取此次滚动操作对应的第一图像和第二图像;
27.若获取的第一图像与第二图像之间存在差异,则重复执行针对所述滚动窗口执行一次滚动操作的步骤,直至获取的第一图像与第二图像之间无差异。
28.在一种可能的实施方式中,所述处理器具体被配置为:
29.针对每次滚动操作对应的第一图像和第二图像,分别执行如下操作:确定第一图像与第二图像之间的差异区域的坐标位置;基于所述差异区域的坐标位置,分别在第一图像和第二图像中确定出拼接区域;
30.依次将得到的每个图像中的拼接区域进行拼接,得到长截屏拼接图片;
31.基于所述长截屏拼接图片,生成所述长截屏图片。
32.在一种可能的实施方式中,所述处理器具体被配置为:
33.将所述长截屏拼接图片与非拼接区域的图像进行拼接,得到所述长截屏图片;所述非拼接区域为任意一个图像中除拼接区域之外的区域。
34.第二方面,本技术实施例提供了一种长截屏方法,所述方法包括:
35.响应于用户输入的截屏操作,检测当前显示界面中是否包含滚动窗口;
36.若所述当前显示界面中包含滚动窗口,则显示针对所述滚动窗口的长截屏控件;
37.响应于针对所述长截屏控件的触发操作,基于所述滚动窗口生成长截屏图片。
38.第三方面,本技术实施例提供了一种长截屏装置,包括:
39.检测单元,响应于用户输入的截屏操作,检测当前显示界面中是否包含滚动窗口;
40.显示单元,若所述当前显示界面中包含滚动窗口,则显示针对所述滚动窗口的长截屏控件;
41.生成单元,响应于针对所述长截屏控件的触发操作,基于所述滚动窗口生成长截屏图片。
42.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第二方面或第二方面的任意可能的实施方式中的方法。
43.第五方面,本技术实施例提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当该计算机程序或指令被处理器执行时,实现上述第二方面或第二方面的任意可能的实施方式中的方法。
44.在本技术实施例中,终端设备可以响应于用户输入的截屏操作,检测终端设备的当前显示界面中是否包含滚动窗口;若当前显示界面中包含滚动窗口,则显示针对滚动窗
口的长截屏控件;终端设备可以响应于针对长截屏控件的触发操作,基于滚动窗口生成长截屏图片。通过上述方法,终端设备可以将可滚动的悬浮窗口,即滚动窗口中显示在显示屏幕中的内容和未显示在显示屏幕中的内容均通过截屏进行保存。
附图说明
45.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
46.图1为本技术实施例提供的一种终端设备的结构示意图;
47.图2为本技术实施例提供的一种终端设备的软件结构框图;
48.图3为本技术实施例提供的一长截屏方法的流程图;
49.图4为本技术实施例提供的一种手机显示界面示意图;
50.图5为本技术实施例提供的一种手机下拉菜单示意图;
51.图6为本技术实施例提供的一种手机显示界面中包含的各个图层示意图;
52.图7为本技术实施例提供的一种小窗口图层示意图;
53.图8为本技术实施例提供的一种显示小窗口截屏控件的示意图;
54.图9为本技术实施例提供的一种对悬浮窗口建立坐标系的示意图;
55.图10为本技术实施例提供的一种滚动后的悬浮窗口的显示界面的示意图;
56.图11为本技术实施例提供的一种显示小窗口长截屏控件的示意图;
57.图12为本技术实施例提供的一种差值图示意图;
58.图13为本技术实施例提供的一种确定滚动窗口中包含的可滚动区域的示意图;
59.图14为本技术实施例提供的一种第一图像和第二图像示意图;
60.图15为本技术实施例提供的一种差值图示意图;
61.图16为本技术实施例提供的一种滚动窗口拼接区域的示意图;
62.图17为本技术实施例提供的另一种第一图像和第二图像示意图;
63.图18为本技术实施例提供的另一种差值图示意图;
64.图19为本技术实施例提供的另一种滚动窗口拼接区域的示意图;
65.图20为本技术实施例提供的一种对拼接区域进行拼接的示意图;
66.图21为本技术实施例提供的一种生成的长截屏图片示意图;
67.图22为本技术实施例提供的一种长截屏装置的结构框图。
具体实施方式
68.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,显然,所描述的实施例仅仅是本技术一部份实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
69.需要说明的是,下述本技术实施例描述的应用场景是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术
人员可知,随着新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
70.为了使终端设备可以对当前显示界面中包含的部分内容进行截屏,本技术实施例提供了一种终端设备、长截屏方法和存储介质,终端设备可以响应于用户输入的截屏操作,检测终端设备的当前显示界面中是否包含滚动窗口;若当前显示界面中包含滚动窗口,则显示针对滚动窗口的长截屏控件;终端设备可以响应于针对长截屏控件的触发操作,基于滚动窗口生成长截屏图片。通过上述方法,终端设备可以将可滚动的悬浮窗口,即滚动窗口中显示在显示屏幕中的内容和未显示在显示屏幕中的内容均通过截屏进行保存。
71.在本技术实施例中,长截屏是指在移动终端的屏幕上,截取当前屏幕上下滚动所能显示的超出一屏显示范围的部分或者全部内容并保存成一张图片的行为。
72.本技术实施例提供的终端设备可以为手机、可穿戴设备、平板电脑等便携式设备。图1中示例性示出了本技术实施例提供的一种终端设备的硬件配置框图。应该理解的是,图1所示终端设备100仅是一个范例,并且终端设备100可以具有比图1中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
73.如图1所示,终端设备100包括:通信组件110、处理器120、存储器130、显示器140、输入组件150、音频电路160、sim卡接口170以及传感器180等部件。
74.其中,通信组件110用于接收或发送通话请求,并在通话过程中接收和发送信号,以及连接服务器,上传或下载数据。通信组件110可以包括rf(radio frequency,射频)电路111、wi-fi(wireless fidelity,无线保真)模块112。
75.rf电路111可用于在收发信息或通话过程中信号的接收和发送,可以接收基站的下行数据后交给处理器120处理;可以将上行数据发送给基站。通常,rf电路111包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等器件。rf电路111可以由天线接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。rf电路111还可以对经调制解调处理器调制后的信号放大,经天线转为电磁波辐射出去。在一些实施例中,rf电路111的至少部分功能模块可以被设置于处理器120中。在一些实施例中,rf电路111的至少部分功能模块可以与处理器120的至少部分模块被设置在同一个器件中。终端设备100的rf电路111和天线耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。
76.wi-fi属于短距离无线传输技术,终端设备100可以通过wi-fi模块112帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。wi-fi模块112可以连接路由器,通过路由器连接外部网络。wi-fi模块112也可以连接服务器,上传或下载数据。
77.存储器130可用于存储终端设备运行时所使用的数据或程序代码。处理器120通过运行存储在存储器130的数据或程序代码,从而执行终端设备100的各种功能以及数据处理。存储器130可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器130存储有使得终端设备100能运行的操作系统。
78.显示器140用于显示由用户输入的信息或提供给用户的信息以及终端设备100的各种菜单的图形用户界面(graphical user interface,gui)。具体地,显示器140可以包括设置在终端设备100正面的显示器。显示器可以采用液晶显示器、发光二极管等形式来配置。显示器140可用于显示终端设备运行时的界面。
79.输入组件150可用于接收用户输入的数字或字符信息,以及用户输入的各种操作等,产生与终端设备100的用户设置以及功能控制有关的信号输入。具体地,输入组件150可以包括按键和触控屏,触控屏可以设置在终端设备100的正面,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
80.其中,触控屏可以覆盖在显示器之上,在一些实施例中,可以将触控屏与显示器集成而实现终端设备100的输入和输出功能,集成后可以简称触控显示器。
81.终端设备100还可以包括定位模块,如卫星定位模块或移动通信网络定位模块等,可以实时确定终端设备100所处的地理位置。
82.音频电路160、扬声器161、麦克风162可提供用户与终端设备100之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出。终端设备100还可配置音量按钮,用于调节声音信号的音量。另一方面,麦克风162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出至rf电路111以发送给比如另一终端,或者将音频数据输出至存储器130以便进一步处理。
83.sim卡接口170用于连接sim卡。sim卡可以通过插入sim卡接口170,或从sim卡接口170中拔出,实现和终端设备100的接触和分离。终端设备100可以支持1个或n个sim卡接口,n为大于1的正整数。sim卡接口170可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。sim卡接口也可以兼容不同类型的sim卡。sim卡接口也可以兼容外部存储卡。终端设备100通过sim卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端设备100采用esim,即:嵌入式sim卡。esim卡可以嵌在终端设备100中,不能和终端设备100分离。sim卡用于标识用户的手机号码。
84.终端设备100除包含sim卡接口170之外,还可以包括usb(universal serial bus,通用串行总线)接口等。usb接口用于连接充电线或其它外设。例如,终端设备100可以通过usb接口连接充电线。终端设备100中的各组件或模块通过总线连接。
85.终端设备100还可以包括至少一种传感器180,比如加速度传感器181、距离传感器182、指纹传感器183、温度传感器184。终端设备100还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。例如,指纹传感器183可以用于感应用户点击终端设备100操作界面的图标。
86.终端设备100还可以包括摄像头,用于捕获静态图像或视频。摄像头可以是一个,也可以是多个。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器120转换成数字图像信号。
87.处理器120是终端设备100的控制中心,利用各种接口和线路连接整个终端的各个
部分,通过运行或执行存储在存储器130内的软件程序,以及调用存储在存储器130内的数据,执行终端设备100的各种功能和处理数据。在一些实施例中,处理器120可包括一个或多个处理单元。本技术中处理器120可以运行操作系统、应用程序、用户界面显示及触控响应,以及本技术实施例所述的长截屏方法。处理器120执行长截屏方法的具体过程,将在下文中详细介绍。
88.图2是本技术实施例的终端设备100的软件结构框图。
89.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将安卓(android)系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。
90.应用程序层可以包括一系列应用程序包。如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,时钟,蓝牙,音乐,视频,短信息等应用程序。用户可以在时钟应用程序中设置闹钟。应用程序层还可以包括安装在终端设备上的第三方应用。
91.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
92.如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
93.窗口管理器用于管理窗口程序。窗口管理器可以获取显示器大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
94.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括闹钟数据,视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
95.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
96.电话管理器用于提供终端设备的通信功能。例如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
97.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端振动,指示灯闪烁等。
98.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。
99.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
100.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
101.系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库
(media libraries),三维图形处理库(例如:opengl es),2d图形引擎(例如:sgl)等。其中,三维图形处理库和2d图形引擎均属于公共相机资源。
102.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。
103.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
104.三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
105.2d图形引擎是2d绘图的绘图引擎。
106.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
107.为进一步说明本技术实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本技术实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本技术实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可按照实施例或者附图所示的方法顺序执行或者并执行。
108.图3示出了本技术实施例提供的一种长截屏方法的流程图。该方法可以适用于图1所示的终端设备,该终端设备可以包括但不限于手机。如图3所示,该方法可以包括如下步骤:
109.步骤s301,响应于用户输入的截屏操作,检测当前显示界面中是否包含滚动窗口。
110.在一种可选的实施方式中,手机可以响应于用户输入的截屏操作,检测当前显示界面中是否包含悬浮窗口;若当前显示界面中包含悬浮窗口,则确定悬浮窗口是否为滚动窗口;其中,悬浮窗口指覆盖终端设备的部分显示屏幕的窗口;
111.具体地,在检测当前显示界面中是否包含悬浮窗口时,手机可以响应于用户输入的截屏操作,获取当前显示界面中包含的各个图层的图层数据;并分别基于各个图层的图层数据,确定各个图层的面积;并分别基于各个图层的面积,确定各个图层与显示屏幕的面积比值;若至少一个面积比值在预设的面积比例范围之内,则确定当前显示界面中包含悬浮窗口。
112.示例性地,在一种实施例中,如图4所示,假设图4为手机的当前显示界面,在图4中包含小窗口401。可选地,用户可以通过如下方式进行截屏:用户可以从手机顶部执行下拉操作,打开手机下拉菜单栏,如图5所示,在手机的下拉菜单栏中包含截屏按键501,用户可以在手机的下拉菜单栏中点击截屏按键501,输入截屏操作。手机响应于用户点击截屏按键501的操作,可以从数据缓冲区(buffer)中获取到手机当前显示界面中包含的各个图层的图层数据。例如,bitmap数据,手机当前显示界面中包含的每个图层都可以对应一组bitmap数据,其中,手机当前显示界面中包含的各个图层可以包括状态栏图层、导航栏图层、背景图层和小窗口图层,如图6所示,(a)中601为状态栏图层;(b)中602为导航栏图层;(c)为背景图层;(d)中603为小窗口图层。
113.因为小窗口图层需要覆盖在背景图层的上方,如图4所示,因此在小窗口图层的底部通常会携带一层半透明区域,如图6(d)所示,灰色代表半透明区域。因此,手机在获取到
各个图层对应的bitmap数据后,还需要判断各个图层中是否包含半透明区域,若包含,则将半透明区域进行舍弃,即只保留不透明区域;具体地,手机在获取到各个图层对应的bitmap数据后,可以根据bitmap数据中用于标识透明度的alpha值,将一个图层中包含的半透明区域进行舍弃,例如,若alpha值小于255,则表明该区域为半透明区域,则可以将该区域进行舍弃,如图7所示,701为舍弃透明区域后的小窗口图层。
114.通过上述方法,确定出各个图层中的不透明区域后,手机可以根据各个图层的不透明区域对应的bitmap数据,确定出各个图层的面积;并基于确定出的各个图层的面积,和手机显示屏幕的面积,确定出各个图层和手机显示屏幕的面积比值;若该面积比值在预设的面积比例范围之内,则确定当前显示界面中包含悬浮窗口;若该面积比值不在预设的面积比例范围(thred1,thred2)之内,则确定当前显示界面中没有包含悬浮窗口,其中,thred1和thred2大于零。
115.示例性地,假设预设的面积比例范围为(20:100,90:100),其中,面积比例范围的最小值可以根据手机显示界面中通常包含的状态栏图层或导航栏图层等常用图层与手机显示屏幕的面积比值设定,使其大于常用图层与手机显示屏幕的面积比值;面积比例范围的最大值可以根据通常最大的悬浮窗口面积与手机显示屏幕的面积比值来设定。
116.假设确定出的状态栏图层和手机显示屏幕的面积比值为5:100,导航栏图层和手机显示屏幕的面积比值为10:100,背景图层和手机显示屏幕的面积比值为100:100,小窗口图层和手机显示屏幕的面积比值为50:100。可见,状态栏图层、导航栏图层和背景图层与手机显示屏幕的面积比值不在预设的面积比例范围之内,小窗口图层与手机显示屏幕的面积比值在预设的面积比例范围之内,因此手机可以确定当前显示界面中包含悬浮窗口,即小窗口401为悬浮窗口。
117.在一种可选的实施方式中,通过上述方式检测出悬浮窗口后,可以显示针对悬浮窗口的截屏控件,示例性地,如图8所示,可以在手机的显示屏幕的右下侧,显示小窗口截屏按键801,其中,小窗口截屏按键801为一种可选的针对悬浮窗口的截屏控件,用户可以点击小窗口截屏按键801,手机响应于用户点击小窗口截屏按键801的操作,可以对悬浮窗口401当前显示的界面进行截图操作。
118.在一种可选的实施方式中,通过上述方式检测出悬浮窗口后,手机可以获取悬浮窗口当前显示的第一界面;并针对悬浮窗口进行滚动操作;获取滚动后的悬浮窗口显示的第二界面,并对第一界面和第二界面进行比对;若第一界面和第二界面存在差异,则确定悬浮窗口为滚动窗口。
119.示例性地,在一种实施例中,手机在检测出小窗口401为悬浮窗口后,可以先获取悬浮窗口当前显示界面的图像,即第一界面,并基于悬浮窗口的位置建立坐标系,如图9所示,可以将悬浮窗口左上角的顶点作为坐标原点o,沿悬浮窗口的宽建立x轴,沿悬浮窗口的高建立y轴,并确定出坐标中心点p,p点的坐标为(x
max
/2,y
max
/2),其中,x
max
可以表示该悬浮窗口的宽的值,y
max
表示该悬浮窗口的高的值。建立完成后,手机可以以坐标中心点p为起点,模拟触屏滑动操作,即滚动操作,向上移动y
max
/thred3的距离,其中,thred3为大于或等于2的任意数值,例如,thred3可以取值为3。滚动操作完成后,手机可以获取滚动后的悬浮窗口当前显示的界面的图像,即第二界面,如图10所示。
120.获取到图9和图10所示的图像后,手机可以对图9和图10所示的图像进行比对,例
如,手机可以采用sad算法,计算出图9和图10所示的图像中各个对应像素点之间像素的差值,并求出各个差值的绝对值之和,通过将绝对值之和与预设的阈值进行比较,来判断图9和图10所示的图像是否存在差异,其中,预设的阈值可以是接近于0的数值,也可以根据图像的大小进行设置,示例性地,当图像所包含的像素点较多时,可以将阈值设置为100;当图像所包含的像素点较少时,可以将阈值设置为20。若绝对值之和小于预设的阈值,表明图9和图10所示的图像之间不存在差异,则说明该悬浮窗口不可滚动;若绝对值之和大于预设的阈值,表明图9和图10所示的图像之间存在差异,则说明该悬浮窗口可滚动,即该悬浮窗口为滚动窗口。
121.在另一种可选的实施方式中,在手机的当前显示界面中可以包含多个悬浮窗口,用户可以在手机检测出的多个悬浮窗口中任选一个悬浮窗口作为目标悬浮窗口,手机响应于用户选择目标悬浮窗口的操作,检测该目标悬浮窗口是否为滚动窗口,具体实施方式,与上述步骤相似,此处不再赘述。
122.步骤s302,若当前显示界面中包含滚动窗口,则显示针对滚动窗口的长截屏控件。
123.步骤s303,响应于针对长截屏控件的触发操作,基于滚动窗口生成长截屏图片。
124.在一种可选的实施方式中,若通过步骤s301,确定手机的当前显示界面中包含滚动窗口时,手机可以显示针对滚动窗口的长截屏控件,示例性地,如图11所示,小窗口长截屏按键1101为一种可选的针对滚动窗口的长截屏控件,用户可以点击小窗口长截屏按键1101,手机响应于用户点击小窗口长截屏按键1101的操作,可以基于滚动窗口生成长截屏图片。
125.在一种可选的实施方式中,通过步骤s301检测出滚动窗口后,在基于滚动窗口生成长截屏图片时,由于滚动窗口内不一定是所有的区域都可以进行滚动,因此,需要检测出滚动窗口中包含的可滚动区域。具体地,手机可以比较图9和图10所示的图像之间的差异,得到对应的差值图,如图12所示,灰色代表无差异区域,黑色代表差异区域,由于滚动窗口的滚动方式为上下滚动,因此可以根据图12所示的差值图初步确定出滚动窗口中包含的可滚动区域以及可滚动区域的高度h。
126.具体地,图12为手机根据图9和图10所示的图像对应的差值图,手机可以确定出差值图中包含的差异区域的顶点坐标,该差异区域的顶点坐标即为可滚动区域的顶点坐标,其中,可滚动区域的顶点坐标所在的坐标系与差异区域的顶点坐标所在的坐标系一致。
127.在一种可选的实施方式中,通过上述方式初步确定出可滚动区域的位置和高度后,手机可以针对滚动窗口执行至少一次滚动操作,分别获取每次滚动操作对应的第一图像和第二图像;并将每次滚动操作对应的第一图像和第二图像依次进行拼接,生成长截屏图片。其中,第一图像为进行滚动操作之前滚动窗口的界面图像;第二图像为进行滚动操作之后滚动窗口的界面图像。
128.示例性地,在一种实施例中,用户可以点击图11中的小窗口长截屏按键1001,手机响应于用户点击小窗口长截屏按键1101的操作,获取滚动窗口的图像pic0,并以确定的可滚动区域的中心点为起点,模拟触屏滑动操作,即滚动操作,向上移动h/thred4的距离,并获取滚动窗口的图像pic1,其中,thred4可以为任一大于0的整数;例如,如图13所示,h为可滚动区域的高度,q为根据可滚动区域的顶点坐标确定的中心点,获取到图像pic0后,手机可以以q点为起点,模拟触屏滑动操作,向上移动h/thred4的距离,并获取滚动窗口的图像
pic1,重复上述步骤,获取滚动窗口的图像pic2,并对pic1和pic2进行比对,如果pic1和pic2没有差异,则表明已经滚动到最底端,停止滚动;如果pic1和pic2有差异,则继续滚动,直至滚动到最底端或接收到用户的反馈操作等。
129.在一种实施例中,假设pic1和pic2没有差异,则最终获取的滚动窗口的图像包含pic0和pic1,其中,pic0为第一图像,pic1为第二图像。可以通过如下方式将第一图像和第二图像进行拼接,生成长截屏图片:如图14所示,(a)为pic0,(b)为pic1,获取到滚动窗口的图像pic0和pic1后,手机可以对图像pic0和pic1做差,得到对应的差值图diff01,如图15所示,其中,灰色代表无差异区域,黑色代表差异区域。得到差值图后diff01,手机可以确定出差值图diff01中包含的差异区域的坐标位置,差异区域的坐标位置可以通过各顶点的顶点坐标表示。手机可以根据差异区域的顶点坐标确定出拼接区域的顶点坐标,并根据拼接区域的顶点坐标在图像pic0和pic1中提取出对应的拼接区域roi0和roi1,然后对roi0和roi1进行拼接,得到长截屏拼接图片。
130.示例性地,假设差值图diff01中包含的差异区域的四个顶点的顶点坐标分别为a1(1,1),b1(5,1),c1(1,7),d1(5,7),则拼接区域的顶点坐标为a(1,1),b(5,1),c(1,7),d(5,7)。确定出拼接区域的顶点坐标后,可以根据拼接区域的顶点坐标,在获取的滚动窗口的图像pic0和pic1中提取出各个图像中包含的拼接区域roi,如图16所示,(a)为pic0中拼接区域roi0,(b)为pic1中拼接区域roi1,确定出拼接区域roi0和roi1后,可以对roi0和roi1进行拼接,得到长截屏拼接图片。对roi0和roi1进行拼接的具体步骤将在下文中做具体介绍,此处不再赘述。得到长截屏拼接图片后,可以将长截屏拼接图片和任一图像的非拼接区域进行融合,生成长截屏图片。
131.在一种实施例中,可以把获取的滚动窗口的第一图像和第二图像划分成拼接区域和非拼接区域两部分,其中,拼接区域的顶点坐标与滚动窗口中包含的可滚动区域的顶点坐标一致,非拼接区域为第一图像和第二图像中除拼接区域外的其余区域。
132.在另一种实施例中,假设最终获取的滚动窗口的图像包含pic0、pic1和pic2,如图17所示,(a)为pic0,(b)为pic1,(c)为pic2,获取完成后,手机可以对相邻两次获取的图像做差,得到对应的差值图,如图18所示,(a)为pic0和pic1对应的差值图diff01,(b)为pic1和pic2对应的差值图diff12;其中,灰色1201代表无差异区域,黑色1202代表差异区域,得到差值图diff01和diff12后,手机可以确定出差值图diff01和diff12中包含的差异区域的顶点坐标,即坐标位置,并根据差异区域的顶点坐标确定出拼接区域的顶点坐标。
133.示例性地,假设差值图diff01中包含的差异区域的四个顶点的顶点坐标分别为a1(1,1),b1(5,1),c1(1,7),d1(5,7);差值图diff12中包含的差异区域的四个顶点的顶点坐标分别为a2(1,1),b2(6,1),c2(1,7),d2(6,7),因此,拼接区域的顶点坐标为a(1,1),b(6,1),c(1,7),d(6,7);其中,a为a1和a2中的各坐标点的最大值;b为b1和b2中的各坐标点的最大值;c为c1和c2中的各坐标点的最大值;d为d1和d2中的各坐标点的最大值。确定出拼接区域的顶点坐标后,可以根据拼接区域的顶点坐标,在获取的滚动窗口的图像pic0、pic1和pic2中提取出各个图像中包含的拼接区域roi,如图19所示,(a)为pic0中拼接区域roi0,(b)为pic1中拼接区域roi1,(c)为pic2中拼接区域roi2,提取出拼接区域roi0、roi1和roi2后,可以对roi0、roi1和roi2进行拼接。
134.在一种实施例中,以拼接roi0和roi1为例进行说明,因为只需要考虑y方向上的变
化,因此可以采用模板匹配方式来计算出偏移量,具体地,可以从roi1的顶部开始,将h/thred4高度的区域作为模板,其中,h为拼接区域的高度,可以根据拼接区域的顶点坐标确定。thred4为大于0的任意值;在roi0中沿y轴方向进行查找,即在roi0中从上往下进行查找,直至在roi0中找到与roi1中的模板最匹配的区域,并将找到最匹配的区域时沿y轴方向的位移量定义为偏移量mvy。
135.示例性地,假设thred4为4,即从roi1的顶部开始,将h/4高度的区域作为模板,如图20所示,模板2001的高度为h/4,在roi0中从上往下进行查找,假设当查找到最匹配的区域时,沿y轴方向的位移量为5,即roi0的顶部与最匹配的区域的顶部之间的偏移量mvy为5,确定出偏移量mvy后,可以按照偏移量沿y轴方向,将roi0分割成上下两部分,并将roi1与roi0的上半部分进行拼接,得到拼接图片,参照上述步骤,可以将得到的拼接图片和roi2再次进行拼接,得到长截屏拼接图片。
136.通过上述方法,得到长截屏拼接图片后,可以对长截屏拼接图片和任一图像的非拼接区域进行融合,生成长截屏图片,如图21所示。
137.基于同一发明构思,本技术实施例中还提供了一种长截屏装置,如图22所示,该长截屏装置包括:
138.检测单元2201,响应于用户输入的截屏操作,检测当前显示界面中是否包含滚动窗口;
139.显示单元2202,若所述当前显示界面中包含滚动窗口,则显示针对所述滚动窗口的长截屏控件;
140.生成单元2203,响应于针对所述长截屏控件的触发操作,基于所述滚动窗口生成长截屏图片。
141.在一种可能的实施方式中,所述检测单元2201,具体用于:
142.响应于用户输入的截屏操作,检测当前显示界面中是否包含悬浮窗口;所述悬浮窗口指覆盖终端设备的部分显示屏幕的窗口;
143.若所述当前显示界面中包含悬浮窗口,则确定所述悬浮窗口是否为滚动窗口。
144.在一种可能的实施方式中,所述检测单元2201,具体用于:
145.响应于用户输入的截屏操作,获取所述当前显示界面中包含的各个图层的图层数据;
146.分别基于所述各个图层的图层数据,确定所述各个图层的面积;
147.分别基于所述各个图层的面积,确定所述各个图层与所述显示屏幕的面积比值;
148.若至少一个面积比值在预设的面积比例范围之内,则确定所述当前显示界面中包含悬浮窗口。
149.在一种可能的实施方式中,所述检测单元2201,具体用于:
150.获取所述悬浮窗口当前显示的第一界面;
151.针对所述悬浮窗口进行滚动操作;
152.获取滚动后的悬浮窗口显示的第二界面,对所述第一界面和所述第二界面进行比对;
153.若所述第一界面和所述第二界面存在差异,则确定所述悬浮窗口为滚动窗口。
154.在一种可能的实施方式中,所述生成单元2203,具体用于:
155.响应于针对所述长截屏控件的触发操作,针对所述滚动窗口执行至少一次滚动操作,并分别获取每次滚动操作对应的第一图像和第二图像;所述第一图像为进行滚动操作之前滚动窗口的界面图像;所述第二图像为进行滚动操作之后滚动窗口的界面图像;
156.将每次滚动操作对应的第一图像和第二图像依次进行拼接,生成所述长截屏图片。
157.在一种可能的实施方式中,所述生成单元2203,具体用于:
158.针对所述滚动窗口执行一次滚动操作,并获取此次滚动操作对应的第一图像和第二图像;
159.若获取的第一图像与第二图像之间存在差异,则重复执行针对所述滚动窗口执行一次滚动操作的步骤,直至获取的第一图像与第二图像之间无差异。
160.在一种可能的实施方式中,所述生成单元2203,具体用于:
161.针对每次滚动操作对应的第一图像和第二图像,分别执行如下操作:确定第一图像与第二图像之间的差异区域的坐标位置;基于所述差异区域的坐标位置,分别在第一图像和第二图像中确定出拼接区域;
162.依次将得到的每个图像中的拼接区域进行拼接,得到长截屏拼接图片;
163.基于所述长截屏拼接图片,生成所述长截屏图片。
164.在一种可能的实施方式中,所述生成单元2203,具体用于:
165.将所述长截屏拼接图片与非拼接区域的图像进行拼接,得到所述长截屏图片;所述非拼接区域为任意一个图像中除拼接区域之外的区域。
166.基于同一发明构思,本技术实施例中还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当该计算机程序或指令被处理器执行时,实现上述任一长截屏方法。
167.基于同一发明构思,本技术实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一长截屏方法。
168.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
169.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
170.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
171.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
172.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献