首页> 中国专利> 一种位图拉伸方法、位图拉伸装置及电子设备

一种位图拉伸方法、位图拉伸装置及电子设备

摘要

本申请公开了一种位图拉伸方法、装置、电子设备及计算机可读存储介质。其中,该方法包括:获取待显示位图的布局信息,布局信息包括像素点信息及尺寸信息;基于布局信息,生成待显示位图的矩阵,其中,矩阵的尺寸根据尺寸信息而确定,矩阵中各个元素的值根据像素点信息而确定;根据尺寸信息及目标尺寸信息,计算待显示位图的横向拉伸倍数及纵向拉伸倍数;根据横向拉伸倍数及纵向拉伸倍数,对矩阵的元素进行扩充操作以调整矩阵的尺寸;基于调整后的矩阵生成拉伸后的待显示位图。本申请可使得拉伸后的位图仍然保持良好的显示效果,减少出现显示模糊或错误的现象。

著录项

  • 公开/公告号CN113096045A

    专利类型发明专利

  • 公开/公告日2021-07-09

    原文格式PDF

  • 申请/专利权人 深圳市元征科技股份有限公司;

    申请/专利号CN202110401000.2

  • 发明设计人 刘均;李河金;

    申请日2021-04-14

  • 分类号G06T5/00(20060101);

  • 代理机构44414 深圳中一联合知识产权代理有限公司;

  • 代理人肖遥

  • 地址 518000 广东省深圳市龙岗区坂田街道五和大道北4012号元征工业园

  • 入库时间 2023-06-19 11:45:49

说明书

技术领域

本申请属于位图处理技术领域,尤其涉及一种位图拉伸方法、位图拉伸装置、电子设备及计算机可读存储介质。

背景技术

在软件开发中,经常需要用到位图来对软件进行装饰,形成软件自身独特的风格。在此过程中,可能需要对位图进行拉伸,以适应显示界面。然而,由于位图的先天属性,拉伸后的位图会失真,导致所显示的位图出现模糊或错位等不美观的现象。

发明内容

本申请提供了一种位图拉伸方法、位图拉伸装置、电子设备及计算机可读存储介质,可使得拉伸后的位图仍然保持良好的显示效果,减少出现显示模糊或错误现象。

第一方面,本申请提供了一种位图拉伸方法,包括:

获取待显示位图的布局信息,上述布局信息包括像素点信息及尺寸信息;

基于上述布局信息,生成上述待显示位图的矩阵,其中,上述矩阵的尺寸根据上述尺寸信息而确定,上述矩阵中各个元素的值根据上述像素点信息而确定;

根据上述尺寸信息及目标尺寸信息,计算上述待显示位图的横向拉伸倍数及纵向拉伸倍数;

根据上述横向拉伸倍数及纵向拉伸倍数,通过对上述矩阵的元素的复制实现矩阵扩充操作,以调整上述矩阵的尺寸;

基于调整后的上述矩阵生成拉伸后的上述待显示位图。

可选地,所述基于所述布局信息,生成所述待显示位图的矩阵,包括:

根据所述布局信息,创建与所述待显示位图具有相同尺寸的矩阵,其中,所述矩阵中的各个元素分别与所述待显示位图中的各个像素点一一对应,且互为对应的像素点及元素拥有相同的位置信息。

可选地,所述尺寸信息包括原始高度及原始宽度,所述目标尺寸信息包括目标宽度及目标高度,所述根据所述尺寸信息及目标尺寸信息,计算所述待显示位图的横向拉伸倍数及纵向拉伸倍数,包括:

计算目标宽度与原始宽度的宽度比值作为横向拉伸倍数;

计算目标高度与原始高度的高度比值作为纵向拉伸倍数。

可选地,所述根据所述横向拉伸倍数及纵向拉伸倍数,通过对所述矩阵的元素的复制实现矩阵扩充操作,以调整所述矩阵的尺寸,包括:

根据所述横向拉伸倍数及纵向拉伸倍数,在所述矩阵中选择待复制元素;

通过复制所述待复制元素实现矩阵扩充操作,以调整所述矩阵的尺寸。

可选地,所述待复制元素包括横向待复制元素及纵向待复制元素,所述根据所述横向拉伸倍数及纵向拉伸倍数,在所述矩阵中选择待复制元素,包括:

根据所述横向拉伸倍数,在所述矩阵中确定横向待复制元素;

