本发明涉及图像处理领域,尤其涉及一种显示界面配置方法、系统、设备及存储介质。
背景技术:
在视频监控系统中,经常有同时预览或者回放多个画面的需求,这样就需要用到画面分割、布局的技术。1画面、4画面、9画面、16画面等属于规则布局,它们的行数和列数一样,且每一个画面大小都相同,而8画面、13画面、32画面等属于不规则布局,存在大小不一的画面。但都有一些共性,比如所有的画面都是矩形,且都不重叠;布局可以分为更小的m×n个格子,使得每个画面恰好由几个格子组成。现有技术中对画面的分割方法采用以下方式:如果是1、4、9、16等规则布局就使用平分宽和高的方式,如果是不规则的布局,就每个画面都使用单独的代码去布局。对于每一个不规则窗口布局都需要写单独的代码去配置的方式,操作繁琐,无法实现所有画面的统一配置。
技术实现要素:
本发明实施例的目的是提供一种显示界面配置方法、系统、设备及存储介质,对于不规则的画面布局可以使用统一的代码逻辑适配,操作简单且适用性高。
为实现上述目的,本发明实施例提供了一种显示界面配置方法,包括:
将窗口分割成若干个分格;其中,每一所述分格的尺寸相等;
对每一所述分格进行编号;
对所述分格进行划分,以将所述窗口分割成若干个含有至少一个所述分格的画面;
对每一所述画面进行编号;
根据所述分格的编号和所述画面的编号构建映射表;
将所述映射表保存到配置文件中,以用所述配置文件对显示界面进行配置。
与现有技术相比,本发明实施例公开的显示界面配置方法,首先,将窗口分割成若干个分格,并对每一分格进行编号;然后,对分格进行划分,以将窗口分割成若干个含有至少一个分格的画面,并对每一所述画面进行编号;最后,根据分格的编号和画面的编号构建映射表,将映射表保存到配置文件中,以用配置文件对显示界面进行配置。本发明公开的显示界面配置方法适用于所有类型的画面布局的配置,而对于不规则的画面布局可以使用统一的代码逻辑适配,操作简单且适用性高,在后续对显示界面进行配置的过程中,也可以直接调用已经存储的配置文件对显示界面进行配置。
作为上述方案的改进,所述对每一所述分格进行编号,具体包括:
按照预设的编号顺序对每一所述分格进行编号;其中,所述编号顺序为每一行分格从小至大依次编号或每一列分格从小至大依次编号。
作为上述方案的改进,所述根据所述分格的编号和所述画面的编号构建映射表,具体包括:
判断当前画面包含的所述分格的数目是否大于1;
若是,取所述当前画面中所述分格的最小编号和最大编号组成所述当前画面的映射关系;若否,取所述当前画面中所述分格的编号组成所述当前画面的映射关系;
根据所述映射关系组成映射表;其中,所述映射表按照所述画面的编号进行排序。
作为上述方案的改进,所述对所述分格进行划分,具体包括:
接收用户对所述分格的自定义划分操作;
根据所述自定义划分操作对所述分格进行划分。
为实现上述目的,本发明实施例还提供了一种显示界面配置系统,包括:
分割单元,用于将窗口分割成若干个分格;其中,每一所述分格的尺寸相等;
第一编号单元,用于对每一所述分格进行编号;
划分单元,用于对所述分格进行划分,以将所述窗口分割成若干个含有至少一个所述分格的画面;
第二编号单元,用于对每一所述画面进行编号;
映射表构建单元,根据所述分格的编号和所述画面的编号构建映射表;
配置单元,用于将所述映射表保存到配置文件中,以用所述配置文件对显示界面进行配置。
本发明实施例公开的显示界面配置系统,首先,分割单元将窗口分割成若干个分格,第一编号单元对每一分格进行编号;然后,划分单元对分格进行划分,以将窗口分割成若干个含有至少一个分格的画面,第二编号单元对每一所述画面进行编号;最后,映射表构建单元根据分格的编号和画面的编号构建映射表,配置单元将映射表保存到配置文件中,以用配置文件对显示界面进行配置。本发明公开的显示界面配置系统适用于所有类型的画面布局的配置,而对于不规则的画面布局可以使用统一的代码逻辑适配,操作简单且适用性高,在后续对显示界面进行配置的过程中,也可以直接调用已经存储的配置文件对显示界面进行配置。
作为上述方案的改进,所述第一编号单元具体用于:
按照预设的编号顺序对每一所述分格进行编号;其中,所述编号顺序为每一行分格从小至大依次编号或每一列分格从小至大依次编号。
作为上述方案的改进,所述映射表构建单元具体用于:
判断当前画面包含的所述分格的数目是否大于1;
若是,取所述当前画面中所述分格的最小编号和最大编号组成所述当前画面的映射关系;若否,取所述当前画面中所述分格的编号组成所述当前画面的映射关系;
根据所述映射关系组成映射表;其中,所述映射表按照所述画面的编号进行排序。
作为上述方案的改进,所述划分单元具体用于:
接收用户对所述分格的自定义划分操作;
根据所述自定义划分操作对所述分格进行划分。
为实现上述目的,本发明实施例还提供一种显示界面配置设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一实施例所述的显示界面配置方法。
为实现上述目的,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如任一实施例所述的显示界面配置方法。
附图说明
图1是本发明实施例提供的一种显示界面配置方法的流程图;
图2是本发明实施例提供的分格和画面的布局示意图;
图3是本发明实施例提供的一种显示界面配置系统的结构框图;
图4是本发明实施例提供的一种显示界面配置设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1是本发明实施例提供的一种显示界面配置方法的流程图;所述显示界面配置方法包括:
s1、将窗口分割成若干个分格;其中,每一所述分格的尺寸相等;
s2、对每一所述分格进行编号;
s3、对所述分格进行划分,以将所述窗口分割成若干个含有至少一个所述分格的画面;
s4、对每一所述画面进行编号;
s5、根据所述分格的编号和所述画面的编号构建映射表;
s6、将所述映射表保存到配置文件中,以用所述配置文件对显示界面进行配置。
值得说明的是,本发明实施例所述的显示界面配置方法可以由客户端/设备执行实现,可以应用在windows、android、ios等系统的客户端中,也可以应用在nvr、解码器等嵌入式设备中。
具体的,在步骤s1中,在响应于显示界面的窗口分割配置指令时,将窗口分割成若干个分格;其中,每一所述分格的尺寸相等,所述窗口为客户端中显示界面所显示的窗口。
示例性的,可以将整个窗口分割成m*n个分格,m和n的值可以预先设定,用户也可以根据实际情况进行更改。如图2所示,所述窗口被分割成49个分格(7*7)。
具体的,在步骤s2中,按照预设的编号顺序对每一所述分格进行编号;其中,所述编号顺序为每一行分格从小至大依次编号或每一列分格从小至大依次编号。比如,每一行的分格从左至右(或从右至左)按照从小到大的顺序编号,每个分格的编号不相等,如图2所示,所述分格的编号位于所述分格的左上角,从0开始依次进行编号;或者,也可以每一列的分格从上至下(或从下至上)按照从小到大的顺序编号,每个分格的编号不相等。
具体的,在步骤s3中,在对所述分格编号完后,需要对所述分格进行划分,以将所述窗口分割成若干个含有至少一个所述分格的画面。通过对分格进行划分的方式,能够将所述窗口分割成规则(1画面、4画面、9画面、16画面)/不规则(8画面、13画面、32画面)的画面布局。如图2所示,所述窗口包括32个画面,每个画面中含有至少一个所述分格,比如画面1含有4个分格,编号为0、1、7、8。
在一种实施方式中,对所述分格进行划分的过程中,系统可以根据用户设定的画面分割值进行随机划分,所述画面分割值可以随意设定。比如,当用户输入所述画面分割值为32时,系统随机将49个分格划分为32个画面。
在另一种实施方式中,用户也可以自定义对所述分格进行划分,此时接收用户对所述分格的自定义划分操作,然后根据所述自定义划分操作对所述分格进行划分。比如,用户选择画面1含有4个分格、画面2含有4个分格等,用户可以随意对所述分格进行任意划分。
具体的,在步骤s4中,在确定好所述窗口所包含的画面后,对所述画面进行编号。对所述画面进行编号的方式与对分格进行编号的方式相同,或者可以随机对所述画面进行编号。如图2中的所述画面的编号为按照从左至右、从上至下依次递增的编号顺序,与所述分格的编号顺序相同。
具体的,在步骤s5中,根据所述分格的编号和所述画面的编号构建映射表,所述映射表能够反映出所述分格和所述画面的对应关系。
优选的,步骤s5具体包括:
s51、判断当前画面包含的所述分格的数目是否大于1;
s52、若是,取所述当前画面中所述分格的最小编号和最大编号组成所述当前画面的映射关系;若否,取所述当前画面中所述分格的编号组成所述当前画面的映射关系;
s53、根据所述映射关系组成映射表;其中,所述映射表按照所述画面的编号进行排序。
示例性的,如32画面的映射表:
所述映射表中一共包含32个数组,一个数组代表一个画面,该数组按照画面编号进行排序,进一步的,可以在数组的下标标注对应画面编号。数组的两个元素分别代表该画面所占有的最小分格的最小编号和最大编号,比如窗口1对应0,1,7,8四个最小分格,因此数组的第一个元素为{0,8}。
更进一步的,每个画面的四角坐标可以通过上述映射表计算得出。假设总体窗口宽度为w,高度为h,当前布局最小分格有m*n个,那么每个最小分格宽为w/n,高为h/m,可以算出每个画面的左上角处于几行几列,占了几行几列。以第i个画面为例进行说明:
左上角处于第几行(取整):row=layout[i][0]/n;
左上角处于第几列:column=layout[i][0]%n;
一共占了几行(取整):row_span=layout[i][1]/n-row+1;
一共占了几列:column_span=layout[i][1]%n-column+1;
因此第i个画面的左上角坐标为(w/n*colum,h/m*row),右下角坐标为(w/n*(colum+column_span),h/m*(row+row_span))。
通过此计算方式可以得到任意不同画面规格(比如8/13/32)的每个窗口的尺寸大小以及排列位置。
具体的,在步骤s6中,将所述映射表保存到配置文件中,以用所述配置文件对显示界面进行配置。示例性的,通过调用各平台的接口,将配置文件应用到ui界面中,在后续对显示界面进行配置的过程中,也可以直接调用已经存储的配置文件对显示界面进行配置。
更进一步的,用户也可以直接调用已经存储的配置文件,进行自定义更改,比如将32画面更改为36画面,此时对应的映射表中需要新增4个映射关系(数组),且需要调整更改后的画面所对应的数组。
与现有技术相比,本发明实施例公开的显示界面配置方法,首先,将窗口分割成若干个分格,并对每一分格进行编号;然后,对分格进行划分,以将窗口分割成若干个含有至少一个分格的画面,并对每一所述画面进行编号;最后,根据分格的编号和画面的编号构建映射表,将映射表保存到配置文件中,以用配置文件对显示界面进行配置。
本发明公开的显示界面配置方法适用于所有类型的画面布局的配置,而对于不规则的画面布局可以使用统一的代码逻辑适配,操作简单且适用性高,在后续对显示界面进行配置的过程中,也可以直接调用已经存储的配置文件对显示界面进行配置,映射表可以保存到数据库或者文件中,方便实现用户自定义。
参见图3,图3是本发明实施例提供的一种显示界面配置系统10的结构框图;所述显示界面配置系统10包括:
分割单元11,用于将窗口分割成若干个分格;其中,每一所述分格的尺寸相等;
第一编号单元12,用于对每一所述分格进行编号;
划分单元13,用于对所述分格进行划分,以将所述窗口分割成若干个含有至少一个所述分格的画面;
第二编号单元14,用于对每一所述画面进行编号;
映射表构建单元15,根据所述分格的编号和所述画面的编号构建映射表;
配置单元16,用于将所述映射表保存到配置文件中,以用所述配置文件对显示界面进行配置。
值得说明的是,本发明实施例所述的显示界面配置系统10可以安装在客户端/设备中,可以应用在windows、android、ios等系统的客户端中,也可以应用在nvr、解码器等嵌入式设备中。
具体的,在响应于显示界面的窗口分割配置指令时,所述分割单元11将窗口分割成若干个分格;其中,每一所述分格的尺寸相等,所述窗口为客户端中显示界面所显示的窗口。
示例性的,可以将整个窗口分割成m*n个分格,m和n的值可以预先设定,用户也可以根据实际情况进行更改。如图2所示,所述窗口被分割成49个分格(7*7)。
具体的,所述第一编号单元12按照预设的编号顺序对每一所述分格进行编号;其中,所述编号顺序为每一行分格从小至大依次编号或每一列分格从小至大依次编号。比如,每一行的分格从左至右(或从右至左)按照从小到大的顺序编号,每个分格的编号不相等,如图2所示,所述分格的编号位于所述分格的左上角,从0开始依次进行编号;或者,也可以每一列的分格从上至下(或从下至上)按照从小到大的顺序编号,每个分格的编号不相等。
具体的,在对所述分格编号完后,所述划分单元13对所述分格进行划分,以将所述窗口分割成若干个含有至少一个所述分格的画面。通过对分格进行划分的方式,能够将所述窗口分割成规则(1画面、4画面、9画面、16画面)/不规则(8画面、13画面、32画面)的画面布局。如图2所示,所述窗口包括32个画面,每个画面中含有至少一个所述分格,比如画面1含有4个分格,编号为0、1、7、8。
在一种实施方式中,所述划分单元13对所述分格进行划分的过程中,系统可以根据用户设定的画面分割值进行随机划分,所述画面分割值可以随意设定。比如,当用户输入所述画面分割值为32时,所述划分单元13随机将49个分格划分为32个画面。
在另一种实施方式中,用户也可以自定义对所述分格进行划分,此时所述划分单元13接收用户对所述分格的自定义划分操作,然后根据所述自定义划分操作对所述分格进行划分。比如,用户选择画面1含有4个分格、画面2含有4个分格等,用户可以随意对所述分格进行任意划分。
具体的,在确定好所述窗口所包含的画面后,所述第二编号单元14对所述画面进行编号。对所述画面进行编号的方式与对分格进行编号的方式相同,或者可以随机对所述画面进行编号。如图2中的所述画面的编号为按照从左至右、从上至下依次递增的编号顺序,与所述分格的编号顺序相同。
具体的,所述映射表构建单元15根据所述分格的编号和所述画面的编号构建映射表,所述映射表能够反映出所述分格和所述画面的对应关系。
优选的,所述映射表构建单元15具体用于:判断当前画面包含的所述分格的数目是否大于1;若是,取所述当前画面中所述分格的最小编号和最大编号组成所述当前画面的映射关系;若否,取所述当前画面中所述分格的编号组成所述当前画面的映射关系;根据所述映射关系组成映射表;其中,所述映射表按照所述画面的编号进行排序。
示例性的,如32画面的映射表:
所述映射表中一共包含32个数组,一个数组代表一个画面,该数组按照画面编号进行排序,进一步的,可以在数组的下标标注对应画面编号。数组的两个元素分别代表该画面所占有的最小分格的最小编号和最大编号,比如窗口1对应0,1,7,8四个最小分格,因此数组的第一个元素为{0,8}。
更进一步的,每个画面的四角坐标可以通过上述映射表计算得出。假设总体窗口宽度为w,高度为h,当前布局最小分格有m*n个,那么每个最小分格宽为w/n,高为h/m,可以算出每个画面的左上角处于几行几列,占了几行几列。以第i个画面为例进行说明:
左上角处于第几行(取整):row=layout[i][0]/n;
左上角处于第几列:column=layout[i][0]%n;
一共占了几行(取整):row_span=layout[i][1]/n-row+1;
一共占了几列:column_span=layout[i][1]%n-column+1;
因此第i个画面的左上角坐标为(w/n*colum,h/m*row),右下角坐标为(w/n*(colum+column_span),h/m*(row+row_span))。
通过此计算方式可以得到任意不同画面规格(比如8/13/32)的每个窗口的尺寸大小以及排列位置。
具体的,所述配置单元16将所述映射表保存到配置文件中,以用所述配置文件对显示界面进行配置。示例性的,通过调用各平台的接口,将配置文件应用到ui界面中,在后续对显示界面进行配置的过程中,也可以直接调用已经存储的配置文件对显示界面进行配置。
更进一步的,用户也可以直接调用已经存储的配置文件,进行自定义更改,比如将32画面更改为36画面,此时对应的映射表中需要新增4个映射关系(数组),且需要调整更改后的画面所对应的数组。
本发明实施例公开的显示界面配置系统10,首先,分割单元11将窗口分割成若干个分格,第一编号单元12对每一分格进行编号;然后,划分单元13对分格进行划分,以将窗口分割成若干个含有至少一个分格的画面,第二编号单元14对每一所述画面进行编号;最后,映射表构建单元15根据分格的编号和画面的编号构建映射表,配置单元16将映射表保存到配置文件中,以用配置文件对显示界面进行配置。
本发明公开的显示界面配置系统10适用于所有类型的画面布局的配置,而对于不规则的画面布局可以使用统一的代码逻辑适配,操作简单且适用性高,在在后续对显示界面进行配置的过程中,也可以直接调用已经存储的配置文件对显示界面进行配置,映射表可以保存到数据库或者文件中,方便实现用户自定义。
参见图4,图4是本发明实施例提供的一种显示界面配置设备20的结构框图。该实施例的显示界面配置设备20包括:处理器21、存储器22以及存储在所述存储器22中并可在所述处理器21上运行的计算机程序。所述处理器21执行所述计算机程序时实现上述显示界面配置方法实施例中的步骤,例如图1所示的步骤s1~s6。或者,所述处理器21执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如分割单元11。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器22中,并由所述处理器21执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述显示界面配置设备20中的执行过程。例如,所述计算机程序可以被分割成分割单元11、第一编号单元12、划分单元13、第二编号单元14、映射表构建单元15和配置单元16,各模块具体功能请参考上述实施例所述的显示界面配置系统10的具体工作过程,在此不再赘述。
所述显示界面配置设备20可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述显示界面配置设备20可包括,但不仅限于,处理器21、存储器22。本领域技术人员可以理解,所述示意图仅仅是显示界面配置设备20的示例,并不构成对显示界面配置设备20的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述显示界面配置设备20还可以包括输入输出设备、网络接入设备、总线等。
所述处理器21可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器21也可以是任何常规的处理器等,所述处理器21是所述显示界面配置设备20的控制中心,利用各种接口和线路连接整个显示界面配置设备20的各个部分。
所述存储器22可用于存储所述计算机程序和/或模块,所述处理器21通过运行或执行存储在所述存储器22内的计算机程序和/或模块,以及调用存储在存储器22内的数据,实现所述显示界面配置设备20的各种功能。所述存储器22可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述显示界面配置设备20集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器21执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。