图片拼接处理方法、装置、终端设备和存储介质与流程

文档序号:20267116发布日期:2020-04-03 18:32阅读:123来源:国知局
图片拼接处理方法、装置、终端设备和存储介质与流程

本申请涉及计算机用于技术领域,尤其涉及一种图片拼接处理方法、装置、终端设备和存储介质。



背景技术:

图片移动在游戏中是较为常见,比如跑酷类游戏中,通过背景图片的滚动达到角色在前进的视觉效果。图片移动通常是指多张图片向着同一方向、以相同的速度移动。

在实际应用场景中,为了实现更加流畅、缓慢的移动效果,图片在移动时通常是按照浮点数进行移动的,在计算图片位置时,浮点数计算精度难免出现误差,从而导致相邻的图片之间出现缝隙,影响图片的显示效果。



技术实现要素:

本申请提出一种图片拼接处理方法、装置、终端设备和存储介质,用于解决相关技术中因浮点数计算精度出现误差,导致相邻图片之间出现缝隙,图片显示效果差的技术问题。

本申请一方面实施例提出了一种图片拼接处理方法,包括:

获取待显示的第一图片,在所述第一图片边缘生成第一像素延展区域;

根据所述第一图片的第一位置和所述第一图片的原始尺寸确定第二位置,所述第二位置为与所述第一图片相邻的待显示的第二图片的位置;

分别在所述第一位置和所述第二位置显示所述第一图片和所述第二图片,其中,所述第一像素延展区域和所述第二图片交叠或者拼接。

本申请实施例的图片拼接处理方法,通过获取待显示的第一图片,在第一图片边缘生成第一像素延展区域,根据第一图片的第一位置和第一图片的原始尺寸确定第二位置,第二位置为与第一图片相邻的待显示的第二图片的位置,分别在第一位置和第二位置显示第一图片和第二图片,其中,第一像素延展区域和第二图片交叠或者拼接。由此,通过在第一图片边缘生成像素延展区域,从而在显示第一图片和第二图片时,无论第一位置和第二位置的计算是否出现误差,均能保持第一像素延展区域和第二图片交叠或拼接,而不会出现缝隙,从而避免了因浮点数计算精度出现误差导致图片之间出现缝隙的现象,提高了图片显示效果。

作为本申请一方面实施例的另一种可选的实现方式,

所述在所述第一图片边缘生成第一像素延展区域,包括:

获取所述第一图片上的目标边缘对应的目标像素值,其中,所述目标边缘至少包括与所述第二图片相邻的边缘;

根据预设的延展像素长度和所述目标像素值,对所述目标边缘进行像素延展,生成第一像素延展区域。

作为本申请一方面实施例的另一种可选的实现方式,

在所述分别在所述第一位置和所述第二位置显示所述第一图片和所述第二图片之前,还包括:

获取所述第二图片;

根据预设的延展像素长度,在所述第二图片边缘生成第二像素延展区域,以分别在所述第一位置和所述第二位置显示所述第一图片和所述第二图片时,所述第一像素延展区域和所述第二像素延展区域交叠或者拼接。

作为本申请一方面实施例的另一种可选的实现方式,所述根据所述第一图片的第一位置和所述第一图片的原始尺寸确定第二位置,包括:

对所述第一图片的第一位置、所述第一图片的原始尺寸,以及所述延展像素长度进行求和运算,确定所述第二位置。

作为本申请一方面实施例的另一种可选的实现方式,所述方法还包括:

根据用户的操作更新所述第一图片的第一位置,根据更新后的第一位置和第一图片的原始尺寸确定更新后的第二位置;

分别在更新后的第一位置和更新后的第二位置显示第一图片和第二图片,其中,所述第一像素延展区域和所述第二图片交叠或者拼接。

作为本申请一方面实施例的另一种可选的实现方式,所述方法还包括:

在当前显示的图片中排在尾部的第三图片边缘生成第一像素延展区域;

根据所述第三图片的第三位置和所述第三图片的原始尺寸,确定与所述第三图片相邻的目标位置;

在所述目标位置显示第四图片,其中,所述第四图片为所述当前显示的图片中排在头部的图片,所述第三图片的第一像素延展区域和所述第四图片交叠或者拼接。

本申请另一方面实施例提出了一种图片拼接处理装置,包括:

第一生成模块,用于获取待显示的第一图片,在所述第一图片边缘生成第一像素延展区域;

确定模块,用于根据所述第一图片的第一位置和所述第一图片的原始尺寸确定第二位置,所述第二位置为与所述第一图片相邻的待显示的第二图片的位置;

显示模块,用于分别在所述第一位置和所述第二位置显示所述第一图片和所述第二图片,其中,所述第一像素延展区域和所述第二图片交叠或者拼接。

本申请实施例的图片拼接处理装置,通过获取待显示的第一图片,在第一图片边缘生成第一像素延展区域,根据第一图片的第一位置和第一图片的原始尺寸确定第二位置,第二位置为与第一图片相邻的待显示的第二图片的位置,分别在第一位置和第二位置显示第一图片和第二图片,其中,第一像素延展区域和第二图片交叠或者拼接。由此,通过在第一图片边缘生成像素延展区域,从而在显示第一图片和第二图片时,无论第一位置和第二位置的计算是否出现误差,均能保持第一像素延展区域和第二图片交叠或拼接,而不会出现缝隙,从而避免了因浮点数计算精度出现误差导致图片之间出现缝隙的现象,提高了图片显示效果。