根据所述纵向拉伸倍数,在所述矩阵中确定纵向待复制元素;

相应地,所述通过复制所述待复制元素实现矩阵扩充操作,以调整所述矩阵的尺寸,包括:

针对每个横向待复制元素,在所述横向待复制元素的指定横向方位以指定横向倍数复制所述横向待复制元素,以调整所述矩阵的宽度,其中,所述指定横向倍数根据所述横向拉伸倍数而确定;

针对每个纵向待复制元素,在所述纵向待复制元素的指定纵向方位以指定纵向倍数复制所述纵向待复制元素,以调整所述矩阵的高度,其中,所述指定纵向倍数根据所述纵向拉伸倍数而确定。

可选地,所述基于调整后的所述矩阵生成拉伸后的所述待显示位图,包括:

创建与调整后的所述矩阵具有相同尺寸的空位图;

遍历调整后的所述矩阵的各个元素,分别将各个元素的值还原为对应的像素值;

基于各个元素在所述矩阵中的位置及各个元素所对应的像素值,对所述空位图进行填充,得到拉伸后的所述待显示位图。

可选地,在所述根据所述尺寸信息及目标尺寸信息,计算所述待显示位图的横向拉伸倍数及纵向拉伸倍数之前,还包括:

确定目标界面的显示模式,其中,所述目标界面为准备显示所述待显示位图的界面;

若所述目标界面为窗口模式,则基于所述目标界面的尺寸确定所述目标尺寸信息;

若所述目标界面为全屏模式,则基于预设的默认尺寸确定所述目标尺寸信息。

第二方面,本申请提供了一种位图拉伸装置,包括:

获取单元,用于获取待显示位图的布局信息,上述布局信息包括像素点信息及尺寸信息;

第一生成单元,用于基于上述布局信息,生成上述待显示位图的矩阵,其中,上述矩阵的尺寸根据上述尺寸信息而确定,上述矩阵中各个元素的值根据上述像素点信息而确定;

计算单元,用于根据上述尺寸信息及目标尺寸信息,计算上述待显示位图的横向拉伸倍数及纵向拉伸倍数;

调整单元,用于根据上述横向拉伸倍数及纵向拉伸倍数,通过对上述矩阵的元素的复制实现矩阵扩充操作,以调整上述矩阵的尺寸;

第二生成单元,用于基于调整后的上述矩阵生成拉伸后的上述待显示位图。

可选地,上述第一生成单元,具体用于根据上述布局信息,创建与上述待显示位图具有相同尺寸的矩阵,其中,上述矩阵中的各个元素分别与上述待显示位图中的各个像素点一一对应,且互为对应的像素点及元素拥有相同的位置信息。

可选地,上述尺寸信息包括原始高度及原始宽度,上述目标尺寸信息包括目标宽度及目标高度,上述计算单元,包括:

第一计算子单元,用于计算目标宽度与原始宽度的宽度比值作为横向拉伸倍数;

第二计算子单元,用于计算目标高度与原始高度的高度比值作为纵向拉伸倍数。

可选地,上述调整单元,包括:

元素选择子单元,用于根据上述横向拉伸倍数及纵向拉伸倍数,在上述矩阵中选择待复制元素;

元素复制子单元,用于通过复制上述待复制元素实现矩阵扩充操作,以调整上述矩阵的尺寸。

可选地,上述待复制元素包括横向待复制元素及纵向待复制元素;上述元素选择子单元,包括:

横向待复制元素确定子单元,用于根据上述横向拉伸倍数,在上述矩阵中确定横向待复制元素;

纵向待复制元素确定子单元,用于根据上述纵向拉伸倍数,在上述矩阵中确定纵向待复制元素;

相应地,上述元素复制子单元,包括:

元素横向复制子单元,用于针对每个横向待复制元素,在上述横向待复制元素的指定横向方位以指定横向倍数复制上述横向待复制元素,以调整上述矩阵的宽度,其中,上述指定横向倍数根据上述横向拉伸倍数而确定;

元素纵向复制子单元,用于针对每个纵向待复制元素,在上述纵向待复制元素的指定纵向方位以指定纵向倍数复制上述纵向待复制元素,以调整上述矩阵的高度,其中,上述指定纵向倍数根据上述纵向拉伸倍数而确定。

可选地,上述第二生成单元,包括:

位图创建子单元,用于创建与调整后的上述矩阵具有相同尺寸的空位图;

