图像替换方法、装置和设备与流程

文档序号:20028785发布日期:2020-02-28 10:08阅读:195来源:国知局
图像替换方法、装置和设备与流程

本发明涉及互联网领域,尤其涉及一种图像替换方法、装置和设备。



背景技术:

为了满足用户的日常需求,用户一般会在诸如智能手机等终端设备中安装多种应用程序(app),比如一些购物类的app,一些娱乐类的app等等。

各种app为了满足用户的各种需求,提高用户体验,往往会提供多种功能,而实现这些功能可能会用到很多图片元素,一般来说,图片所占的存储空间往往比较大,这也就导致app安装包的数据量会很大,将会占用终端设备的很多存储空间。

现有技术中,通常是通过减小app中每张图片的大小来减小app安装包的大小。但使用这种方式,应用程序安装包的“瘦身”效果并不明显,而且还很可能使得图片质量受到影响。因此,如何提升应用程序安装包的“瘦身”效果就成为一个亟待解决的问题。



技术实现要素:

有鉴于此,本发明实施例提供一种图像替换方法、装置和设备,将与图像对应的字体来替换图像,用以在保证图像质量的同时减小应用程序安装包的大小。

第一方面,本发明实施例提供一种图像替换方法,包括:

获取应用程序中的图像;

根据所述图像中各像素的颜色属性之间的相似度,确定所述图像中包含的颜色种类数量;

若所述颜色种类数量小于或等于预设数量,则生成与所述图像对应的字体;

以生成的所述字体替换所述图像。

第二方面,本发明实施例提供一种图像替换装置,包括:

获取模块,用于获取应用程序中的图像;

相似度确定模块,用于根据所述图像中各像素的颜色属性之间的相似度,确定所述图像中包含的颜色种类数量;

生成模块,用于若所述颜色种类数量小于或等于预设数量,则生成与所述图像对应的字体;

替换模块,用于以生成的所述字体替换所述图像。

第三方面,本发明实施例提供一种电子设备,包括处理器和存储器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面中的图像替换方法。该电子设备还可以包括通信接口,用于与其他设备或通信网络通信。

第四方面,本发明实施例提供了一种计算机存储介质,用于储存存储计算机程序,所述计算机程序使计算机执行时实现上述第一方面中的图片替换方法。

本发明实施例提供的图片替换方法,先获取应用程序中的图像,然后,根据图像中各像素的颜色属性之间的相似度,确定图像中包含的颜色种类数量。若颜色种类数量小于或等于预设数量,则生成与图像对应的字体,并最终利用与图像对应的字体来替换此图像。在经过图像替换后,即可对字体以及应用程序中的可执行文件、配置文件等等进行压缩处理,从而生成应用程序安装包。由于每个字体和与其对应的图像均包含完全相同的图像信息,因此经过替换后并不会影响图像的质量。同时,字体所占用的存储空间也比与此字体对应的图像占用的存储空间要小,所以,将应用程序中的图像替换为与其对应的字体可以实现在保证图像质量的同时大大减小应用程序安装包大小。

附图说明

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

图1为本发明实施例提供的一种图像替换方法的流程图;

图2为本发明实施例提供的另一种图像替换方法的流程图;

图3为本发明实施例提供的另一种图像替换方法的流程图;

图4为本发明实施例提供的图像替换装置的结构示意图;