作为本申请另一方面实施例的另一种可选的实现方式,所述第一生成模块,具体用于:

获取所述第一图片上的目标边缘对应的目标像素值,其中,所述目标边缘至少包括与所述第二图片相邻的边缘;

根据预设的延展像素长度和所述目标像素值,对所述目标边缘进行像素延展,生成第一像素延展区域。

作为本申请另一方面实施例的另一种可选的实现方式,所述装置还包括:

获取模块,用于获取所述第二图片;

第二生成模块,用于根据预设的延展像素长度,在所述第二图片边缘生成第二像素延展区域,以分别在所述第一位置和所述第二位置显示所述第一图片和所述第二图片时,所述第一像素延展区域和所述第二像素延展区域交叠或者拼接。

作为本申请另一方面实施例的另一种可选的实现方式,所述确定模块,具体用于:

对所述第一图片的第一位置、所述第一图片的原始尺寸,以及所述延展像素长度进行求和运算,确定所述第二位置。

作为本申请另一方面实施例的另一种可选的实现方式,所述装置还包括:

位置更新模块,用于根据用户的操作更新所述第一图片的第一位置,根据更新后的第一位置和第一图片的原始尺寸确定更新后的第二位置;

所述显示模块,还用于:

分别在更新后的第一位置和更新后的第二位置显示第一图片和第二图片,其中,所述第一像素延展区域和所述第二图片交叠或者拼接。

作为本申请另一方面实施例的另一种可选的实现方式,所述第一生成模块,还用于:

在当前显示的图片中排在尾部的第三图片边缘生成第一像素延展区域;

所述确定模块,还用于:

根据所述第三图片的第三位置和所述第三图片的原始尺寸,确定与所述第三图片相邻的目标位置;

所述显示模块,还用于:在所述目标位置显示第四图片,其中,所述第四图片为所述当前显示的图片中排在头部的图片,所述第三图片的第一像素延展区域和所述第四图片交叠或者拼接。

本申请另一方面实施例提出了一种终端设备,包括处理器和存储器;

其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如上述实施例所述的图片拼接处理方法。

本申请另一方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所述的图片拼接处理方法。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1(a)为现有技术中正常移动情况下相邻图片的显示效果示意图;

图1(b)为现有技术中在浮点数计算出现误差的情况下相邻图片的显示效果示例图;

图2为本申请一实施例提供的图片拼接处理方法的流程示意图;

图3(a)为本申请实施例中第一图片的第一像素延展区域和第二图片交叠的效果示例图;

图3(b)为本申请实施例中第一图片的第一像素延展区域和第二图片拼接的效果示例图;

图4为本申请另一实施例提供的图片拼接处理方法的流程示意图;

图5(a)为本申请一实施例中对第一图片的目标边缘进行像素延展的示例图一;

图5(b)为本申请一实施例中对第一图片的目标边缘进行像素延展的示例图二;

图6为本申请又一实施例提供的图片拼接处理方法的流程示意图;

图7(a)为本申请实施例中根据预设的延展像素长度在第一图片和第二图片的相邻图片拼接位置进行像素延展的示例图;

图7(b)为本申请实施例中根据预设的延展像素长度在第一图片和第二图片的四个边缘进行像素延展的示例图;

图8(a)为本申请实施例中第一像素延展区域和第二像素延展区域交叠的效果示例图;

图8(b)为本申请实施例中第一像素延展区域和第二像素延展区域拼接的效果示例图;

图9为本申请再一实施例提供的图片拼接处理方法的流程示意图;

图10为本申请还一实施例提供的图片拼接处理方法的流程示意图;

图11为本申请一实施例提供的图片拼接处理装置的结构示意图;

图12为本申请另一实施例提供的图片拼接处理装置的结构示意图;

图13为本申请又一实施例提供的图片拼接处理装置的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

下面参考附图描述本申请实施例的图片拼接处理方法、装置、终端设备和存储介质。

在游戏等图片位置发生移动的应用场景中,图片位置是以浮点数进行更新的,以实现更加流畅、准确的移动效果。然而,由于浮点数计算精度难免会出现误差,导致图片位置发生移动时图片位置的计算出现误差,使得图片位置更新后与前一张图片之间出现缝隙。比如,假设两张相同尺寸的图片a和b,图片a的图片位置是10.1,宽度是5,若要在图片a的图片位置相邻显示图片b,则正常情况下,相对于显示界面的原点而言,图片b的图片位置为:10.1+5=15.1,则图片b紧贴着图片a,显示效果如图1(a)所示。但如果浮点数计算时出现误差,计算得到的图片b的图片位置可能是15.1000001,使得图片b与图片a之间出现缝隙,显示效果如图1(b)所示。

针对图片移动后存在缝隙的问题,相关技术中,采用如下两种方案来解决这一问题:

(1)基于引擎,通过调用应用程序接口(applicationprograminterface,api)来解决图片移动时存在的缝隙问题。比如,在cocos2d-x中,可以通过调用[ccsprite.texturesetaliastexparameters]这一api接口来解决缝隙问题。但这种方案需要依赖于特定的引擎,不适用于实际的应用场景。