像素值还原子单元,用于遍历调整后的上述矩阵的各个元素,分别将各个元素的值还原为对应的像素值;

位图填充子单元,用于基于各个元素在上述矩阵中的位置及各个元素所对应的像素值,对上述空位图进行填充,得到拉伸后的上述待显示位图。

可选地,上述位图拉伸装置,还包括:

显示模式确定单元,用于确定目标界面的显示模式,其中,上述目标界面为准备显示上述待显示位图的界面;

目标尺寸信息确定单元,用于若上述目标界面为窗口模式,则基于上述目标界面的尺寸确定上述目标尺寸信息,若上述目标界面为全屏模式,则基于预设的默认尺寸确定上述目标尺寸信息。

第三方面,本申请提供了一种电子设备,上述电子设备包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面的方法的步骤。

第四方面,本申请提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面的方法的步骤。

第五方面,本申请提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面的方法的步骤。

本申请与现有技术相比存在的有益效果是:首先获取待显示位图的布局信息,上述布局信息包括像素点信息及尺寸信息,然后基于上述布局信息,生成上述待显示位图的矩阵,其中,上述矩阵的尺寸根据上述尺寸信息而确定,上述矩阵中各个元素的值根据上述像素点信息而确定,接着根据上述尺寸信息及目标尺寸信息,计算上述待显示位图的横向拉伸倍数及纵向拉伸倍数,并根据上述横向拉伸倍数及纵向拉伸倍数,通过对上述矩阵的元素的复制实现矩阵扩充操作,以调整上述矩阵的尺寸,最后基于调整后的上述矩阵生成拉伸后的上述待显示位图。上述过程中,先是对待显示位图所对应的矩阵中的元素进行复制,使得该矩阵与目标尺寸信息相匹配,然后再基于扩充后的矩阵还原得到新的位图,实质上实现了待显示位图中的像素点的复制,不仅可使得新生成的位图与目标尺寸信息相匹配,而且可避免出现模糊或错位等不美观的现象。可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的位图拉伸方法的实现流程示意图;

图2是本申请实施例提供的待显示位图及其矩阵的示意图;

图3是本申请实施例提供的矩阵横向拉伸的一个示例图;

图4是本申请实施例提供的矩阵横向拉伸的另一个示例图;

图5是本申请实施例提供的矩阵横向拉伸的又一个示例图;

图6是本申请实施例提供的矩阵纵向拉伸的一个示例图;

图7是本申请实施例提供的矩阵纵向拉伸的另一个示例图;

图8是本申请实施例提供的矩阵纵向拉伸的又一个示例图;

图9是本申请实施例提供的矩阵扩充操作的一个示例图;

图10是本申请实施例提供的矩阵扩充操作的另一个示例图;

图11是本申请实施例提供的位图拉伸装置的结构框图;

图12是本申请实施例提供的电子设备的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

在软件开发中,经常需要用到位图来对软件进行装饰,形成软件自身独特的风格,例如,采用位图来作为软件的背景图,采用位图来作为软件的启动画面,或者采用位图来绘制虚拟按钮等。在采用位图作为软件的背景图时,常常存在软件的显示界面大小超过位图的分辨率大小的情况,这时就需要对位图进行拉伸,以适应显示界面。然而,由于位图的先天属性,拉伸后的位图会失真,导致所显示的位图出现失真或错位等不美观的现象。基于此,本申请实施例提出了一种位图拉伸方法、位图拉伸装置、电子设备及计算机可读存储介质,可使得拉伸后的位图仍然保持良好的显示效果,减少出现显示失真或错误现象。为了说明本申请实施例所提出的技术方案,下面通过具体实施例来进行说明。

下面对本申请实施例所提出的位图拉伸方法作出说明。请参阅图1,该位图拉伸方法包括:

步骤101,获取待显示位图的布局信息。

在本申请实施例中,软件的各个显示界面已预先指定好对应的位图。当某一显示界面接收到显示指令时,就可将该显示界面确定为目标界面,且该显示界面所对应的位图即为待显示位图。通常来说,各个显示界面所对应的位图被存储于预设的资源文件中。电子设备可从该资源文件中加载该待显示位图,并获取该待显示位图的布局信息。其中,布局信息包括有像素点信息及尺寸信息,该像素点信息包括该待显示位图中各个像素点的像素值,该尺寸信息用于指示该待显示位图的尺寸,且该尺寸以像素为单位。

