贴图的压缩方法、装置、存储介质和电子装置与流程

文档序号:16473480发布日期:2019-01-02 23:21阅读:179来源:国知局
贴图的压缩方法、装置、存储介质和电子装置与流程
本发明涉及贴图领域,具体而言,涉及一种贴图的压缩方法、装置、存储介质和电子装置。
背景技术
:目前的2d贴图,美术为方便出图和后期修改,贴图在绘制完成后,在简单裁剪剔除后即直接出图,九宫信息一般通过美术绘制软件进行标记记录,会将贴图中间区域部分拉伸范围标记为九宫格区,九宫区一般像素相等或接近,方便拉伸,这样,原始贴图比较小的情况下也可应用于大区域控件,边缘部分保持原像素比例展示细节,中间九宫区域拉大,在减少贴图资源的情况下,可不失真的用于大控件的渲染显示。现有美术九宫出图,在一定程度上缓解了美术贴图的像素重叠浪费,但贴图的重复像素依然存在重复浪费,没有从根本上享用九宫技术带来的贴图压缩红利。针对上述的问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种贴图的压缩方法、装置、存储介质和电子装置,以至少解决相关技术中贴图压缩不严谨,造成资源浪费的技术问题。根据本发明实施例的一个方面,提供了一种贴图的压缩方法,包括:将待压缩贴图划分为第一目标区域和第二目标区域;将第一目标区域中的像素值与第二目标区域中对应的像素值进行比较;基于比较结果压缩待压缩贴图。根据本发明实施例的另一方面,还提供了一种贴图的压缩装置,包括:划分模块,用于将待压缩贴图划分为第一目标区域和第二目标区域;比较模块,用于将第一目标区域中的像素值与第二目标区域中对应的像素值进行比较;压缩模块,用于基于比较结果压缩待压缩贴图。根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中所述的方法。根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项中所述的方法。在本发明实施例中,采用在待压缩贴图中划分第一目标区域和第二目标区域,将第一目标区域和第二目标区域中的像素值进行比较,利用比较结果压缩待压缩贴图。达到了可以将第一目标区域和第二目标区域中相同或者相似的像素进行合并的目的,从而实现了有效压缩贴图的技术效果,进而解决了相关技术中贴图压缩不严谨,造成资源浪费的技术问题。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是本发明实施例的一种贴图的压缩方法的移动终端的硬件结构框图;图2是根据本发明实施例的贴图的压缩方法的流程示意图;图3是根据本发明实施例提供的贴图原始图片的示意图;图4是根据本发明实施例提供的贴图中的九宫区域的示意图;图5是根据本发明实施例提供的扫面贴图的示意图;图6是根据本发明实施例提供的压缩后的贴图的示意图;图7是根据本发明实施例提供的优选实施例的贴图示意图;图8是根据本发明实施例提供的输出的压缩贴图的示意图;图9是本实例中的一些原始贴图;图10是本实施例中压缩之后的贴图;图11是根据本发明实施例提供的贴图的压缩装置的结构示意图。具体实施方式为了使本
技术领域
的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。根据本发明实施例,提供了一种贴图的压缩方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种贴图的压缩方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的提示生成方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。图2是根据本发明实施例的贴图的压缩方法的流程示意图,如图2所示,该方法包括如下步骤:步骤s202,将待压缩贴图划分为第一目标区域和第二目标区域;步骤s204,将第一目标区域中的像素值与第二目标区域中对应的像素值进行比较;步骤s206,基于比较结果压缩待压缩贴图。通过上述步骤,采用在待压缩贴图中划分第一目标区域和第二目标区域,将第一目标区域和第二目标区域中的像素值进行比较,利用比较结果压缩待压缩贴图。达到了可以将第一目标区域和第二目标区域中相同或者相似的像素进行合并的目的,从而实现了有效压缩贴图的技术效果,进而解决了相关技术中贴图压缩不严谨,造成资源浪费的技术问题。需要说明的是,上述第一目标区域可以是贴图中的九宫区域,即待压缩贴图在美术软件中设置的包括九宫信息的九宫格区域,九宫信息包括九宫格区域的坐标范围以及起始坐标点;也可以是自定义的区域,自定义的区域可以是九宫格格式的区域。第二目标区域是在待压缩贴图中除了第一目标区域之外的其他区域。需要说明的是,待压缩贴图是在客户端中进行压缩处理的。客户端将待压缩贴图,加载进入客户端进程内存,使用对应的贴图格式图形解析库解析待压缩贴图,得到贴图信息矩阵。例如待压缩贴图长为m像素,高为n像素,则内存贴图大小为m*n,客户端内存中将有一份m*n的贴图信息矩阵,贴图信息矩阵中包括了待压缩贴图的坐标信息,以及与坐标信息对应的像素值。如果待压缩贴图中已经标定了九宫区域,则将待压缩贴图的九宫范围信息保存在一张表格中,并读取此待压缩贴图对应标注的九宫参数数据,九宫参数数据包括待压缩贴图的大小值,九宫区域的起始坐标值,九宫区域的范围大小值。根据九宫区域的起始坐标值,在读入的贴图信息矩阵中,查询读取记录的待压缩贴图九宫数据起始的像素值,例如,九宫区域起始横坐标为x,则在m*n的总贴图信息矩阵中,读取x列的信息值,信息值包括像素值。在一个可选的实施例中,通过以下方式将第一目标区域中的像素值与第二目标区域中对应的像素值进行比较:确定第一目标区域的第一边界坐标,例如上述中的x列;获取与第一边界坐标对应的像素值,例如x列的像素值;确定第二目标区域的第二边界坐标,与x列是相邻的,例如x-1列;获取与第二边界坐标对应的像素值;将第一边界坐标对应的像素值与第二边界坐标对应的像素值进行比较。在第一边界坐标对应的像素值与第二边界坐标对应的像素值相等或者均小于预设阈值的情况下,删除第一边界坐标;将第二边界坐标设置为所述第一目标区域的边界坐标。例如:从像素x向两边读取贴图信息矩阵.如果x-1列位置像素值与x列像素值完全相等,则说明九宫贴图可以从x-1处开始,从贴图信息矩阵中删除x列的值,贴图信息矩阵改变为m-1*n大小。此外,需要更改九宫区域的九宫信息,例如,设置新的九宫边缘位置横坐标为x-1处。重复执行上述中的方案,直到九宫区域不能和周边像素进行合并。记录最终的九宫区域的范围信息坐标和内部九宫区域的像素值,此时的目标贴图内存数据缩减为(m-a)*(n-b),a为宽度总缩减像素值,b为高度总缩减像素值,输出目标贴图替换待压缩贴图。在一个可选的实施例中,在待压缩贴图没有九宫信息的情况下,通过以下方式将待压缩贴图中划分为第一目标区域和第二目标区域:在贴图信息矩阵中查询具有相同或者相似像素值的坐标区域;将坐标区域确定为第一目标区域以及将待压缩贴图中除第一目标区域之外的剩余区域确定为第二目标区域。例如:将待压缩贴图加载进入客户端内存,使用贴图对应图形解析库解析,形成贴图信息矩阵。其次,在贴图信息矩阵中,寻找最大的相同或相似像素范围,形成可裁剪区域,即第一目标区域。最后,在贴图信息矩阵中裁剪此区域,记录裁剪区域信息,形成九宫数据,将裁剪后的贴图信息矩阵输出成目标贴图,替换待压缩贴图。为了更好的理解本发明实施例,以下结合一个优选的实施例对本发明做进一步解释。针对美术设计已设定是九宫类型的待压缩贴图,利用以下方式进行处理,如图3所示,是待压缩贴图的原始图片,原始图片的信息如表1所示:起始x起始y内宽内高总宽总高24248080128128从表1中加载待压缩贴图对应的九宫信息,其中,原始图片大小为128*128像素,行从第24像素开始,列从第24像素开始,内部80*80的像素范围为九宫区域(对应于上述中的第一目标区域)。加载待压缩贴图资源进入内存,图4中间的灰色部分为设定的九宫顶点拉伸区域,即九宫区域。对待压缩贴图的内存进行解析,使用图片格式对应的图片解析库,比如png格式图片,采用libpng库解析,经过解析每个像素点对应着红绿蓝和透明度信息值。对待压缩贴图内存逐行逐列扫描,如果贴图九宫位置处像素值与周边数据相等,则说明此位置可合并周边像素,合并内存贴图信息,并记录新的九宫位置。如图5所示,将从内存贴图数组第24行,第104行左右扫描,第24列,第104列上下扫描,相同数值的位置逐步合并。直到不能再合并周边像素,将新的贴图输出.修改原有九宫信息。通过以上步骤,最终将贴图从美术出图原始大小128*128像素,压缩到了30*30像素,如图6所示,目标贴图的内宽和内高被压缩为2*3的像素区域。目标贴图的被修改为表2所示的信息:起始x起始y内宽内高总宽总高1413233030由上述可知,将原本的九宫贴图,最大化的缩减九宫像素范围,从而达到缩减整个贴图大小的目的。此外,实际美术贴图大多在九宫像素值并不完全相等,rgba各通道可能会相差几个像素,然而人眼对于几个像素差以内的更改一般很难察觉,因此,上述中的扫描算法可以适当放宽条件,通过修改像素差范围,可以压缩出更多的九宫区域,达到更大的压缩效果。对于gui设计原本不是九宫的贴图,也可以对其进行九宫压缩.并产生最佳九宫信息。1)读取贴图进入内存,如图7所示,是一张用于展示气泡的贴图,美术出图原始没有九宫信息,贴图占用巨大,原始大小为286*132像素。2)逐行逐列读取贴图信息,在贴图中寻找最大像素相等的区域,剔除相等的区域,剔除区域的起始即为九宫起始点,剔除范围大小即为九宫的范围大小。3)输出缩减后的贴图,输出九宫信息,如图8所示。最终的目标贴图的信息如表3所示:起始x起始y内宽内高总宽总高453313224通过以上步骤,可以将项目中绝大多数的贴图转化为九宫图,最大限度的将贴图重复像素剔除,缩减贴图占用空间。图9是本实例中的一些原始贴图,图10是本实施例中压缩之后的贴图。由此可知,通过以上步骤,可以线下将美术贴图找出相同或相似像素并剔除,保留图片原始最有效的信息,达到有效缩减冗余贴图资源的目的。同时,此方案也方便延伸扩展.一张贴图中可能存在多个可裁剪去重九宫区域,可将重复的区域尽数裁剪合并,贴图重新组合成新的非标准矩形贴图,记录每个小的九宫区域对应的像素位置和大小。然后,在渲染时,读取贴图的所有可九宫区域的数据信息,寻址单个九宫贴图对应位置。在此优化后,整体贴图将变的更小,贴图量得到极大限度的压缩,得到最高的像素利用。本发明实施例还提供了一种贴图的压缩装置,图11是根据本发明实施例提供的贴图的压缩装置的结构示意图,如图11所示,该装置包括:划分模块1102,用于将待压缩贴图划分为第一目标区域和第二目标区域;比较模块1104,用于将所述第一目标区域中的像素值与所述第二目标区域中对应的像素值进行比较;压缩模块1106,用于基于比较结果压缩所述待压缩贴图。通过上述步骤,采用在待压缩贴图中划分第一目标区域和第二目标区域,将第一目标区域和第二目标区域中的像素值进行比较,利用比较结果压缩待压缩贴图。达到了可以将第一目标区域和第二目标区域中相同或者相似的像素进行合并的目的,从而实现了有效压缩贴图的技术效果,进而解决了相关技术中贴图压缩不严谨,造成资源浪费的技术问题。需要说明的是,上述第一目标区域可以是贴图中的九宫格区域,即待压缩贴图在美术软件中设置的九宫信息;也可以是自定义的区域。第二目标区域是在待压缩贴图中除了第一目标区域之外的其他区域。需要说明的是,待压缩贴图是在客户端中进行压缩处理的。客户端将待压缩贴图,加载进入客户端进程内存,使用对应的贴图格式图形解析库解析待压缩贴图,得到贴图信息矩阵。假设待压缩贴图长为m像素,高为n像素,则内存贴图大小为m*n,客户端内存中将有一份m*n的贴图信息矩阵。在一个可选的实施例中,比较模块包括:第一确定单元,用于确定第一目标区域的第一边界坐标;第一获取单元,用于获取与第一边界坐标对应的像素值;第二确定单元,用于确定第二目标区域的第二边界坐标;第二获取单元,用于获取与第二边界坐标对应的像素值,其中,第一边界坐标与第二边界坐标相邻;比较单元,用于将第一边界坐标对应的像素值与第二边界坐标对应的像素值进行比较。例如,在第一边界坐标对应的像素值与第二边界坐标对应的像素值相等或者均小于预设阈值的情况下,删除第一边界坐标;将第二边界坐标设置为所述第一目标区域的边界坐标。例如:从像素x向两边读取贴图信息矩阵.如果x-1列位置像素值与x列像素值完全相等,则说明九宫贴图可以从x-1处开始,从贴图信息矩阵中删除x列的值,贴图信息矩阵改变为m-1*n大小。此外,需要更改九宫区域的九宫信息,例如,设置新的九宫边缘位置横坐标为x-1处。重复执行上述中的方案,直到九宫区域不能和周边像素进行合并。记录最终的九宫区域的范围信息坐标和内部九宫区域的像素值,此时的目标贴图内存数据缩减为(m-a)*(n-b),a为宽度总缩减像素值,b为高度总缩减像素值,输出目标贴图替换待压缩贴图。在一个可选的实施例中,在待压缩贴图没有九宫信息的情况下,通过以下方式将待压缩贴图中划分为第一目标区域和第二目标区域:在贴图信息矩阵中查询具有相同或者相似像素值的坐标区域;将坐标区域确定为第一目标区域以及将待压缩贴图中除第一目标区域之外的剩余区域确定为第二目标区域。例如:将待压缩贴图加载进入客户端内存,使用贴图对应图形解析库解析,形成贴图信息矩阵。其次,在贴图信息矩阵中,寻找最大的相同或相似像素范围,形成可裁剪区域,即第一目标区域。最后,在贴图信息矩阵中裁剪此区域,记录裁剪区域信息,形成九宫数据,将裁剪后的贴图信息矩阵输出成目标贴图,替换待压缩贴图。需要说明的是,上述装置可以位于上述图1所示的终端中,但并不限于此。本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:s1,将待压缩贴图划分为第一目标区域和第二目标区域;s2,将第一目标区域中的像素值与第二目标区域中对应的像素值进行比较;s3,基于比较结果压缩待压缩贴图。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:s1,将待压缩贴图划分为第一目标区域和第二目标区域;s2,将第一目标区域中的像素值与第二目标区域中对应的像素值进行比较;s3,基于比较结果压缩待压缩贴图。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1