(2)按照整数移动图片,控制图片移动的单位为int型(即整数型),使得在图片移动的位置计算过程中不会产生误差,达到避免图片之间因误差而产生缝隙的目的。然而,这种方案无法实现缓慢的移动效果,灵活性差。

针对现有技术存在的问题,本申请公开了一种图片拼接处理方法、装置、终端设备和存储介质,通过在第一图片边缘生成第一像素延展区域,使第一图片的第一像素延展区域与第二图片交叠或拼接,而不会出现缝隙,从而避免因浮点数计算精度出现误差导致图片之间出现缝隙的现象,提高图片显示效果,解决相关技术中因浮点数计算精度出现误差,导致相邻图片之间出现缝隙,图片显示效果差的技术问题。并且,本申请提供的方法不需要依赖于特定的引擎,适用性强,且仍采用浮点数进行移动,能够实现流畅的移动效果,灵活性好。

本申请实施例的图片拼接处理方法,可以由本申请提供的图片拼接处理装置执行,上述装置可配置于终端设备中,以提高图片移动时的显示效果。其中,终端设备可以是智能手机、平板电脑等电子设备。

图2为本申请一实施例提供的图片拼接处理方法的流程示意图。

如图2所示,该图片拼接处理方法可以包括以下步骤:

步骤101,获取待显示的第一图片,在第一图片边缘生成第一像素延展区域。

实际应用中,通常会遇到多张图片同时移动的场景,比如在游戏中,通过多张图片拼接得到游戏背景图片,在游戏运行时,多张图片以相同的速度和方向同时移动,以达到游戏中角色在移动的效果。

本实施例中,获取的第一图片可以是待显示的多张图片中的任意一张图片,比如,获取的第一图片是某一游戏场景所包含的多张图片中的第一张图片。对于获取的第一图片,可以在第一图片边缘生成第一像素延展区域。

为了不影响图片的显示效果,在生成第一像素延展区域时,可以根据第一图片的各个边缘处的像素值,确定第一像素延展区域中各像素的像素值。也就是说,可以通过复制第一图片的各个边缘中各个像素的像素值的方式,确定第一像素延展区域中各对应像素的像素值。

需要说明的是,各对应像素,指的是第一像素延展区域中与第一图片的边缘像素处于同一行或同一列的像素。

步骤102,根据第一图片的第一位置和第一图片的原始尺寸确定第二位置,第二位置为与第一图片相邻的待显示的第二图片的位置。

其中,第一图片的第一位置可以根据第一图片的原始尺寸和显示第一图片的显示屏的(0,0)点的位置确定,或者,也可以根据显示屏中显示于第一图片前面的相邻图片的图片位置和图片尺寸确定,具体确定方式可以根据第一图片的显示顺序确定,本申请对此不作限制。

通常情况下,图片的锚点设置在图片的中心,图片在显示屏上的位置利用锚点在显示屏上的位置表示。当然,也可以将图片的其他位置,比如将图片的左上角作为图片的锚点。本申请实施例中,以图片的锚点设置在图片的中心作为示例,而不能作为对本申请的限制。下面以图片的中心作为锚点,举例说明第一图片的第一位置的不同确定方式。

作为一种示例,若第一图片是待显示的多张图片中的第一张图片,第一图片之前无相邻图片,则第一图片的第一位置可以根据显示屏的尺寸和第一图片的原始尺寸确定。例如,假设当前的显示屏的(0,0)点的位置在显示屏的左上角,第一图片的原始尺寸为100*100,则可以确定第一图片的第一位置为(50,50)。

作为一种示例,若待显示的第一图片之前有相邻图片,则根据相邻图片的图片位置和图片尺寸确定第一图片的第一位置。例如,假设相邻图片在显示屏中的位置为(60,50),相邻图片的图片尺寸为100*100,第一图片在相邻图片的右侧,且第一图片和相邻图片的尺寸相同,则可以确定第一图片的第一位置为(160,50)。

通常情况下,为了避免两张图片拼接时出现错位现象,以及为了方便设计和开发人员工作,两张相邻的图片通常设计为相同的尺寸。本实施例中,第一图片和第二图片的尺寸相同。

对于一张已知的图片,其尺寸也是已知的,因此,本实施例中,获取了第一图片后,可以直接获取到第一图片的原始尺寸。第一图片的原始尺寸比如可以为100(宽度)*100(高度)。从而,本实施例中,根据第一图片的第一位置和第一图片的原始尺寸,可以确定与第一图片相邻的待显示的第二图片的第二位置。

作为一种示例,当第一图片和第二图片的显示方向为横向显示,且第一图片显示在第二图片的左侧,显示屏的(0,0)点在左上角时,可以确定第二位置=第一位置+第一图片的宽度。

作为一种示例,当第一图片和第二图片的显示方向为纵向显示,且第一图片显示在第二图片的上侧,显示屏的(0,0)点在左上角时,可以确定第二位置=第一位置+第一图片的高度。

步骤103,分别在第一位置和第二位置显示第一图片和第二图片,其中,第一像素延展区域和第二图片交叠或者拼接。