在一些实施例中,电子设备可以先获取待显示位图的宽度及高度,例如宽度为295像素,高度为425像素,以此得到待显示位图的尺寸信息;然后基于待显示位图的宽度及高度,依据指定顺序遍历待显示位图中的各个像素,例如,以从左往右,从上往下的顺序对待显示位图中的像素进行遍历,读取出各个像素点的像素值,以此得到待显示位图的像素点信息。需要注意的是,上述指定顺序可以由用户自行进行设定,此处不作限定。具体地,考虑到用于屏幕显示的位图所采用的颜色编码通常为RGB模式,因而,上述读取各个像素点的像素值的操作,实际上为:读取各个像素点在R通道的像素值、在G通道的像素值及在B通道的像素值。

步骤102,基于上述布局信息,生成上述待显示位图的矩阵。

在本申请实施例中,电子设备可基于待显示位图的布局信息来生成一个矩阵,其中,该矩阵的尺寸可根据待显示位图的尺寸信息而确定,该矩阵中各个元素的值可根据待显示位图的像素点信息而确定。具体地,该矩阵的尺寸与待显示位图的尺寸相同,也即,矩阵的宽度(矩阵中每行的元素个数)等同于待显示位图的宽度(待显示位图中每行的像素点个数),矩阵的高度(矩阵中每列的元素个数)等同于待显示位图的高度(待显示位图中每列的像素点个数)。并且,该矩阵中的各个元素分别与待显示位图中的各个像素点一一对应,且互为对应的像素点及元素拥有相同的位置信息。

在一些实施例中,每个元素的值可以为32比特,通过16进制进行表示。仅作为示例,第0~7位存储的可以是对应的像素点在R通道的像素值(记作第一字节),第8~15位存储的可以是对应的像素点在G通道的像素值(记作第二字节),第16~23位存储的可以是对应的像素点在B通道的像素值(记作第三字节),第24~31位为空白数据(记作空白字节)。也即,每个元素的值可以通过4字节的16进制数值进行表示。