图5为与图4所示实施例提供的图像替换装置对应的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于识别”。类似地,取决于语境,短语“如果确定”或“如果识别(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当识别(陈述的条件或事件)时”或“响应于识别(陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。

承接背景技术中提到的应用程序安装包的场景,图1为本发明实施例提供的一种图像替换方法的流程图,本发明实施例提供的该图像替换方法可以由替换设备来执行。如图1所示,该方法包括如下步骤:

s101,获取应用程序中的图像。

s102、根据图像中各像素的颜色属性之间的相似度,确定图像中包含的颜色种类数量。

应用程序中通常可以包括可执行文件、配置文件、资源文件等内容,替换设备可以直接从资源文件中获取需要被替换的图像。其中,获取到的图像可以为彩色图像。然后,替换设备会对每一张图像进行进一步处理,并且对每张图像的处理过程都是相同的。因此,为了描述的简洁与清晰,本实施例以及下述各实施例均从一张图像的角度说明图像的替换过程。

具体来说,替换设备在获取到图像后,便可获知此图像中每个像素的颜色属性。其中,可选地,颜色属性可以包括rgba颜色值或者灰度值。替换设备再根据颜色属性分别计算图像中两两像素之间的相似度,确定相似度高于预设相似度的两个像素属于同一种颜色,从而最终得到图像中包含的颜色种类数量。

其中,颜色属性包括rgba颜色值时,一种可选地相似度计算方式,替换设备分别计算图像中两两像素r值、g值、b值以及透明度值之间的数值差,也就是说对于图像中任意两个像素,替换设备会计算出四个数值差。若此四个数值差均小于预设值,则表明这两像素点的相似度较高,确定这两个像素点属于同一种颜色。举例来说,预设值可以设置为0.25。

颜色属性包括灰度值时,由于步骤101获取到的是彩色图像,因此,在步骤101之后替换设备还需要将对图像进行灰度转换处理,以将彩色图像变换灰度图像。而灰度转换处理是一种成熟的图像处理技术,其具体转换过程在此不再赘述。经过灰度转换处理后,替换设备便可获知灰度图像中各像素的灰度值。

此时,另一种可选地相似度计算方式,替换设备分别计算图像中两两像素的灰度值之间的数值差。若任意两个像素的数值差小于预设值,则表明这两个像素点的相似度较高,确定这两个像素点属于同一种颜色。举例来说,预设值可以设置为0.25。值得说明的是,上述两种相似度计算方式中涉及的预设值也可以设置为不同的数值。

s103,若颜色种类数量小于或等于预设数量,则生成与图像对应的字体。

s104,以生成的字体替换图像。

若图像中包含的颜色种类数量小于或等于预设数量,则表明图像的色彩丰富程度不高,此时可以直接生成与图像对应的字体。最终用生成的字体替换步骤101获取到的应用程序中的图像。

可选地,现有技术中已经存在一些专门用于根据图像生成与此图像对应的字体的图像处理应用程序。图像替换设备中也集成有可以实现此功能的功能模块,此功能模块可以与这些图像处理应用程序具有相同的工作过程。当图像的颜色种类数量小于或等于预设数量时,替换设备可以直接调用此功能模块来完成生成与图像对应的字体的步骤。

在图像替换完成后,可以进一步对应用程序中包括的可执行文件、配置文件以及字体进行打包,从而生成应用程序安装包。此时生成的应用程序安装包会占用终端设备更小的存储空间,也即是实现应用程序安装包“瘦身”的效果。上述打包过程也可以由替换设备或者其他设备完成。

在“瘦身”后的应用程序安装包被安装到终端设备上后,终端设备响应于用户触发的展示操作,会将与图像对应的字体进行展示。由于生成的字体与图像包含完全相同图像信息,因此,展示给用户的字体与未替换前的图像具有相同的图像质量。

在实际应用中,本实施例以及下述各实施例中的替换设备均可以为服务器。

本发明实施例中,替换设备先获取应用程序中的图像,然后,根据图像中各像素的颜色属性之间的相似度,确定图像中包含的颜色种类数量。若颜色种类数量小于或等于预设数量,则生成与图像对应的字体,并最终利用与图像对应的字体来替换此图像。在经过图像替换后,即可对字体以及应用程序中的可执行文件、配置文件等等进行压缩处理,从而生成应用程序安装包。由于每个字体和与其对应的图像均包含完全相同的图像信息,因此经过替换后并不会影响图像的质量。同时,字体所占用的存储空间也比与此字体对应的图像占用的存储空间要小,所以,将应用程序中的图像替换为与其对应的字体可以实现在保证图像质量的同时大大减小应用程序安装包大小。

另外,在实际应用中,除了步骤103的情况,还有可能出现颜色种类大于预设数量的情况。此时,图2为本发明实施例提供的另一种图像替换方法的流程图,如图2所示,在步骤102之后,该图像替换方法还可以包括如下步骤:

s201,若颜色种类数量大于预设数量,则根据图像中包含的多种颜色,生成分别与图像对应的多张子图像,其中,每张子图像中包含多种颜色中的一种颜色的像素。

s202,生成分别与多张子图像对应的多个字体。

s203,以生成的多个字体替换图像。

具体来说,若颜色种类数量大于预设数量,则表明图像的色彩丰富程度较高,此时若直接生成与图像对应的字体,则终端设备在展示此直接生成的字体时,很有可能会出现图像失真甚至变形的情况。

因此,当颜色种类数量大于预设数量时,可选地,替换设备会先分别提取出图像中属于同一种颜色的像素,保留属于同一种颜色的像素在图像中的位置关系生成一张子图像。这样对于颜色程度较为丰富的图像,则会生成与颜色种类数量相等数目的子图像。再根据多张子图像生成分别与各自对应的字体,并以生成的多个字体来替换图像。对于生成多个字体的生成过程,详细描述可以参见上述实施例步骤103中的相关描述。

当颜色种类数量大于预设数量时,另一种可选地方式,替换设备还可以从图像中提出k种颜色对应的像素,并保留像素在图像中的位置关系生成一张子图像,其中k小于预设数量。此时,也会生成多张子图像,只不过这多张子图像的数目小于颜色种类数量。

根据上述描述可知,当图像的颜色丰富程度较高时,图像的替换实质上就是以多个字体来替换一张图像。因此,为了保证应用程序安装包的“瘦身”效果,可选地,在步骤203之前,该图像替换方法还可以包括:

s204,判断多个字体占用的存储空间是否小于图像占用的存储空间,若多个字体占用的存储空间小于图像占用的存储空间,则执行步骤203,否则,执行步骤s205。

s205,保留图像。

替换设备判断与图像对应的多个字体占用的存储空间是否小于此图像占用的存储空间。若多个字体占用的存储空间小于图像占用的存储空间,则用多个字体替换图像,从而达到减小应用程序安装包大小的目的。若多个字体占用的存储空间大于图像占用的存储空间,用多个字体替换图像就不能达到应用程序安装包“瘦身”的效果,此时,则丢弃生成的字体,保留图像。

本发明实施例中,在图1所示实施例的基础上,对于颜色种类数量大于预设数量的情况,替换设备会生成多张子图像,再进一步生成分别与多张子图像对应的多个字体。当多个字体占用的存储空间小于图像占用的存储空间时,则会使用多个字体替换图像,从而保证应用程序安装包的“瘦身”效果。

综合上述两个实施例,也即是实现了对色彩丰富程度不同的图像采取不同的方式字体生成。同时,通过比较字体与图像占用存储空间的大小,选择是否对图像进行替换操作,达到在不降低图像质量的同时保证应用程序安装包“瘦身”效果的目的。

由于应用程序中的图像往往具有多种类型,比如有底色的图像和无底色的图像。而能够生成字体的图像通常为无底色的图像。因此,为了能够使不同类型的图像均能够生成对应的字体,保证应用程序安装包的“瘦身”效果,图3为本发明实施例提供的另一种图像替换方法的流程图,如图3所示,该方法包括如下步骤:

s301,获取应用程序中的图像。

上述步骤301的执行过程与前述实施例的相应步骤相似,可以参见如图1所示实施例中的相关描述,在此不再赘述。

s302、根据图像中各像素的rgba颜色值,确定具有相同rgba颜色值的像素数量。

s303、确定像素数量最多的rgba颜色值为背景色。

s304、将具有背景色的像素的透明度参数调整为完全透明状态。

具体来说,替换设备根据图像中每个像素的rgba颜色值,确定哪些像素具有相同的rgba颜色值,并统计具有相同rgba颜色值的像素的数量。然后,将像素数量最多的rgba颜色值确定为图像的背景色。接着,将具有背景色的像素的透明度参数调整为完全透明状态,即将rgba颜色值中的透明度值调整为0。上述调整透明度参数的过程也即是将步骤301中获取的图像全部转换成无背景色的图像的过程。

s305,将图像中饱和度低于预设值的像素的饱和度调整为预设值。

由于不同图像的拍摄环境不同,因此,图像中物体的颜色受到拍摄环境的影响难免会出现色差。为了色差对图像颜色种类数量确定的影响,替换设备还会对图像中各像素的饱和度进行调整。也即是,将饱和度低于预设值的像素的饱和度调整为预设值。举例来说,此预设值可以设置为0.15。

s306,根据图像中各像素的颜色属性之间的相似度,确定图像中包含的颜色种类数量。

s307,若颜色种类数量小于或等于预设数量,则生成与图像对应的字体。

s308,以生成的字体替换图像。

上述步骤306至步骤308的执行过程与前述实施例的相应步骤相似,可以参见如图1所示实施例中的相关描述,在此不再赘述。

另外,在实际应用中,步骤301获取的图像除了具有不同的类型,还可以具有不同的形状,例如长方形、正方形等等。由于生成的字体对图像的形状是一定要求的,因此,可选地,在步骤301后,还可以判断图像的形状与字体对应的字体图形是否匹配。

若图像的形状与字体图形不匹配,则调整图像的形状为与字体对应的字体图形。其中,字体图形通常为正方形。一种可选地方式,当图像的形状为长方形时,替换设备分别统计图像中每行以及每列的像素个数m和n。若m>n,则分别沿着图像两个长边的边缘补齐行、透明度参数为全透明状态的像素。若m<n,则分别沿着图像两个长边的边缘补齐列、透明度参数为全透明状态的像素。

需要说明的是,上述流程是先调整图像的形状再调整图像的背景色。然而,这两种调整并不具有严格的时序限制,二者的调整顺序也可以颠倒。

本发明实施例中,对图像背景色以及形状的调整可以保证全部图像都可以生成对应的字体。同时,调整图像中像素的饱和度则可以避免拍摄环境对图像颜色的影响,使替换设备可以准确的确定出图像中包含的像素颜色种类数量,保证在显示生成的字体时是图像效果。

此外,上述图1至图3所示的实施例是以生成应用程序安装包的场景为例进行说明的。在实际应用中,该图像替换方法还可以应用在网页浏览场景中。网站的服务器中可以存储有全部资源数据,比如图像、文字、视频以及音频等等。利用字体替换图像同样可以达到减小资源数据大小的目的。当用户触发网页显示操作后,终端设备可以接收服务器发送的对应于待打开网页的、包含字体的数据包。由于接收到的数据包比包含图像的数据包更小,因此,终端设备则可以以更快的速度接收到较小的数据包,提高网页的打开速度。

以下将详细描述本发明的一个或多个实施例的图像替换装置。本领域技术人员可以理解,这些图像替换装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。

图4为本发明实施例提供的图像替换装置的结构示意图,如图4所示,该装置包括:获取模块11、相似度确定模块12、生成模块13以及替换模块14。

获取模块11,用于获取应用程序中的图像。

相似度确定模块12,用于根据所述图像中各像素的颜色属性之间的相似度,确定所述图像中包含的颜色种类数量。

生成模块13,用于若所述颜色种类数量小于或等于预设数量,则生成与所述图像对应的字体。

替换模块14,用于以生成的所述字体替换所述图像。

可选地,所述生成模块13还用于:若所述颜色种类数量大于所述预设数量,则根据所述图像中包含的多种颜色,生成分别与所述图像对应的多张子图像,其中,每张子图像中包含所述多种颜色中的一种颜色的像素;以及生成分别与所述多张子图像对应的多个字体。

所述替换模块14,还用于以生成的所述多个字体替换所述图像。

可选地,所述装置还包括:判断模块21,用于判断所述多个字体占用的存储空间是否小于所述图像占用的存储空间。

可选地,所述装置还包括:灰度处理模块22,用于对所述图像进行灰度转换处理。

可选地,所述装置还包括:形状调整模块23,用于若所述图像的形状与所述字体对应的字体图形不匹配,则将所述图像的形状调整为所述字体图形。

可选地,所述装置还包括:数量确定模块24,背景色确定模块25以及透明度调整模块26。

数量确定模块24,用于根据所述图像中各像素的rgba颜色值,确定具有相同rgba颜色值的像素数量。

背景色确定模块25,用于确定所述像素数量最多的rgba颜色值为背景色。

透明度调整模块26,用于将具有所述背景色的像素的透明度参数调整为完全透明状态。

可选地,所述装置还包括:饱和度调整模块27,用于将所述图像中饱和度低于预设值的像素的饱和度调整为所述预设值。

图4所示装置可以执行图1至图3所示实施例的方法,本实施例未详细描述的部分,可参考对图1至图3所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1至图3所示实施例中的描述,在此不再赘述。

以上描述了图像替换装置的内部功能和结构,在一个可能的设计中,图像替换装置的结构可实现为一电子设备,该电子设备可以是保存有一应用程序内全部文件的服务器,如图5所示,该电子设备可以包括:处理器31和存储器32。其中,所述存储器32用于存储支持该电子设备执行上述图1至图3所示实施例中提供的图像替换方法的程序,所述处理器31被配置为用于执行所述存储器32中存储的程序。

所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器31执行时能够实现如下步骤:

获取应用程序中的图像;

根据所述图像中各像素的颜色属性之间的相似度,确定所述图像中包含的颜色种类数量;

若所述颜色种类数量小于或等于预设数量,则生成与所述图像对应的字体;

以生成的所述字体替换所述图像。

可选地,所述处理器31还用于执行前述图1至图3所示实施例中的全部或部分步骤。

其中,所述电子设备的结构中还可以包括通信接口33,用于该电子设备与其他设备或通信网络通信。

另外,本发明实施例提供了一种计算机存储介质,用于储存上述电子设备所用的计算机软件指令,其包含用于执行上述图1至图3所示方法实施例中图像替换方法所涉及的程序。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

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

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