本实施例中,确定了待显示的第二图片的第二位置之后,即可将第一图片显示在第一位置上,以及将第二图片显示在第二位置上,显示第一图片和第二图片之后,第一图片的第一像素延展区域和第二图片交叠或者拼接。以在第一图片上与第二图片相邻的边缘生成第一像素延展区域为例,图3(a)为本申请实施例中第一图片的第一像素延展区域和第二图片交叠的效果示例图,图3(b)为本申请实施例中第一图片的第一像素延展区域和第二图片拼接的效果示例图。其中,阴影区域为第一像素延展区域,在图3(a)中,第一像素延展区域被部分第二图片覆盖。从图3(a)和图3(b)可以看出,相邻的第一图片和第二图片之间不会出现缝隙,提高了显示效果。

能够理解的是,移动的图片以预设速度和预设方向进行移动。对于移动中的多张图片,其位置是实时更新的,后一张图片的位置需要根据前一张图片的位置确定。为了保证后一张图片移动后与相邻的前一张图片之间不出现缝隙,在本申请实施例中,在前一张图片(即第一图片)边缘生成第一像素延展区域,而在确定相邻图片(即第二图片)的第二位置时,根据前一张图片的第一位置和原始尺寸确定第二位置,并在第二位置上显示相邻的第二图片,从而使得相邻的第二图片与第一图片的第一像素延展区域交叠或拼接,避免了图片移动过程中在两张图片之间出现缝隙。

作为一种示例,当多张图片的尺寸相同时,对于多张图片中的第一张图片,其更新位置可以根据当前位置以及预设速度来确定,对于第二张图片,其更新位置可以通过对第一张图片的更新位置、第一张图片的尺寸(宽度或高度)进行求和确定,同样地,对于第三张图片,其更新位置可以通过对第二张图片的更新位置、第二张图片的尺寸进行求和计算得到,以此类推,可以确定多张图片中每一张图片的更新位置。之后,可以根据预设速度和预设方向按照与每张图片对应的更新位置同时移动多张图片,将多张图片移动至对应的更新位置,从而使得移动之后的相邻图片两张图片中,前一张图片的第一像素延展区域和第二张图片交叠或拼接,交叠和拼接的显示效果分别如图3(a)和如图3(b)所示。

本实施例的图片拼接处理方法,通过获取待显示的第一图片,在第一图片边缘生成第一像素延展区域,根据第一图片的第一位置和第一图片的原始尺寸确定第二位置,第二位置为与第一图片相邻的待显示的第二图片的位置,分别在第一位置和第二位置显示第一图片和第二图片,其中,第一像素延展区域和第二图片交叠或者拼接。由此,通过在第一图片边缘生成像素延展区域,从而在显示第一图片和第二图片时,无论第一位置和第二位置的计算是否出现误差,均能保持第一像素延展区域和第二图片交叠或拼接,而不会出现缝隙,从而避免了因浮点数计算精度出现误差导致图片之间出现缝隙的现象,提高了图片显示效果。

对于相邻的两张图片a和b,假设图片b向着图片a移动,则在显示时,先显示图片a再显示图片b,基于后显示的图片的显示层级优于先显示的图片的显示层级的特点,图片b的显示层级优于图片a,若图片b与图片a之间存在重叠区域,则对于重叠部分图片b会覆盖图片a的内容。基于此,本申请实施例中,可以仅在图片a的边缘外侧生成第一像素延展区域。当多张图片同时显示时,对于任意相邻的两张图片,可以仅在先显示的图片边缘生成第一像素延展区域。本申请实施例中,第一像素延展区域可以根据第一图片边缘的像素进行像素延展得到,下面结合附图4进行详细说明。

图4为本申请另一实施例提供的图片拼接处理方法的流程示意图。如图4所示,在如图2所示实施例的基础上,步骤101可以包括以下步骤:

步骤201,获取第一图片上的目标边缘对应的目标像素值,其中,目标边缘至少包括与第二图片相邻的边缘。

本申请实施例中,目标边缘至少包括与第二图片相邻的边缘,目标边缘可以根据第一图片和第二图片的相对位置确定。

比如,假设第一图片位于第二图片的左侧,第一图片的右侧边缘与第二图片的左侧边缘相邻,则目标边缘包括第一图片的右侧边缘,除右侧边缘外,还可以包括第一图片的左侧边缘、上侧边缘和下侧边缘中的至少一个。

又比如,假设第一图片位于第二图片的上方,第一图片的下侧边缘和第二图片的上侧边缘相邻,则目标边缘包括第一图片的下侧边缘,除下侧边缘外,还可以包括第一图片的左侧边缘、右侧边缘和上侧边缘中的至少一个。

本实施例中,确定了第一图片的目标边缘之后,可以获取目标边缘对应的目标像素值。

例如,假设确定第一图片的目标边缘为右侧边缘,则可以获取右侧边缘上的一列像素对应的像素值作为目标像素值。

又例如,假设确定第一图片的目标边缘为四个边缘,则可以获取四个边缘上各像素的像素值作为目标像素值。

步骤202,根据预设的延展像素长度和目标像素值,对目标边缘进行像素延展,生成第一像素延展区域。

本申请实施例中,延展像素长度可以是预先设定的,比如,设置延展像素长度为1像素、2像素等,根据预设的延展像素长度,可以生成第一像素延展区域。

本实施例中,确定了目标边缘和目标像素值之后,可以根据预设的延展像素长度和目标像素值,对目标边缘进行像素延展,生成第一像素延展区域。