举例来说,请参阅图2,宽度为8像素,高度为10像素的待显示位图I所对应的为10×8(10行8列)的矩阵K。该待显示位图I的第j行第i列的像素点(也即待显示位图I中坐标为(i,j)的像素点)与矩阵K中第j行第i列的元素(也即k

步骤103,根据上述尺寸信息及目标尺寸信息,计算上述待显示位图的横向拉伸倍数及纵向拉伸倍数。

在本申请实施例中,目标尺寸信息用于表示目标界面(也即准备显示上述待显示位图的显示界面)的尺寸,该尺寸可同样以像素为单位。通常来说,该目标尺寸信息需要根据目标界面的显示模式而确定:若该目标界面为窗口模式,则由于窗口模式下的目标界面可被用户随意控制拉伸,因而需要基于该目标界面的实时尺寸来确定该目标尺寸信息;反之,若该目标界面为全屏模式,则由于屏幕大小是固定的,因而可直接基于预先设置好的默认尺寸来确定该目标尺寸信息。

在一些实施例中,电子设备所获得的待显示位图的尺寸信息包括原始高度(记作height)及原始宽度(记作width),所获得的目标尺寸信息包括目标宽度(记作new_width)及目标高度(记作new_height),因而,可计算出目标宽度与原始宽度的宽度比值(也即new_width/width)作为横向拉伸倍数,并计算出目标高度与原始高度的高度比值(也即new_hight/height)作为纵向拉伸倍数。

步骤104,根据上述横向拉伸倍数及纵向拉伸倍数,通过对上述矩阵的元素的复制实现矩阵扩充操作,以调整上述矩阵的尺寸。

在本申请实施例中,所计算得到的拉伸倍数(包括横向拉伸倍数及纵向拉伸倍数)很可能出现小数的情况,在这种情况下,就需要进行局部的元素复制操作。因而,电子设备可先根据横向拉伸倍数及纵向拉伸倍数,在矩阵中选择待复制元素,然后再去通过复制这些待复制元素实现矩阵扩充操作,以调整矩阵的尺寸。下面针对横向拉伸及纵向拉伸分别作出说明:

对于横向拉伸来说,电子设备会先根据横向拉伸倍数,在矩阵中确定横向待复制元素,然后再针对每个横向待复制元素,在该横向待复制元素的指定横向方位以指定横向倍数复制该横向待复制元素,以调整上述矩阵的宽度,其中,该指定横向倍数根据该横向拉伸倍数而确定。仅作为示例,该指定横向方位可以是左方。

在一些实施例中,可以将横向拉伸倍数(new_width/width)划分为三种类型,分别为大于1的整数,大于1且小于2的的小数及大于2的小数。

其中,若横向拉伸倍数为大于1的整数,则矩阵中的所有元素都可被确定为横向待复制元素。在每个横向待复制元素的左方,以指定横向倍数对该横向待复制元素进行复制,该指定横向倍数为(new_width/width)-1。也即,在每个横向待复制元的左方,都新增(new_width/width)-1个对应的横向待复制元素。请参阅图3,以2×2的矩阵为基础,假定横向拉伸倍数为3,图3给出了横向拉伸的一个示例。其中,倾斜加粗的字母表示复制的元素(也即新增的元素)。

其中,若横向拉伸倍数为大于1且小于2的的小数,则将矩阵的每行中指定比例的元素确定为横向待复制元素,该指定比例为横向拉伸倍数的小数部分,也即指定比例

其中,若横向拉伸倍数为大于2的的小数,则本次横向拉伸操作共涉及到两次复制:第一次复制,是将矩阵中的所有元素都确定为横向待复制元素;在本次所确定的每个横向待复制元素的左方,以指定横向倍数对该横向待复制元素进行复制,本次的指定横向倍数为

对于纵向拉伸来说,电子设备会先根据纵向拉伸倍数,在矩阵中确定纵向待复制元素,然后再针对每个纵向待复制元素,在该纵向待复制元素的指定纵向方位以指定纵向倍数复制该纵向待复制元素,以调整上述矩阵的高度,其中,该指定纵向倍数根据该纵向拉伸倍数而确定。仅作为示例,该指定纵向方位可以是下方。

在一些实施例中,可以将纵向拉伸倍数(new_height/height)划分为三种类型,分别为大于1的整数,大于1且小于2的的小数及大于2的小数。

其中,若纵向拉伸倍数为大于1的整数,则矩阵中的所有元素都可被确定为纵向待复制元素。在每个纵向待复制元素的下方,以指定纵向倍数对该纵向待复制元素进行复制,该指定纵向倍数为(new_height/height)-1。也即,在每个纵向待复制元的下方,都新增(new_height/height)-1个对应的纵向待复制元素。请参阅图6,以2×2的矩阵为基础,假定纵向拉伸倍数为3,图6给出了纵向拉伸的一个示例。其中,倾斜加粗的字母表示复制的元素(也即新增的元素)。

其中,若纵向拉伸倍数为大于1且小于2的的小数,则将矩阵的每行中指定比例的元素确定为纵向待复制元素,该指定比例为纵向拉伸倍数的小数部分,也即指定比例

其中,若纵向拉伸倍数为大于2的的小数,则本次纵向拉伸操作共涉及到两次复制:第一次复制,是将矩阵中的所有元素都确定为纵向待复制元素;在本次所确定的每个纵向待复制元素的下方,以本次的指定纵向倍数对该纵向待复制元素进行复制,该本次的指定纵向倍数为

在一些实施例中,电子设备可选择依次对矩阵的横向及纵向进行拉伸;也即,先完成对矩阵的横向拉伸,再在完成横向拉伸的矩阵的基础上,进行纵向拉伸;或者先完成对矩阵的纵向拉伸,再在完成纵向拉伸的矩阵的基础上,进行横向拉伸。请参阅图9,以2×2的矩阵为基础,假定横向拉伸倍数为3,纵向拉伸倍数为2.5,图9示出了矩阵扩充过程的一个示例。或者,电子设备也可选择同时对矩阵的横向及纵向进行拉伸,这种情况下,可能出现待复制元素的斜线方位(左下方)上,存在空白位置(也即空白元素),此时只需要将待复制元素再次复制到对应的空白位置处即可。请参阅图10,以2×2的矩阵为基础,假定横向拉伸倍数为3,纵向拉伸倍数为2.5,图10示出了矩阵扩充过程的另一个示例。图9及图10中,倾斜加粗的字母表示复制的元素(也即新增的元素)。图10中的矩形框表示空白元素。

需要注意的是,由于待显示位图是预先保存在指定资源中的,也即,对于电子设备来说,待显示位图是已知的,电子设备可预先对待显示位图进行分析,以确定该待显示位图中的哪些像素点更适合复制。通常认为,位图中趋于纯色的区域的像素点更适合复制。在分析过后,可为待显示位图的每个像素点分配复制权重。复制权重越大,表明该像素点更适合复制;复制权重越小,表明该像素点更不适合复制。由此,在需要以指定比例在矩阵的每行/每列上选择待复制元素时,可根据每行/每列上各个像素点的复制权重来进行选择,使得复制权重大的像素点可优先被选定为待复制元素,进一步保障拉伸后的待显示位图不出现模糊或错位的现象。

步骤105,基于调整后的上述矩阵生成拉伸后的上述待显示位图。

在本申请实施例中,步骤105实际上可看作是步骤102的逆向操作:步骤102为根据位图生成矩阵;步骤105为根据矩阵还原得到位图。然而需要注意的是,步骤105中的矩阵已经过了调整,其尺寸发生了变化。电子设备会先创建与调整后的上述矩阵具有相同尺寸的空位图(也即,该空位图的宽度为new_width,高度为new_height)。然后再遍历调整后的矩阵的各个元素,分别将各个元素的值还原为对应的像素值,其还原公式为:对于调整后的矩阵K’中的元素k

由上可见,通过本申请实施例,首先获取待显示位图的布局信息,上述布局信息包括像素点信息及尺寸信息,然后基于上述布局信息,生成上述待显示位图的矩阵,其中,上述矩阵的尺寸根据上述尺寸信息而确定,上述矩阵中各个元素的值根据上述像素点信息而确定,接着根据上述尺寸信息及目标尺寸信息,计算上述待显示位图的横向拉伸倍数及纵向拉伸倍数,并根据上述横向拉伸倍数及纵向拉伸倍数,通过对上述矩阵的元素的复制实现矩阵扩充操作,以调整上述矩阵的尺寸,最后基于调整后的上述矩阵生成拉伸后的上述待显示位图。上述过程中,先是对待显示位图所对应的矩阵中的元素进行复制,使得该矩阵与目标尺寸信息相匹配,然后再基于扩充后的矩阵还原得到新的位图,实质上实现了待显示位图中的像素点的复制,不仅可使得新生成的位图与目标尺寸信息相匹配,而且可避免出现模糊或错位等不美观的现象。

对应于上文所提供的位图拉伸方法,本申请实施例还提供了一种位图拉伸装置。如图11所示,该位图拉伸装置1100包括:

获取单元1101,用于获取待显示位图的布局信息,上述布局信息包括像素点信息及尺寸信息;

第一生成单元1102,用于基于上述布局信息,生成上述待显示位图的矩阵,其中,上述矩阵的尺寸根据上述尺寸信息而确定,上述矩阵中各个元素的值根据上述像素点信息而确定;

计算单元1103,用于根据上述尺寸信息及目标尺寸信息,计算上述待显示位图的横向拉伸倍数及纵向拉伸倍数;

调整单元1104,用于根据上述横向拉伸倍数及纵向拉伸倍数,通过对上述矩阵的元素的复制实现矩阵扩充操作,以调整上述矩阵的尺寸;

第二生成单元1105,用于基于调整后的上述矩阵生成拉伸后的上述待显示位图。

可选地,上述第一生成单元1102,具体用于根据上述布局信息,创建与上述待显示位图具有相同尺寸的矩阵,其中,上述矩阵中的各个元素分别与上述待显示位图中的各个像素点一一对应,且互为对应的像素点及元素拥有相同的位置信息。

可选地,上述尺寸信息包括原始高度及原始宽度,上述目标尺寸信息包括目标宽度及目标高度,上述计算单元1103,包括:

第一计算子单元,用于计算目标宽度与原始宽度的宽度比值作为横向拉伸倍数;

第二计算子单元,用于计算目标高度与原始高度的高度比值作为纵向拉伸倍数。

可选地,上述调整单元1104,包括:

元素选择子单元,用于根据上述横向拉伸倍数及纵向拉伸倍数,在上述矩阵中选择待复制元素;

元素复制子单元,用于通过复制上述待复制元素实现矩阵扩充操作,以调整上述矩阵的尺寸。

可选地,上述待复制元素包括横向待复制元素及纵向待复制元素;上述元素选择子单元,包括:

横向待复制元素确定子单元,用于根据上述横向拉伸倍数,在上述矩阵中确定横向待复制元素;

纵向待复制元素确定子单元,用于根据上述纵向拉伸倍数,在上述矩阵中确定纵向待复制元素;

相应地,上述元素复制子单元,包括:

元素横向复制子单元,用于针对每个横向待复制元素,在上述横向待复制元素的指定横向方位以指定横向倍数复制上述横向待复制元素,以调整上述矩阵的宽度,其中,上述指定横向倍数根据上述横向拉伸倍数而确定;

元素纵向复制子单元,用于针对每个纵向待复制元素,在上述纵向待复制元素的指定纵向方位以指定纵向倍数复制上述纵向待复制元素,以调整上述矩阵的高度,其中,上述指定纵向倍数根据上述纵向拉伸倍数而确定。

可选地,上述第二生成单元1105,包括:

位图创建子单元,用于创建与调整后的上述矩阵具有相同尺寸的空位图;

像素值还原子单元,用于遍历调整后的上述矩阵的各个元素,分别将各个元素的值还原为对应的像素值;

位图填充子单元,用于基于各个元素在上述矩阵中的位置及各个元素所对应的像素值,对上述空位图进行填充,得到拉伸后的上述待显示位图。

可选地,上述位图拉伸装置1100,还包括:

显示模式确定单元,用于确定目标界面的显示模式,其中,上述目标界面为准备显示上述待显示位图的界面;

目标尺寸信息确定单元,用于若上述目标界面为窗口模式,则基于上述目标界面的尺寸确定上述目标尺寸信息,若上述目标界面为全屏模式,则基于预设的默认尺寸确定上述目标尺寸信息。

由上可见,通过本申请实施例,首先获取待显示位图的布局信息,上述布局信息包括像素点信息及尺寸信息,然后基于上述布局信息,生成上述待显示位图的矩阵,其中,上述矩阵的尺寸根据上述尺寸信息而确定,上述矩阵中各个元素的值根据上述像素点信息而确定,接着根据上述尺寸信息及目标尺寸信息,计算上述待显示位图的横向拉伸倍数及纵向拉伸倍数,并根据上述横向拉伸倍数及纵向拉伸倍数,通过对上述矩阵的元素的复制实现矩阵扩充操作,以调整上述矩阵的尺寸,最后基于调整后的上述矩阵生成拉伸后的上述待显示位图。上述过程中,先是对待显示位图所对应的矩阵中的元素进行复制,使得该矩阵与目标尺寸信息相匹配,然后再基于扩充后的矩阵还原得到新的位图,实质上实现了待显示位图中的像素点的复制,不仅可使得新生成的位图与目标尺寸信息相匹配,而且可避免出现模糊或错位等不美观的现象。

对应于上文所提供的位图拉伸方法,本申请实施例还提供了一种电子设备。请参阅图12,本申请实施例中的电子设备12包括:存储器1201,一个或多个处理器1202(图12中仅示出一个)及存储在存储器1201上并可在处理器上运行的计算机程序。其中:存储器1201用于存储软件程序以及单元,处理器1202通过运行存储在存储器1201的软件程序以及单元,从而执行各种功能应用以及诊断,以获取上述预设事件对应的资源。具体地,处理器1202通过运行存储在存储器1201的上述计算机程序时实现以下步骤:

获取待显示位图的布局信息,上述布局信息包括像素点信息及尺寸信息;

基于上述布局信息,生成上述待显示位图的矩阵,其中,上述矩阵的尺寸根据上述尺寸信息而确定,上述矩阵中各个元素的值根据上述像素点信息而确定;

根据上述尺寸信息及目标尺寸信息,计算上述待显示位图的横向拉伸倍数及纵向拉伸倍数;

根据上述横向拉伸倍数及纵向拉伸倍数,通过对上述矩阵的元素的复制实现矩阵扩充操作,以调整上述矩阵的尺寸;

基于调整后的上述矩阵生成拉伸后的上述待显示位图。

假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,上述基于上述布局信息,生成上述待显示位图的矩阵,包括:

根据上述布局信息,创建与上述待显示位图具有相同尺寸的矩阵,其中,上述矩阵中的各个元素分别与上述待显示位图中的各个像素点一一对应,且互为对应的像素点及元素拥有相同的位置信息。

在上述第一种可能的实施方式作为基础而提供的第三种可能的实施方式中,上述尺寸信息包括原始高度及原始宽度,上述目标尺寸信息包括目标宽度及目标高度,上述根据上述尺寸信息及目标尺寸信息,计算上述待显示位图的横向拉伸倍数及纵向拉伸倍数,包括:

计算目标宽度与原始宽度的宽度比值作为横向拉伸倍数;

计算目标高度与原始高度的高度比值作为纵向拉伸倍数。

在上述第一种可能的实施方式作为基础而提供的第四种可能的实施方式中,上述根据上述横向拉伸倍数及纵向拉伸倍数,通过对上述矩阵的元素的复制实现矩阵扩充操作,以调整上述矩阵的尺寸,包括:

根据上述横向拉伸倍数及纵向拉伸倍数,在上述矩阵中选择待复制元素;

通过复制上述待复制元素实现矩阵扩充操作,以调整上述矩阵的尺寸。

在上述第四种可能的实施方式作为基础而提供的第五种可能的实施方式中,上述待复制元素包括横向待复制元素及纵向待复制元素,上述根据上述横向拉伸倍数及纵向拉伸倍数,在上述矩阵中选择待复制元素,包括:

根据上述横向拉伸倍数,在上述矩阵中确定横向待复制元素;

根据上述纵向拉伸倍数,在上述矩阵中确定纵向待复制元素;

相应地,上述通过复制上述待复制元素实现矩阵扩充操作,以调整上述矩阵的尺寸,包括:

针对每个横向待复制元素,在上述横向待复制元素的指定横向方位以指定横向倍数复制上述横向待复制元素,以调整上述矩阵的宽度,其中,上述指定横向倍数根据上述横向拉伸倍数而确定;

针对每个纵向待复制元素,在上述纵向待复制元素的指定纵向方位以指定纵向倍数复制上述纵向待复制元素,以调整上述矩阵的高度,其中,上述指定纵向倍数根据上述纵向拉伸倍数而确定。

在上述第一种可能的实施方式作为基础而提供的第六种可能的实施方式中,上述基于调整后的上述矩阵生成拉伸后的上述待显示位图,包括:

创建与调整后的上述矩阵具有相同尺寸的空位图;

遍历调整后的上述矩阵的各个元素,分别将各个元素的值还原为对应的像素值;

基于各个元素在上述矩阵中的位置及各个元素所对应的像素值,对上述空位图进行填充,得到拉伸后的上述待显示位图。

在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础,或者上述三种可能的实施方式作为基础,或者上述第四种可能的实施方式作为基础,或者上述第五种可能的实施方式作为基础,或者上述第六种可能的实施方式作为基础而提供的第七种可能的实施方式中,在上述根据上述尺寸信息及目标尺寸信息,计算上述待显示位图的横向拉伸倍数及纵向拉伸倍数之前,处理器1202通过运行存储在存储器1201的上述计算机程序时还实现以下步骤:

确定目标界面的显示模式,其中,上述目标界面为准备显示上述待显示位图的界面;

若上述目标界面为窗口模式,则基于上述目标界面的尺寸确定上述目标尺寸信息;

若上述目标界面为全屏模式,则基于预设的默认尺寸确定上述目标尺寸信息。

应当理解,在本申请实施例中,所称处理器1202可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器1201可以包括只读存储器和随机存取存储器,并向处理器1202提供指令和数据。存储器1201的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器1201还可以存储设备类别的信息。

由上可见,通过本申请实施例,首先获取待显示位图的布局信息,上述布局信息包括像素点信息及尺寸信息,然后基于上述布局信息,生成上述待显示位图的矩阵,其中,上述矩阵的尺寸根据上述尺寸信息而确定,上述矩阵中各个元素的值根据上述像素点信息而确定,接着根据上述尺寸信息及目标尺寸信息,计算上述待显示位图的横向拉伸倍数及纵向拉伸倍数,并根据上述横向拉伸倍数及纵向拉伸倍数,通过对上述矩阵的元素的复制实现矩阵扩充操作,以调整上述矩阵的尺寸,最后基于调整后的上述矩阵生成拉伸后的上述待显示位图。上述过程中,先是对待显示位图所对应的矩阵中的元素进行复制,使得该矩阵与目标尺寸信息相匹配,然后再基于扩充后的矩阵还原得到新的位图,实质上实现了待显示位图中的像素点的复制,不仅可使得新生成的位图与目标尺寸信息相匹配,而且可避免出现模糊或错位等不美观的现象。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。

以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号