发明内容
本发明的主要目的在于提供一种图片排版方法,旨在解决平行四边形的图像显示可能导致界面凌乱、给用户不好的交互体验的技术问题。
为实现上述目的,本发明提供一种图片排版方法,所述方法包括:
获取待处理图片,将所述待处理图片的可见区域处理为平行四边形,得到待显示图片;
将所述待显示图片分组对齐,得到初级对齐组;
将所述初级对齐组进行二次对齐,得到最终显示界面。
可选地,所述将所述待显示图片分组对齐的步骤包括:
获取所有所述待显示图片的位置属性信息,根据该位置属性信息确定所述待显示图片中具有上下相邻关系的第一图片组;
将所述第一图片组进行第一对齐处理。
可选地,所述将所述第一图片组进行第一对齐处理的步骤包括:
将第一图片组中各待显示图片所处控件的左边距对齐,分别获取各所述待显示图片所处控件的第一偏移量;
将各所述待显示图片所处控件以各自的第一偏移量偏移。
可选地,所述分别获取各所述待显示图片所处控件的第一偏移量的步骤包括:
分别获取各所述待显示图片所处控件到终端屏幕上边界的距离top和待显示图片倾斜角度delta;
根据计算第一偏移量的公式分别获取各所述待显示图片所处控件的第一偏移量x;
所述计算第一偏移量的公式为:x=tan(delta*(π/180))*top。
可选地,所述将所述初级对齐组进行二次对齐的步骤包括:
分别获取各初级对齐组所处控件的第二偏移量,将各初级对齐组所处控件以各自的第二偏移量偏移。
可选地,所述分别获取各初级对齐组所处控件的偏移量的步骤包括:
获取待显示图片倾斜角度delta、待显示图片高度height、各初级对齐组所处列数column,根据计算第二偏移量的公式分别获取各初级对齐组所处控件的第二偏移量y;
所述计算第二偏移量的公式为:y=tan(delta*(π/180))*height*column。
可选地,所述图片排版方法还包括:
获取预设布局规则,根据该预设布局规则获取虚拟显示窗口的数目、编号及位置信息;
根据获得的虚拟显示窗口大小、窗口编号及位置信息布局虚拟显示窗口。
可选地,所述将所述待显示图片分组对齐的步骤之前包括:
获取所述待显示图片的位置属性信息,根据该位置属性信息,获取所述待显示图片所处的虚拟显示窗口的窗口编号;
将所述待显示图片置于所述窗口编号对应的虚拟显示窗口显示。
此外,为实现上述目的,本发明还提供一种终端,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的图片排版程序,所述图片排版程序被所述处理器执行时实现如上述图片排版方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有图片排版程序,所述图片排版程序被处理器执行时实现如上述图片排版方法的步骤。
本发明实施例提出的一种图片排版方法,通过获取待处理图片,将所述待处理图片的可见区域处理为平行四边形,得到待显示图片,可使得图片以不规则形式展现,区别于传统的规则矩形形式展示待显示图片;将所述待显示图片分组对齐,得到初级对齐组,分组对齐可将具有某种相邻关系的待显示图片先进行对齐操作,并生成初级对齐组,之后进行二次对齐时,直接对该初级对齐组进行操作,可简化二次对齐操作,提升计算和排版效率;将所述初级对齐组进行二次对齐,得到最终显示界面,使得所有待显示图片中具有相邻关系的图片均可以对齐(上下对齐,左右对齐),使得非规则形状的待显示图片有序显示在终端屏幕上,解决了非规则形状的待显示图片显示的杂乱无章的问题,提升用户的UI(用户界面)体验。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
终端可以以各种形式来实施,并且搭载了安卓操作系统。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal DigitalAssistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置等移动终端,以及诸如网络电视、数字TV、台式计算机等固定终端。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、触控屏、红外感应装置(对应遥控器)、输入单元比如键盘(Keyboard)、遥控器,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口、蓝牙接口、探针接口、3G/4G/5G联网通信接口等)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括图片排版程序。在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1005中存储的图片排版程序,并执行以下操作:
获取待处理图片,将所述待处理图片的可见区域处理为平行四边形,得到待显示图片;
将所述待显示图片分组对齐,得到初级对齐组;
将所述初级对齐组进行二次对齐,得到最终显示界面。
所述将所述待显示图片分组对齐的步骤包括:
获取所有所述待显示图片的位置属性信息,根据该位置属性信息确定所述待显示图片中具有上下相邻关系的第一图片组;
将所述第一图片组进行第一对齐处理。
所述将所述第一图片组进行第一对齐处理的步骤包括:
将第一图片组中各待显示图片所处控件的左边距对齐,分别获取各所述待显示图片所处控件的第一偏移量;
将各所述待显示图片所处控件以各自的第一偏移量偏移。
所述分别获取各所述待显示图片所处控件的第一偏移量的步骤包括:
分别获取各所述待显示图片所处控件到终端屏幕上边界的距离top和待显示图片倾斜角度delta;
根据计算第一偏移量的公式分别获取各所述待显示图片所处控件的第一偏移量x;
所述计算第一偏移量的公式为:x=tan(delta*(π/180))*top。
所述将所述初级对齐组进行二次对齐的步骤包括:
分别获取各初级对齐组所处控件的第二偏移量,将各初级对齐组所处控件以各自的第二偏移量偏移。
所述分别获取各初级对齐组所处控件的偏移量的步骤包括:
获取待显示图片倾斜角度delta、待显示图片高度height、各初级对齐组所处列数column,根据计算第二偏移量的公式分别获取各初级对齐组所处控件的第二偏移量y;
所述计算第二偏移量的公式为:y=tan(delta*(π/180))*height*column。
进一步地,处理器1001可以调用存储器1005中存储的网络操作控制应用程序,还执行以下操作:
所述图片排版方法还包括:
获取预设布局规则,根据该预设布局规则获取虚拟显示窗口的数目、编号及位置信息;
根据获得的虚拟显示窗口大小、窗口编号及位置信息布局虚拟显示窗口。
进一步地,处理器1001可以调用存储器1005中存储的网络操作控制应用程序,还执行以下操作:
所述将所述待显示图片分组对齐的步骤之前包括:
获取所述待显示图片的位置属性信息,根据该位置属性信息,获取所述待显示图片所处的虚拟显示窗口的窗口编号;
将所述待显示图片置于所述窗口编号对应的虚拟显示窗口显示。
参照图2,在本发明图片排版方法第一实施例中,所述图片排版方法包括:
步骤S10,获取待处理图片,将所述待处理图片的可见区域处理为平行四边形,得到待显示图片;
用户将待处理图片(包括海报、照片等)上传至后台服务器后,终端从后台服务器获得待处理图片,可在下载待处理图片的同时或将所有待处理图片都下载后,执行本发明各实施例提出的图片排版步骤。
本发明实施例主要实现平行四边形(这一不规则形状的)图片的有序展示。待处理图片为完整的矩形图,此时,待处理图片的可见区域也为矩形,将所述待处理图片的可见区域处理为平行四边形,且所有待处理图片中平行四边形的倾斜角度相同(下文用弧度delta表示),主要处理方法为:将图片不可见的部分设置成透明像素,可见部分保持不变。当然,也可以将待处理图片裁剪成平行四边形的形状。待显示图片指本发明实施例的排版对象,所有经过平行四边形处理、需要显示的图片均可为待显示图片。
传统规则的图片(如电影海报)展示方式已经让用户产生视觉疲惫,不规则的图片显示风格可以为用户带来眼前一亮的感觉,而且可以让电视的主页在同类产品中焕然一新,提高用户的操作欲望。然而,在安卓系统中,通过将图片绘制在view控件(下文简称控件)上显示图片,而安卓系统只提供矩形控件,不经任何移动的多个相邻矩形控件间不相重叠,绘制在矩形控件上的非矩形的待显示图片与其所在的矩形控件显然不能完全重合,导致显示给消费者的界面凌乱、令人眼花缭乱(如图3)。因而需要执行排版操作。
步骤S11,将所述待显示图片分组对齐,得到初级对齐组;
本实施例中,在进行分组对齐前,需要确定分组,将具有某种相邻关系的待显示图片进行对齐。
在一种实施方式中,将上下相邻关系的待显示图片对齐。则步骤S11中,将所述待显示图片分组对齐的步骤包括:
步骤S111,获取所有所述待显示图片的位置属性信息,根据该位置属性信息确定所述待显示图片中具有上下相邻关系的第一图片组;
步骤S112,将所述第一图片组进行第一对齐处理。
待显示图片的位置属性信息指终端在获取待处理图片时获取的、与待显示图片所处位置以及待显示图片与其他待显示图片间的位置关系等相关的信息,终端在获得待显示图片的同时会获得其位置属性信息。
终端屏幕是以大小一致的虚拟显示窗格为单位显示图片的(如图4)。虚拟显示窗口的数量和大小均可由用户设置,进而确保用户可以根据显示需求设置显示界面。待显示图片大小和位置信息均属于位置属性信息,待显示图片大小(由虚拟显示窗格个数或者像素大小表示)和位置(所处虚拟显示窗格的位置)可以由用户设置,待显示图片可以占据一个虚拟显示窗格或者多个虚拟显示窗格。如图4所示为一种终端虚拟显示窗口的一种实施方式,因为终端以虚拟显示窗口为单位显示图片,因而,待显示图片的上下相邻或者左右相邻即虚拟显示窗口的上下相邻或者左右相邻。举例而言,待显示图片的位置属性信息可包含的信息有:位于2虚拟显示窗口(占据一个虚拟显示窗口),与位于1虚拟显示窗口的图片上下相邻,与位于4虚拟显示窗口的图片左右相邻。
在一个终端显示界面中有多个待显示图片,获取所有所述待显示图片的位置属性信息,将具有上下相邻关系的图片分为一组(若A与B相邻,B与C相邻,则A与C相邻),分别对每一组具有上下相邻关系的图片进行第一对齐处理。
这里的第一对齐处理主要是将待显示图片进行偏移,因为待显示图片是绘制在控件上进行显示的,所以在具体实现上,是通过将控件进行偏移来进行第一对齐处理。待显示图片为平行四边形且置于规则排列的虚拟显示窗口中,因而第一对齐处理只要进行左右平移即可。
本实施例通过对待处理图片中上下相邻的待显示图片归为一组,以组为单位进行初级对齐处理,得到初级对齐组,因为上下相邻关系的待显示图片进行第一对齐处理所需的偏移量计算较为简单,可节省前期或者后期计算偏移量的步骤和运行内存,提升运行效率。
具体地,所述步骤S112包括:
步骤S113,将第一图片组中各待显示图片所处控件的左边距对齐,分别获取各所述待显示图片所处控件的第一偏移量;
步骤S114,将各所述待显示图片所处控件以各自的第一偏移量偏移。
获取第一偏移量有多种实现方式。在一种实施方式中,可调用数据库中事先存储的偏移量,因为虚拟显示窗口位置固定,待显示图片也为形状确定的平行四边形,因而对应虚拟显示窗口位置的偏移量可事先计算获得,再存储于数据库,需要时可直接调用。在另一种实施方式中,可直接调用函数公式计算第一偏移量x,具体地,计算公式可以为:
x=tan(delta*(π/180))*top
在利用该公式计算前,需要获取相关参数,分别获取各所述待显示图片所处控件到终端屏幕上边界的距离top和待显示图片倾斜角度delta。在计算上下相邻图片的第一偏移量x时,各待显示图片的倾斜角度delta值相同,仅top值不同,top值为待显示图片所处控件间隔终端屏幕上边界(顶端)的距离,即在对上下相邻的待显示图片进行第一对齐处理时,利用上述计算第一偏移量的公式,各待显示图片所处控件的偏移量可以独立计算,而不受在第一图片组中位置的影响。简化了参数数量,简化了公式,简化了计算,节约内存资源,提升了计算效率,进而提升了整个排版效率。
在另一种实施方式中,将左右相邻的待显示图片进行分组对齐,分别获取各待显示图片的左右偏移量,将各待显示图片以所得的左右偏移量偏移。获取左右偏移量,也有多种实现方式。在一种实施方式中,可调用数据库中事先存储的偏移量,因为虚拟显示窗口位置固定,待显示图片也为形状确定的平行四边形,因而对应虚拟显示窗口位置的左右偏移量可事先计算获得,再存储于数据库,需要时可直接调用。在另一种实施方式中,可直接调用函数公式计算左右偏移量,具体地,计算公式可以为:
y=tan(delta*(π/180))*height*column
需获取待显示图片倾斜角度delta、待显示图片高度height、待显示图片所处列数column。
步骤S12,将所述初级对齐组进行二次对齐,得到最终显示界面。
在一种实施方式中,步骤S11中将所述待显示图片按照上下相邻关系进行分组后,以组为单位对齐,得到初级对齐组。二次对齐即对左右相邻的初级对齐组进行对齐操作(如图6)。
步骤S12中将所述初级对齐组进行二次对齐这一步骤具体包括:
步骤S121,分别获取各初级对齐组所处控件的第二偏移量,将各初级对齐组所处控件以各自的第二偏移量偏移。
获取各初级对齐组所处控件的第二偏移量,在一种实施方式中,可调用数据库事先存储的偏移量,在这种实施方式中,需确定各初级对齐组所处的虚拟显示窗口位置,因为虚拟显示窗口位置及形状大小固定,第一偏移量是可计算的或者可直接获得的,则第二偏移量也可计算获得。可以事先计算不同虚拟显示窗口编号的第二偏移量,制成一个第二偏移量映射表,在需要获得第二偏移量时,同时获得各初级对齐组的虚拟显示窗口编号(即虚拟显示窗口位置),根据虚拟显示窗口编号,查询所述第二偏移量映射表,即可获得对应的偏移量。
在一种实施方式中,可在获得待显示图片后,进行排版时,再进行计算,具体地,获取待显示图片倾斜角度delta、待显示图片高度height、各初级对齐组所处列数column,根据计算第二偏移量的公式分别获取各初级对齐组所处控件的第二偏移量y;
所述计算第二偏移量的公式为:y=tan(delta*(π/180))*height*column。
这一计算第二偏移量的公式,可独立计算,不依赖于初级对齐组左右是否有其他初级对齐组,计算简单、准确。
本实施例通过获得各初级对齐组所处控件的第二偏移量,将各初级对齐组所处控件以各自的第二偏移量偏移,在初级的分组对齐基础上进一步对齐,完成最终对齐操作。
在另一种实施方式中,步骤S11中将所述待显示图片按照左右相邻关系进行分组后,以组为单位对齐,得到初级对齐组,二次对齐即对上下相邻的初级对齐组进行对齐操作。相关步骤已在上文详述,此处不赘述。
本发明实施例通过获取待处理图片,将所述待处理图片的可见区域处理为平行四边形,得到待显示图片,可使得图片以不规则形式展现,区别于传统的规则矩形形式展示待显示图片;将所述待显示图片分组对齐,得到初级对齐组,分组对齐可将具有某种相邻关系的待显示图片先进行对齐操作,并生成初级对齐组,之后进行二次对齐时,直接对该初级对齐组进行操作,可简化二次对齐操作,提升计算和排版效率;将所述初级对齐组进行二次对齐,得到最终显示界面,使得所有待显示图片中具有相邻关系的图片均可以对齐(上下对齐,左右对齐),使得非规则形状的待显示图片有序显示在终端屏幕上,解决了非规则形状的待显示图片显示的杂乱无章的问题,提升用户的UI(用户界面)体验。
进一步地,基于上述实施例,在本发明图片排版方法的第二实施例中,所述图片排版方法还包括:
步骤S20,获取预设布局规则,根据该预设布局规则获取虚拟显示窗口的数目、编号及位置信息;
步骤S21,根据获得的虚拟显示窗口大小、窗口编号及位置信息布局虚拟显示窗口。
用户依据图片显示需求,可自主设置终端显示界面,设置终端显示界面虚拟显示窗口的布局,本实施例中的预设布局规则即用户设置的布局规则,具体包括一个终端界面中,虚拟显示窗口的数目,大小,编号布局及虚拟显示窗口在界面中的位置。
虚拟显示窗口的数目,根据屏幕大小有一定限制,可以为两行十一列,或者三行十二列,均可由用户设置。虚拟显示窗口的编号指每一个特定位置的虚拟显示窗口均有一个编号,待显示图片会附带这一编号信息,以便终端确定待显示图片应位于哪一虚拟显示窗口。虚拟显示窗口的位置信息,指虚拟显示窗口位于一个界面的位置信息,如位于终端界面的右边界,上边界等。终端在确定上述虚拟显示窗口的布局信息后,根据上述信息进行布局,为图片显示做准备。
本实施例中,由用户确定预设布局规则,用户可以确定在一个界面中,每一行、每一列可显示的图片数量,进而决定图片排版的基础,用户对图片显示效果有更大的自主性,可以适应用户多样化的需求。
进一步地,基于上述实施例,所述步骤S10中将所述待显示图片分组对齐的步骤之前包括:
步骤S22,获取所述待显示图片的位置属性信息,根据该位置属性信息,获取所述待显示图片所处的虚拟显示窗口的窗口编号;
步骤S23,将所述待显示图片置于所述窗口编号对应的虚拟显示窗口显示。
终端在获取待显示图片后,读取该待显示图片的位置属性信息,确定该图片所处虚拟显示窗格,该待显示图片的位置属性信息中可以包含该待显示图片所处虚拟显示窗格编号(如图4),如待显示图片对应着编号为10的虚拟显示窗格,则将该待显示图片置于编号为10的虚拟显示窗格位置,因而待显示图片所处虚拟显示窗格位置不依照上传顺序而定,而可以由用户设置待显示图片在终端屏幕中的位置;此外,在一种可选的实施例中,待显示图片对应着多个编号,例如待显示图片对应着图4中编号1、2、3、4四个虚拟显示窗格,则该待显示图片占据四个虚拟显示窗格。用户可以设置待显示图片对应的虚拟显示窗格编号,且每一待显示图片可以对应多个虚拟显示窗格,从而用户可以确定待显示图片的位置和大小,用户有更大的排版自主性,更能满足有投放宣传广告、广告位置的选择等需求。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有图片排版程序,所述图片排版程序被处理器执行时实现如上述实施例所述步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是固定终端,如物联网智能设备,包括智能空调、智能电灯、智能电源、智能路由器等智能家居;也可以是移动终端,包括智能手机、可穿戴的联网AR/VR装置、智能音箱、自动驾驶汽车等诸多联网设备)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。