作为一种示例,假设目标边缘为第一图片的右侧边缘,则将右侧边缘上各个像素的像素值确定为目标像素值,并根据目标像素值和预设的延展像素长度,对目标边缘进行像素延展,得到第一像素延展区域。图5(a)为本申请一实施例中对第一图片的目标边缘进行像素延展的示例图一。图5(a)中,每个方格表示一个像素,最右侧一列的像素为目标像素,其中,c即表示一个目标像素,各目标像素对应的像素值为目标像素值。假设预设的延展像素长度为1,则对目标边缘(即右侧边缘)进行像素延展,如图5(a)所示,在图片的右侧边缘外侧增加一个像素宽度的第一像素延展区域(如图5(a)中虚线部分所示),则对于第一像素延展区域,该第一像素延展区域中各像素的像素值根据右侧边缘上对应像素的像素值确定,比如,对于第一像素延展区域中的像素c1,其与目标像素c对应,则c1的像素值与目标像素c的像素值相同。

作为一种示例,假设目标边缘为第一图片的四个边缘,则将第一图片上、下、左、右侧每个边缘上各像素的像素值确定为目标像素值,并根据目标像素值和预设的延展像素长度,对目标边缘进行像素延展,得到第一像素延展区域。图5(b)为本申请一实施例中对第一图片的目标边缘进行像素延展的示例图二,图5(b)中,每个方格表示一个像素,标号为1的各字母表示图片的边缘像素。假设预设的延展像素长度为2,该图片为矩形图片,对该图片的四个边缘均进行像素延展,则如图5(b)所示,在图片的四个边缘外各增加两个像素宽度的像素延展区域(如图5(b)中虚线部分所示),则对于右侧边缘对应的像素延展区域,该像素延展区域中各像素的像素值根据右侧边缘上各像素的像素值确定,比如,对于该像素延展区域中的像素a2和a3,其像素值与边缘像素a1的像素值相同,像素a2和像素a3即为像素延展区域中与边缘像素a1对应的像素。其他像素延展区域中各像素的像素值也可以采用相同的方式生成。比如,对于图片的上侧边缘对应的像素延展区域,该像素延展区域中各像素的像素值根据上侧边缘上各像素的像素值确定,例如,对于该像素延展区域中的像素b2和b3,其像素值与图片的边缘像素b1的像素值相同,像素b2和像素b3即为像素延展区域中与边缘像素b1对应的像素。

本实施例的图片拼接处理方法,通过获取第一图片上的目标边缘对应的目标像素值,目标边缘至少包括与第二图片相邻的边缘,根据预设的延展像素长度和目标像素值,对目标边缘进行像素延展,生成第一像素延展区域,实现了对第一图片上目标边缘进行像素延展,并根据目标边缘的目标像素值进行像素延展,有利于在图片显示时,无论各相邻图片之间是交叠还是拼接,都不影响图片的显示效果,从而在解决缝隙问题的同时保证显示效果不受影响。

本申请实施例中,除了对第一图片进行像素延展外,还可以对与之相邻的第二图片进行像素延展,其中,对第一图片和第二图片进行像素延展时,均按照预设的延展像素长度进行像素延展。下面结合附图6进行详细说明。

图6为本申请又一实施例提供的图片拼接处理方法的流程示意图。如图6所示,该图片拼接处理方法,可以包括以下步骤:

步骤301,获取待显示的第一图片,根据预设的延展像素长度,在第一图片边缘生成第一像素延展区域。

步骤302,对第一图片的第一位置、第一图片的原始尺寸,以及延展像素长度进行求和运算,确定第二位置。

作为一种示例,当第一图片和第二图片的显示方向为横向显示,且第一图片显示在第二图片的左侧,显示屏的(0,0)点在左上角时,可以确定第二位置=第一位置+第一图片的宽度+延展像素长度。

作为一种示例,当第一图片和第二图片的显示方向为纵向显示,且第一图片显示在第二图片的上侧,显示屏的(0,0)点在左上角时,可以确定第二位置=第一位置+第一图片的高度+延展像素长度。

步骤303,获取第二图片。

步骤304,根据预设的延展像素长度,在第二图片边缘生成第二像素延展区域。

其中,预设的延展像素长度,与生成第一像素延展区域时的延展像素长度相同,也就是说,生成的第二像素延展区域的长度,等于生成的第一像素延展区域的长度。

本申请实施例中,根据预设的延展像素长度,在第二图片的边缘生成第二像素延展区域时,可以采用与生成第一像素延展区域相同的方式。比如,可以获取第二图片的目标边缘对应的目标像素值,根据目标像素值对目标边缘进行像素延展得到第二像素延展区域。其中,目标边缘至少包括与第一图片相邻的边缘。

下面以根据预设的延展像素长度,分别在第一图片和第二图片的相邻图片拼接位置进行像素延展,生成对应的第一像素延展区域和第二像素延展区域为例进行详细说明。

应当理解的是,相邻图片拼接位置是指任意相邻的两张图片进行拼接时相邻的位置。比如,对于多张图片,依次相邻的为图片a、图片b、图片c和图片d,则图片a的右侧边缘和图片b的左侧边缘为相邻图片a和b拼接位置,图片b的右侧边缘和图片c的左侧边缘为相邻图片b和c的拼接位置,图片c的右侧边缘和图片d的左侧边缘为相邻图片c和d的拼接位置,当这多张图片循环滚动时,图片a需要拼接在图片d之后,则图片d的右侧边缘和图片a的左侧边缘为相邻图片d和a的拼接位置。

在任意相邻的两张图片的相邻图片拼接位置生成像素延展区域时,相邻两张图片对应的像素延展区域可以分别称为第一像素延展区域和第二像素延展区域。比如,对于相邻的图片a和图片b,在图片a的右侧边缘生成的像素延展区域可以称为第一像素延展区域,对应的,在图片b的左侧边缘生成的像素延展区域可以称为第二像素延展区域。当然,也可以将生成的与图片a的右侧边缘对应的像素延展区域可以称为第二像素延展区域,与图片b的左侧边缘对应的像素延展区域可以称为第一像素延展区域,本申请对此不作限制。

图7(a)为本申请实施例中根据预设的延展像素长度在第一图片和第二图片的相邻图片拼接位置进行像素延展的示例图。如图7(a)所示,第一图片的右侧边缘和第二图片的左侧边缘为相邻图片拼接位置,则在第一图片的右侧边缘进行像素延展,生成第一像素延展区域,以及在第二图片的左侧边缘进行像素延展,生成第二像素延展区域,第一像素延展区域和第二像素延展区域如图7(a)中的阴影区域所示。

通过仅在第一图片和第二图片的相邻图片拼接位置进行像素延展,不仅有利于在显示第一图片和第二图片时,无论第一像素延展区域和第二像素延展区域之间是交叠还是拼接,都不影响图片的显示效果,从而在解决缝隙问题的同时保证显示效果不受影响,还能降低像素延展的数据处理量,降低处理负担。

图7(b)为本申请实施例中根据预设的延展像素长度在第一图片和第二图片的四个边缘进行像素延展的示例图。如图7(b)所示,在第一图片的四个边缘均进行像素延展,生成第一像素延展区域,以及,在第二图片的四个边缘均进行像素延展,生成第二像素延展区域,其中,生成第一像素延展区域和第二像素延展区域的方式,可以参见前述实施例中有关图5(b)的相关描述,此处不再赘述。

需要说明的是,本实施例中,步骤301-步骤302和步骤303-步骤304的执行步骤不分先后,两者可以先后执行,也可以同步执行,本申请仅以步骤303-步骤304在步骤301-步骤302之后执行作为示例来解释说明本申请,而不能作为对本申请的限制。

步骤305,分别在第一位置和第二位置显示第一图片和第二图片,其中,第一像素延展区域和第二像素延展区域交叠或者拼接。

本实施例中,确定了第二位置后,可以分别在第一图片显示在第一位置上,以及将第二图片显示在第二位置上,显示第一图片和第二图片之后,第一图片的第一像素延展区域和第二图片的第二像素延展区域交叠(无计算误差时)或者拼接(出现计算误差时)。以在第一图片和第二图片的各个边缘均进行像素延展为例,图8(a)为本申请实施例中第一像素延展区域和第二像素延展区域交叠的效果示例图,图8(b)为本申请实施例中第一像素延展区域和第二像素延展区域拼接的效果示例图。其中,第一图片上四个边缘的阴影区域为第一像素延展区域,第二图片上四个边缘的阴影区域为第二像素延展区域。从图8(a)和图8(b)可以看出,相邻的第一图片和第二图片之间不会出现缝隙,提高了显示效果。

本实施例的图片拼接处理方法,通过根据预设的延展像素长度,在第一图片边缘生成第一像素延展区域,在第二图片边缘生成第二像素延展区域,对第一图片的第一位置、第一图片的原始尺寸,以及延展像素长度进行求和运算,确定第二位置,分别在第一位置和第二位置显示第一图片和第二图片,其中第一像素延展区域和第二像素延展区域交叠或者拼接,由此,使得第一图片和第二图片之间不会因为计算误差而出现缝隙,提高了图片的显示效果。

在一些游戏场景中,通常由多张图片拼接得到游戏背景图片,在游戏运行时,多张图片以相同的速度和方向同时移动,以达到游戏中角色在用户的操控下进行移动的效果。也就是说,在一些场景中,相互拼接的多张图片是移动的,图片的位置是实时变化的。从而,在本申请实施例一种可能的实现方式中,可以根据用户的操作来更新图片的位置。

图9为本申请再一实施例提供的图片拼接处理方法的流程示意图。如图9所示,在前述实施例的基础上,本申请的图片拼接处理方法还可以包括以下步骤:

步骤401,根据用户的操作更新第一图片的第一位置,根据更新后的第一位置和第一图片的原始尺寸确定更新后的第二位置。

其中,用户的操作比如可以是左移、右移、上移、下移、跳动等操作。

本实施例中,根据用户的操作,可以更新第一图片的第一位置。比如,当用户的操作为右移操作时,若要实现角色的右移,则作为背景图片的第一图片相对地需要向左移动,假设显示屏的左上角为(0,0)点,则第一图片的第一位置中,其横坐标随着用户的操作逐渐减小,横坐标的减小量可以根据预设的第一图片的移动速度确定。通过逐渐减小第一位置中的横坐标,实现第一位置的实时更新,使得第一图片逐渐向左移动,达到角色随用户的右移操作向右移动的目的。

接着,根据用户的操作确定了更新后的第一位置后,可以进一步根据更新后的第一位置和第一图片的原始尺寸,确定更新后的第二位置。

作为一种示例,当第一图片向左移动,显示屏的(0,0)点在左上角时,可以确定更新后的第二位置=更新后的第一位置+第一图片的宽度。

能够理解的是,当第一图片和第二图片均进行像素延展时,更新后的第二位置可以根据更新后的第一位置、第一图片的原始尺寸和预设的延展像素长度确定。

步骤402,分别在更新后的第一位置和更新后的第二位置显示第一图片和第二图片,其中,第一像素延展区域和第二图片交叠或者拼接。

本实施例中,当确定了更新后的第一位置和更新后的第二位置后,可以将第一图片显示的更新后的第一位置上,并将第二图片显示在更新后的第二位置上,以在视觉效果上实现角色随用户的操作移动。

本实施例的图片拼接处理方法,通过根据用户的操作更新第一图片的第一位置,根据更新后的第一位置和第一图片的原始尺寸确定更新后的第二位置,分别在更新后的第一位置和更新后的第二位置显示第一图片和第二图片,其中第一像素延展区域和第二图片交叠或者拼接,由此,实现了在图片位置不断改变的场景中,无论是否出现计算误差,第一图片与第二图片之间均不会出现缝隙,提高了显示效果。

当多张图片交替移动以达到滚动的效果时,多张图片中排在头部的图片需要移动至最后,与尾部的图片进行拼接,需要保证拼接后的图片之间也不会出现缝隙。从而,在本申请实施例一种可能的实现方式中,如图10所示,在前述实施例的基础上,本申请的图片拼接处理方法还可以包括以下步骤:

步骤501,在当前显示的图片中排在尾部的第三图片边缘生成第一像素延展区域。

作为一种示例,可以实时检测当前显示的多张图片中,当前排在头部的图片是否已经完全移动至屏幕范围之外,若是,则在当前显示的图片中排在尾部的第三图片边缘生成第一像素延展区域。

其中,在第三图片边缘生成第一像素延展区域的方式,可以参见前述实施例中在第一图片边缘生成第一像素延展区域的过程,此处不再赘述。

步骤502,根据第三图片的第三位置和第三图片的原始尺寸,确定与第三图片相邻的目标位置。

需要说明的是,确定目标位置的方式可以参见前述实施例中确定第二位置的方式。

作为一种示例,当图片横向显示时,目标位置=第三位置+第三图片的原始尺寸。

需要说明的是,当对相拼接的两张图片均进行像素延展时,确定目标位置时,需要考虑延展像素长度,即,目标位置=第三位置+第三图片的原始尺寸+延展像素长度。

步骤503,在目标位置显示第四图片,其中,第四图片为当前显示的图片中排在头部的图片,第三图片的第一像素延展区域和第四图片交叠或者拼接。

本实施例中,可以将当前显示的图片中,排在尾部的图片称为第三图片,将排在头部的图片称为第四图片,在确定了目标位置后,将第四图片显示的目标位置上,在显示后,第三图片的第一像素延展区域和第四图片交叠或者拼接。

本实施例的图片拼接处理方法,通过在当前显示的图片中排在尾部的第三图片边缘生成第一像素延展区域,根据第三图片的第三位置和第三图片的原始尺寸,确定与第三图片相邻的目标位置,进而在目标位置显示第四图片,其中,第四图片为当前显示的图片中排在头部的图片,第三图片的第一像素延展区域和第四图片交叠或者拼接,由此,实现了图片的滚动显示,并且通过对第三图片进行像素延展,使得第三图片和第四图片拼接后,第三图片和第四图片之间不会出现缝隙,提高了图片的显示效果。

前述实施例均以相邻的两张图片尺寸相同作为示例,当然,对于相邻的两张图片尺寸不同的情况,也可以采用类似的方案来解决因计算误差导致图片之间出现缝隙的技术问题,相对于图片尺寸相同的情况,区别仅在于位置的确定方式不同。下面进行详细说明。

作为一种示例,对于相邻的第一图片和第二图片,第一图片和第二图片的尺寸不同,当仅对第一图片进行像素延展时,待显示的第二图片的第二位置为:第一图片的第一位置+第一图片的尺寸/2+第二图片的尺寸/2。

作为一种示例,对于相邻的第一图片和第二图片,第一图片和第二图片的尺寸不同,当根据预设的延展像素长度分别对第一图片和第二图片进行像素延展时,待显示的第二图片的第二位置为:第一图片的第一位置+第一图片的尺寸/2+第二图片的尺寸/2+延展像素长度。

其中,第一位置是以坐标的形式进行表示的,比如,第一位置可以表示为(50,60),在计算第二位置时,可以根据第一图片和第二图片的显示方向,选择将第一图片和第二图片的宽度或高度代入上述计算公式来确定第二位置。

举例而言,假设第一位置为(50,60),仅对第一图片进行像素延展,第一图片和第二图片横向显示,则第二位置的横坐标=50+第一图片的宽度/2+第二图片的宽度/2,第二位置的纵坐标仍为60。

综上所述,对于相邻的第一图片和第二图片,无论第一图片的尺寸是否相同,通过进行像素延展,使得两张图片显示时,第一图片的第一像素延展区域与第二图片交叠或拼接,或者,第一图片的第一像素延展区域与第二图片的第二像素延展区域交叠或拼接,能够避免第一图片和第二图片之间因计算误差导致的缝隙,保证了图片的显示效果。

为了实现上述实施例,本申请实施例提出一种图片拼接处理装置。

图11为本申请一实施例提供的图片拼接处理装置的结构示意图。

如图11所示,该图片拼接处理装置80包括:第一生成模块810、确定模块820和显示模块830。

其中,第一生成模块810,用于获取待显示的第一图片,在第一图片边缘生成第一像素延展区域。

在本申请实施例一种可能的实现方式中,第一生成模块810具体用于:获取第一图片上的目标边缘对应的目标像素值,其中,目标边缘至少包括与第二图片相邻的边缘;根据预设的延展像素长度和目标像素值,对目标边缘进行像素延展,生成第一像素延展区域。

通过获取第一图片上的目标边缘对应的目标像素值,目标边缘至少包括与第二图片相邻的边缘,根据预设的延展像素长度和目标像素值,对目标边缘进行像素延展,生成第一像素延展区域,实现了对第一图片上目标边缘进行像素延展,并根据目标边缘的目标像素值进行像素延展,有利于在图片显示时,无论各相邻图片之间是交叠还是拼接,都不影响图片的显示效果,从而在解决缝隙问题的同时保证显示效果不受影响。

确定模块820,用于根据第一图片的第一位置和第一图片的原始尺寸确定第二位置,第二位置为与第一图片相邻的待显示的第二图片的位置。

显示模块830,用于分别在第一位置和第二位置显示第一图片和第二图片,其中,第一像素延展区域和第二图片交叠或者拼接。

在本申请实施例一种可能的实现方式中,如图12所示,在如图11所示实施例的基础上,该图片拼接处理装置80还包括:

获取模块840,用于获取第二图片。

第二生成模块850,用于根据预设的延展像素长度,在第二图片边缘生成第二像素延展区域,以分别在第一位置和第二位置显示第一图片和第二图片时,第一像素延展区域和第二像素延展区域交叠或者拼接。

本实施例中,确定模块820具体用于:对第一图片的第一位置、第一图片的原始尺寸,以及延展像素长度进行求和运算,确定第二位置。

通过在相邻的第二图片边缘生成第二像素延展区域,使得分别在第一位置和第二位置显示第一图片和第二图片时,第一像素延展区域和第二像素延展区域交叠或者拼接,由此,使得第一图片和第二图片之间不会因为计算误差而出现缝隙,提高了图片的显示效果。

在本申请实施例一种可能的实现方式中,如图13所示,在如图11所示实施例的基础上,该图片拼接处理装置80还包括:

位置更新模块860,用于根据用户的操作更新第一图片的第一位置,根据更新后的第一位置和第一图片的原始尺寸确定更新后的第二位置。

显示模块830,还用于:分别在更新后的第一位置和更新后的第二位置显示第一图片和第二图片,其中,第一像素延展区域和第二图片交叠或者拼接。

由此,实现了在图片位置不断改变的场景中,无论是否出现计算误差,第一图片与第二图片之间均不会出现缝隙,提高了显示效果。

当多张图片交替移动以达到滚动的效果时,多张图片中排在头部的图片需要移动至最后,与尾部的图片进行拼接,需要保证拼接后的图片之间也不会出现缝隙。从而,在本申请实施例一种可能的实现方式中,第一生成模块810,还用于:在当前显示的图片中排在尾部的第三图片边缘生成第一像素延展区域。确定模块820,还用于:根据第三图片的第三位置和第三图片的原始尺寸,确定与第三图片相邻的目标位置。显示模块830,还用于:在目标位置显示第四图片,其中,第四图片为当前显示的图片中排在头部的图片,第三图片的第一像素延展区域和第四图片交叠或者拼接。

由此,实现了图片的滚动显示,并且通过对第三图片进行像素延展,使得第三图片和第四图片拼接后,第三图片和第四图片之间不会出现缝隙,提高了图片的显示效果。

需要说明的是,前述对图片拼接处理方法实施例的解释说明,也适用于该实施例的图片拼接处理装置,其实现原理类似,此处不再赘述。

本申请实施例的图片移动处理装置,通过获取待显示的第一图片,在第一图片边缘生成第一像素延展区域,根据第一图片的第一位置和第一图片的原始尺寸确定第二位置,第二位置为与第一图片相邻的待显示的第二图片的位置,分别在第一位置和第二位置显示第一图片和第二图片,其中,第一像素延展区域和第二图片交叠或者拼接。由此,通过在第一图片边缘生成像素延展区域,从而在显示第一图片和第二图片时,无论第一位置和第二位置的计算是否出现误差,均能保持第一像素延展区域和第二图片交叠或拼接,而不会出现缝隙,从而避免了因浮点数计算精度出现误差导致图片之间出现缝隙的现象,提高了图片显示效果。

为了实现上述实施例,本申请实施例还提出一种终端设备,包括处理器和存储器。其中,处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于实现如上述实施例所述的图片拼接处理方法。

为了实现上述实施例,本申请实施例还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所述的图片拼接处理方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1