CN109344277B - 图片处理方法、装置、介质和计算设备 - Google Patents

图片处理方法、装置、介质和计算设备 Download PDF

Info

Publication number
CN109344277B
CN109344277B CN201811018905.6A CN201811018905A CN109344277B CN 109344277 B CN109344277 B CN 109344277B CN 201811018905 A CN201811018905 A CN 201811018905A CN 109344277 B CN109344277 B CN 109344277B
Authority
CN
China
Prior art keywords
resource
picture
redundancy
redundant
name
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811018905.6A
Other languages
English (en)
Other versions
CN109344277A (zh
Inventor
李云鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Media Technology Beijing Co Ltd
Original Assignee
Netease Media Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Media Technology Beijing Co Ltd filed Critical Netease Media Technology Beijing Co Ltd
Priority to CN201811018905.6A priority Critical patent/CN109344277B/zh
Publication of CN109344277A publication Critical patent/CN109344277A/zh
Application granted granted Critical
Publication of CN109344277B publication Critical patent/CN109344277B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施方式提供了一种图片处理方法、装置、介质及计算机设备。该图片处理方法包括获取系统中的至少一个图片资源;分析获得所述图片资源在所述系统中的冗余特性,所述冗余特性用于表征所述图片资源是否为所述系统中的冗余资源;以及根据所述冗余特性,处理所述图片资源。本发明的方法、装置、介质及计算机设备可以实现自动化、系统化地冗余校验和资源处理,从而显著地降低了图片处理的人力成本和操作风险,提高了处理效率,并且易于集成,可移植性强,为用户带来了更好的体验。

Description

图片处理方法、装置、介质和计算设备
技术领域
本发明的实施方式涉及互联网技术领域,更具体地,本发明的实施方式涉及一种图片处理方法、装置、介质和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,在绝大多数移动项目中,为了使得用户界面更加美化、丰富,都需要引入大量的图片资源。但每当活动结束、资源更新、项目更迭等情况发生,都会导致大量图片资源不再被需要。而这些不被需要的图片资源若没有被及时处理,便会成为冗余资源,给项目的维护、资源发布等操作带来很大的困难,因而高效准确的冗余校验和资源优化方法就显得格外重要。
现有技术中,冗余校验和资源优化处理措施一般包括以下三种:无引用的冗余校验优化、字符匹配的冗余校验优化和资源压缩优化。不论是无引用的冗余校验优化,还是字符匹配的冗余校验优化,都需要人工进行一一比对,再确认是否需要删除。而传统的资源压缩优化大多需要手动通过传统在线图片压缩工具,如Tinypng等,分批对图片进行压缩。由此可见,传统的资源优化处理过程都需要人工完成,这使得整个处理过程存在人力成本极高,操作复杂,风险性大,且难以进行移植和集成等缺点。
发明内容
因此在现有技术中,对图片资源如何实现高效准确地冗余校验和资源优化是非常令人烦恼的过程。
为此,非常需要一种改进的图片处理方法,以使冗余校验和资源优化处理过程能够自动化、系统化地实现,且无需人工的过多参与。
在本上下文中,本发明的实施方式期望提供一种能够进行高效准确地冗余校验和资源优化的图片处理机制。
在本发明实施方式的第一方面中,提供了一种方法。所述方法包括获取系统中的至少一个图片资源;分析获得所述图片资源在所述系统中的冗余特性,所述冗余特性用于表征所述图片资源是否为所述系统中的冗余资源;以及根据所述冗余特性,处理所述图片资源。
在本发明的一个实施例中,所述根据所述冗余特性处理所述图片资源,包括在所述冗余特性表征所述图片资源是所述系统中的冗余资源时,将所述图片资源删除,或者在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,压缩所述图片资源。
在本发明的另一实施例中,分析获得所述图片资源在所述系统中的冗余特性包括以下至少之一:通过无引用的冗余校验,分析获得所述冗余特性;或者通过字符匹配的冗余校验,分析获得所述冗余特性。
在本发明的又一个实施例中,通过无引用的冗余校验,分析获得所述冗余特性,包括通过lint工具获得所述图片资源的引用特性,所述引用特性用于表征所述图片资源在所述系统中是否存在被引用关系;以及在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源。
在本发明的再一个实施例中,在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源,包括:在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,获取所述图片资源的名称的前缀;以及在所述图片资源的名称的前缀与预设的过滤前缀不匹配时,确定所述图片资源为冗余资源。
在本发明的再一个实施例中,在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源,包括:在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,获取所述图片资源的名称;以及在所述图片资源的名称不是指定名称时,确定所述图片资源为冗余资源。
在本发明的再一个实施例中,所述通过字符匹配的冗余校验,分析获得所述冗余特性,包括确定所述图片资源的名称是否与预设的配对资源前缀相匹配;在所述图片资源的名称与所述配对资源前缀相匹配时,确定所述图片资源是否属于字符匹配的冗余资源集合;以及在所述图片资源属于字符匹配的冗余资源集合时,确定所述图片资源为冗余资源。
在本发明的再一个实施例中,通过字符匹配的冗余校验,分析获得所述冗余特性,还包括获取所述字符匹配的冗余资源集合。
在本发明的再一个实施例中,获取所述字符匹配的冗余资源集合,包括获取所述系统中的至少一个主资源图片,以及基于所述至少一个主资源图片的名称形成主资源名称集合,其中所述主资源名称集合中的元素为所述主资源图片的名称去除前缀后的剩余部分,所述主资源图片为静态调用的图片;获取所述系统中与所述配对资源前缀相匹配的至少一个配对资源图片,以及基于所述至少一个配对资源图片的名称形成配对资源名称集合,其中,所述配对资源名称集合中的元素为所述配对资源图片的名称去除前缀的剩余部分;基于所述配对资源名称集合减去所述主资源名称集合形成的差集,获得所述字符匹配的冗余资源集合。
在本发明的再一个实施例中,基于所述配对资源名称集合减去所述主资源名称集合形成的差集,获得所述字符匹配的冗余资源集合,包括将所述至少一个配对资源图片中与所述差集的名称对应的配对资源图片归类,形成所述字符匹配的冗余资源集合。
在本发明的再一个实施例中,通过字符匹配的冗余校验,分析获得所述冗余特性,还包括设置所述配对资源前缀。
在本发明的再一个实施例中,获取所述系统中的至少一个主资源图片,包括通过lint工具扫描所述系统,以获取所述系统中的至少一个主资源图片。
在本发明的再一个实施例中,在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,压缩所述图片资源,包括在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,通过开源压缩工具压缩所述图片资源。
在本发明的再一个实施例中,所述开源压缩工具包括基于命令行对图像进行压缩的工具Pngquant。
在本发明的再一个实施例中,所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,压缩所述图片资源,还包括设置所述开源压缩工具中不同图片类型对应的压缩开关;以及在所述图片资源的图片类型对应的压缩开关为开时,压缩所述图片资源。
在本发明的再一个实施例中,在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,压缩所述图片资源,还包括设置所述开源压缩工具可压缩的单张图片容量范围;以及在所述图片资源的大小在所述单张图片容量范围以内时,压缩所述图片资源。
在本发明的再一个实施例中,所述方法还包括记录相关信息,其中所述相关信息包括以下任意一项或多项:所述获取的所述系统中待处理的至少一个图片资源的信息;或者所述分析获得的所述冗余特性;或者所述处理的过程的信息。
在本发明实施方式的第二方面中,提供了一种装置。所述装置包括图片获取模块、冗余特性获得模块、以及处理模块。图片获取模块用于获取系统中的至少一个图片资源。冗余特性获得模块用于分析获得所述图片资源在所述系统中的冗余特性,所述冗余特性用于表征所述图片资源是否为所述系统中的冗余资源。处理模块用于根据所述冗余特性,处理所述图片资源。
在本发明的一个实施例中,处理模块包括删除子模块和压缩子模块。删除子模块用于在所述冗余特性表征所述图片资源是所述系统中的冗余资源时,将所述图片资源删除。压缩子模块用于在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,压缩所述图片资源。
在本发明的另一个实施例中,冗余特性获得模块包括以下至少之一:无引用的冗余校验子模块和字符匹配的冗余校验子模块。无引用的冗余校验子模块用于通过无引用的冗余校验,分析获得所述冗余特性。字符匹配的冗余校验子模块用于通过字符匹配的冗余校验,分析获得所述冗余特性。
在本发明的又一个实施例中,无引用的冗余校验子模块具体用于通过lint工具获得所述图片资源的引用特性,所述引用特性用于表征所述图片资源在所述系统中是否存在被引用关系,以及在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源。
在本发明的再一个实施例中,在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源,包括在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,获取所述图片资源的名称的前缀,以及在所述图片资源的名称的前缀与预设的过滤前缀不匹配时,确定所述图片资源为冗余资源。
在本发明的再一个实施例中,在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源,包括在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,获取所述图片资源的名称,以及在所述图片资源的名称不是指定名称时,确定所述图片资源为冗余资源。
在本发明的再一个实施例中,字符匹配的冗余校验子模块具体用于确定所述图片资源的名称是否与预设的配对资源前缀相匹配,在所述图片资源的名称与所述配对资源前缀相匹配时,确定所述图片资源是否属于字符匹配的冗余资源集合,以及在所述图片资源属于字符匹配的冗余资源集合时,确定所述图片资源为冗余资源。
在本发明的再一个实施例中,字符匹配的冗余校验子模块还用于获取所述字符匹配的冗余资源集合。在本发明的再一个实施例中,获取所述字符匹配的冗余资源集合包括:获取所述系统中的至少一个主资源图片,以及基于所述至少一个主资源图片的名称形成主资源名称集合,其中所述主资源名称集合中的元素为所述主资源图片的名称去除前缀后的剩余部分,所述主资源图片为静态调用的图片;获取所述系统中与所述配对资源前缀相匹配的至少一个配对资源图片,以及基于所述至少一个配对资源图片的名称形成配对资源名称集合,其中,所述配对资源名称集合中的元素为所述配对资源图片的名称去除前缀的剩余部分;基于所述配对资源名称集合减去所述主资源名称集合形成的差集,获得所述字符匹配的冗余资源集合。
在本发明的再一个实施例中,基于所述配对资源名称集合减去所述主资源名称集合形成的差集,获得所述字符匹配的冗余资源集合,包括将所述至少一个配对资源图片中与所述差集的名称对应的配对资源图片归类,形成所述字符匹配的冗余资源集合。
在本发明的再一个实施例中,字符匹配的冗余校验子模块还用于设置所述配对资源前缀。
在本发明的再一个实施例中,图片获取模块具体用于通过lint工具扫描所述系统,以获取所述系统中的至少一个主资源图片。
在本发明的再一个实施例中,所述压缩子模块具体用于在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,通过开源压缩工具压缩所述图片资源。
在本发明的再一个实施例中,所述开源压缩工具包括基于命令行对图像进行压缩的工具Pngquant。
在本发明的再一个实施例中,所述压缩子模块还用于设置所述开源压缩工具中不同图片类型对应的压缩开关,以及在所述图片资源的图片类型对应的压缩开关为开时,压缩所述图片资源。
在本发明的再一个实施例中,所述压缩子模块还用于设置所述开源压缩工具可压缩的单张图片容量范围,以及在所述图片资源的大小在所述单张图片容量范围以内时,压缩所述图片资源。
在本发明的再一个实施例中,所述装置还包括记录模块。所述记录模块用于记录相关信息,其中所述相关信息包括以下任意一项或多项:所述获取的所述系统中待处理的至少一个图片资源的信息,或者所述分析获得的所述冗余特性,或者所述处理的过程的信息。
在本发明实施方式的第三方面中,提供了一种计算机可读存储介质,其上存储有可执行指令,所述指令在被处理器执行时使处理器执行根据本发明实施方式的第一方面所提供的图片处理方法。
在本发明实施方式的第四方面中,提供了一种计算设备。该计算设备包括存储有可执行指令的一个或多个存储器,以及一个或多个处理器。所述处理器执行所述可执行指令,用以实现根据本发明实施方式的第一方面所提供的图片处理方法。
根据本发明实施方式的图片处理方法、装置、介质和计算设备,其中提供的冗余校验和资源优化过程都可以通过算法实现的,整个过程中可以无需人工进行比对、判断等操作,从而显著地降低了图片处理的人力成本,同时避免了人工操作所存在的风险,极大提高了图片处理效率和准确率,并且易于集成,可移植性强,为后续开发、发布和维护等操作提供了便利。
根据本发明的实施例,在获取图片资源的冗余特征后,再根据该冗余特征确定后续处理的具体操作,即删除冗余资源、或者压缩非冗余资源。以此方式,一方面去除了冗余资源,另一方面减小了非冗余资源的容量大小,有效降低了系统后期维护、以及发布打包等操作的成本和难度。
根据本发明的实施例,还可以持续记录冗余校验和资源优化过程中,图片资源的信息及其冗余特征、处理信息等信息。当后期需要进行资源维护和查询等操作时,可以提供准确可靠的记录以供查阅。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的图片处理方法、装置、介质及计算机设备的应用场景;
图2示意性地示出了根据本发明一实施例的图片处理方法的流程图;
图3示意性地示出了根据本发明实施例的图片处理方法的一个应用实例情境图;
图4示意性地示出了根据本发明实施例的无引用的冗余校验的流程图;
图5示意性地示出了根据本发明另一实施例的无引用的冗余校验的流程图;
图6示意性地示出了根据本发明另一实施例的无引用的冗余校验的流程图;
图7示意性地示出了根据本发明实施例的字符匹配的冗余校验的流程图;
图8示意性地示出了根据本发明另一实施例的字符匹配的冗余校验的流程图;
图9示意性地示出了根据本发明另一实施例的获取字符匹配的冗余资源集合的流程图;
图10示意性地示出了根据本发明另一实施例的字符匹配的冗余校验的流程图;
图11示意性地示出了根据本发明实施例的压缩图片资源的流程图;
图12示意性地示出了根据本发明另一实施例的压缩图片资源的流程图;
图13示意性地示出了根据本发明另一实施例的图片处理方法的流程图;
图14示意性地示出了根据本发明实施方式的图片处理方法所架构的一种系统;
图15示意性地示出了根据本发明实施方式的适用于图片处理的程序产品的示意图;
图16示意性地示出了根据本发明实施方式的图片处理装置的方框图;以及
图17示意性地示出了根据本发明实施方式的适用于进行图片处理的计算设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种图片处理的方法、介质、装置和计算设备。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,目前的冗余校验和资源优化处理过程均依赖于人工操作,而不能实现自动化、系统化地删除冗余资源,压缩非冗余资源。
发明人发现如果可以利用图片资源的命名特点(例如,图片资源的名称的前缀),来协助确定图片资源的冗余特性,整个冗余校验过程都可以通过算法自动化、系统化地实现。
另外,考虑到现有技术中,对图片资源进行压缩的基本原理都是通过使用传统在线图片压缩工具(如,Tinypng等),分批对图片进行压缩。传统的在线图片压缩工具一般是闭源、不支持批量压缩的,对于压缩的图片数量也是有限制的,这导致传统的压缩流程复杂,容错率差,且不易于集成,同时由于依赖于人工操作,存在人工成本极高和风险性都较差等问题。发明人在本技术方案的构思中发现,可以利用开源的压缩工具(如,Pngquant等),从而为优化压缩图片资源过程提供了便利和可能性,最终提高了压缩的效率和准确性,并使得压缩图片资源的过程易于集成,可移植性强。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1。
图1示意性地示出了根据本发明实施方式的图片处理方法、装置、介质及计算机设备的应用场景。需要注意的是,图1所示仅为可以应用本发明实施例的应用场景的示例,以帮助本领域技术人员理解本发明的技术内容,但并不意味着本发明实施例不可以用于其他设备、系统、环境或场景。
如图1所示,用户终端11中安装有浏览器或者客户端应用,用户通过用户终端11中安装的浏览器或者客户端应用向服务器12发送网页获取请求,服务器12将用户请求的网页发送给用户终端11,由用户终端11中安装的浏览器或者客户端应用对接收到的网页信息进行展示。
用户在用户终端11的浏览器或者客户端应用上进行操作,对各种数据源进行访问。服务器12可以响应于用户操作,为用户提供各种数据访问的服务。
用户终端11和服务器12通过网络连接,该网络可以为局域网、广域网、移动互联网等。用户终端11可以为便携设备(例如:手机、平板、笔记本电脑等),也可以为个人电脑(PC,Personal Computer)。
服务器12可以为任何能够提供网站服务、和/或数据传输服务的服务器设备。为了使呈现到用户终端11的浏览器或者客户端应用上的用户界面美化、丰富,服务器12中用于提供网站服务、和/或数据传输服务的系统中通常会引入大量的图片资源。然而,当发生资源更新、系统升级、项目更迭等情况,系统中就会存在大量不再被需要的图片需要被及时处理。因此,需要服务器12对设置于其中的系统进行维护。
以一个客户端APP的开发项目为例进行说明。该客户端APP安装并运行于用户终端11中。服务器12根据用户请求向该客户端APP提供相应的服务。同时,服务器12可以保存该客户端APP的数据,这些数据可以包括该客户端APP开发过程中、或者升级操作等过程中的大量数据。例如,为了使客户端APP中的用户界面更加美化、丰富,在开发过程中引入了大量的图片资源。在开发过程中,当项目需求改变、用户界面(UI)调整、软件测试等情况发生,都有可能导致部分图片资源不再被需要。若不及时清理,这些不再被需要的图片资源如继续存在,就会成为冗余资源,且随着开发的继续进行,冗余资源会越积越多。冗余资源的堆积会使得项目后续开发、维护、调整、以及资源打包发布等操作带来很大的困扰。因此,非常有必要对该客户端APP开发过程中残留的冗余资源及时清理。
需要说明的是,本发明实施例所提供的图片处理方法一般可以由服务器12执行。相应地,本公开实施例所提供的图片处理装置一般可以设置于服务器12中。本发明实施例所提供的图片处理方法也可以由不同于服务器12且能够与用户终端11和/或服务器12通信的其他服务器或服务器集群执行。相应地,本发明实施例所提供的图片处理装置也可以设置于不同于服务器12且能够与用户终端11和/或服务器12通信的其他服务器或服务器集群中。
应该理解,图1中的用户终端、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
示例性方法
下面结合图1的应用场景,参考图2~15来描述根据本发明示例性实施方式的图片处理的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
图2示意性地示出了根据本发明一实施例的图片处理方法的流程图。
如图2所示,根据本发明实施例的图片处理方法包括操作S110~操作S130。
在操作S110,获取系统中的至少一个图片资源。
在操作S120,分析获得该图片资源在该系统中的冗余特性,该冗余特性用于表征该图片资源是否为该系统中的冗余资源。根据本发明的实施例,在操作S120中分析获得该图片资源在该系统中的冗余特性,可以包括以下至少之一:通过无引用的冗余校验,分析获得该冗余特性,或者通过字符匹配的冗余校验,分析获得该冗余特性。
在操作S130,根据该冗余特性,处理该图片资源。根据本发明的实施例,操作S130包括在该冗余特性表征该图片资源是该系统中的冗余资源时,将该图片资源删除,或者在该冗余特性表征该图片资源不是该系统中的冗余资源时,压缩该图片资源。
根据本发明的实施例,先分析获得图片资源的冗余特性,再根据该冗余特性处理该图片资源。具体地,根据该冗余特性处理该图片资源,可以是删除是冗余资源的图片资源、和/或压缩不是冗余资源的图片资源。通过这种处理方法,可以有效减少系统中冗余资源占用的空间,减小系统的体积,有效降低了后期维护、发布打包等操作的成本和难度。例如,删除冗余资源,可以有效清空不再使用的资源。又例如,对非冗余的资源进行压缩,可以减小非冗余资源的容量大小。
图3示意性地示出了根据本发明实施例的图片处理方法的一个应用实例情境图。
如图3所示,在操作S110中获取系统中的至少一个图片资源,然后在操作S120中通过无引用的冗余校验和/或字符匹配的冗余校验,分析获得该图片资源的冗余特性。接着,在操作S130中当该冗余特性表征该图片资源为该系统中的冗余资源,则将该图片资源删除,或者当该冗余特性表征该图片资源不是该系统中的冗余资源,则压缩该图片资源。通过这种处理方式,一方面去除了冗余资源,另一方面减小非冗余资源的容量大小,极大地减小了系统的容量。
图4示意性地示出了根据本发明实施例的无引用的冗余校验的流程图。
如图4所示,在操作S120中通过无引用的冗余校验,分析获得该冗余特性,可以包括操作S210和操作S220。
在操作S210,通过lint工具获得该图片资源的引用特性,该引用特性用于表征该图片资源在该系统中是否存在被引用关系。
然后在操作S220,在该引用特性表征该图片资源在该系统中不存在被引用关系时,确定该图片资源为冗余资源。
lint工具是一种用于静态代码分析的C语言工具。lint工具可以扫描获取各类图片资源,包括静态调用的图片资源和动态调用的图片资源。另外,lint工具能够分析出静态调用的图片资源在系统中是否存在引用关系,通常lint工具不能够分析出动态调用的图片资源在系统中是否存在引用关系。根据lint工具的特点,通过无引用的冗余校验能够分析获得静态调用的图片资源是否存在引用关系。对于存在引用关系的图片资源,可以确定该图片资源在系统中被引用,属于非冗余资源。而对于不存在引用关系的图片资源,根据本发明的一个实施例,可以认为这些图片资源已经不再被引用,从而可以确定为冗余资源。根据本发明的另一些实施例,在这些不存在引用关系的图片资源中可能存在仍需要保留的部分(例如,其中可能存在无法被lint工具分析出的动态调用的图片资源,或者其中可能存在由于系统开发或维护等需要保留的资源),对于这些需要保留的图片资源可以通过进一步操作,从中筛选出冗余资源,具体可以参考图5或图6的示意。
图5示意性地示出了根据本发明另一实施例的无引用的冗余校验的流程图。
如图5所示,根据本发明另一实施例,在操作S120中,操作220可以包括操作S221和操作S222。
在操作S221,在该引用特性表征该图片资源在该系统中不存在被引用关系时,获取该图片资源的名称的前缀。例如,该图片资源是动态调用的夜间图片时,其名称的前缀例如可以是“night-”。
在操作S222,在该图片资源的名称的前缀与预设的过滤前缀不匹配时,确定该图片资源为冗余资源。例如,预设的过滤前缀包括“night-”时,若该图片资源的名称的前缀也为“night-”,则可以认为该图片资源为需要保留的动态调用的夜间图片,不是冗余资源。相反,如果在该图片资源的名称的前缀与预设的过滤前缀不匹配时,则可以认为该图片资源为冗余资源。
根据本发明的实施例,在获取该图片资源的引用特性后,可以通过比对该图片资源的名称的前缀与预设过滤前缀匹配,从而避免将在该系统中没有引用关系但仍需要保留的图片资源(例如,动态调用的图片资源)确定为冗余资源。并且,将该图片资源的名称的前缀与预设过滤前缀的匹配过程极易由算法实现。对比而言,现有技术中,在获取图片资源的引用特性后,为了避免将在系统中没有引用关系但仍需要保留的该图片资源确定为冗余资源,往往需要人工进行一一比对,导致人力成本和时间成本极高,且极易出现错误和问题。由此可以看出,根据本发明实施例的图片处理方法,在通过lint工具分析获得不存在引用关系的图片资源之后,进一步筛选出其中的有用的图片资源的过程,可以不需要人工参与,降低了图片处理的人力成本和时间成本,还降低了风险性,提高了效率和准确性,且易于移植和集成。
图6示意性地示出了根据本发明另一实施例的无引用的冗余校验的流程图。
如图6所示,根据本发明另一实施例,在操作S120中,操作220也可以包括操作S223和操作S224。
在操作S223,在该引用特性表征该图片资源在该系统中不存在被引用关系时,获取该图片资源的名称。
在操作S224,在该图片资源的名称不是指定名称时,确定该图片资源为冗余资源。该指定名称,例如可以是由于系统开发或者维护等需要而要保留的图片资源的名称。
根据本发明的实施例,在获取该图片资源的该引用特性后,可以通过预设指定名称,避免将名称为该指定名称的图片资源确定为冗余资源。相较而言,在现有技术中对于不存在引用关系但仍想保留该图片资源,则需要在通过lint工具分析后再人工进行一一比对,人力成本和时间成本极高,且极易出现错误。由此可见,根据本发明的实施例的图片处理方法,有效降低了图片处理的人力成本和时间成本,还降低了风险性,提高了效率和准确性,且易于移植和集成。
图7示意性地示出了根据本发明实施例的字符匹配的冗余校验的流程图。
如图7所示,根据本发明另一实施例,操作S120中通过字符匹配的冗余校验,分析获得该冗余特性,可以包括操作S310~操作S330。
在操作S310,确定该图片资源的名称是否与预设的配对资源前缀相匹配。
在操作S320,在该图片资源的名称与该配对资源前缀相匹配时,确定该图片资源是否属于字符匹配的冗余资源集合。该字符匹配的冗余资源集合是没有对应的主资源的配对资源图片组成的集合,这些配对资源图片没有对应的主资源图片,成为了系统中的冗余资源。具体地,该字符匹配的冗余资源集合的获取过程会在下文中描述。
在操作S330,在该图片资源属于字符匹配的冗余资源集合时,确定该图片资源为冗余资源。
在实际应用中,为了提升用户的使用感,图片资源在显示时,可以有不止一种的显示模式。例如,系统中存在一个图片资源A,当用户在夜间浏览该图片资源A时,会感觉非常刺眼,为了提高用户的使用感,可以动态调用一张亮度较低的图片资源night-A。则该图片资源A为主资源图片,而该图片资源nigh-A就是相应的配对资源。同样,配对资源也可以是为了适应在不同大小的屏幕进行显示等情况。因此,在系统中除了主资源图片外,还可以存在相应的配对资源。当该主资源图片不再被需要时(即成为冗余资源时),其相应的配对资源也同时成为了冗余资源。
在传统的字符匹配的冗余校验需要根据主资源图片,由人工进行一一比对后,分析找出其相对应的配对资源,导致人力成本和时间成本都极大,并且人工操作极易发生漏检和误检。相反,根据本发明的实施例的方法,首先获取与预设的配对资源前缀相匹配的图片资源,再比对该图片资源是否属于字符匹配的冗余资源集合,从而确定该图片资源是否为冗余资源。以此方式,在该字符匹配的冗余校验过程中,可以无需人工对图片资源进行一一比对,从而降低了图片处理的人力成本和时间成本,还降低了风险性,提高了效率和准确性,且易于移植和集成。
图8示意性地示出了根据本发明另一实施例的字符匹配的冗余校验的流程图。
如图8所示,根据本发明另一实施例,在操作S120中通过字符匹配的冗余校验,分析获得该冗余特性,除了包括操作S310~操作S330以外,还包括操作S340。其中,操作S340在操作S320之前执行。
在操作S340,获取该字符匹配的冗余资源集合。具体实现过程,可以参考图9的描述。
图9示意性地示出了根据本发明另一实施例的获取字符匹配的冗余资源集合的流程图。
如图9所示,根据本发明另一实施例,操作S340可以包括操作S341~操作343。
在操作S341,获取该系统中的至少一个主资源图片,以及基于该至少一个主资源图片的名称形成主资源名称集合,其中该主资源名称集合中的元素为该主资源图片的名称去除前缀后的剩余部分,该主资源图片为静态调用的图片。
在操作S342,获取该系统中与该配对资源前缀相匹配的至少一个配对资源图片,以及基于该至少一个配对资源图片的名称形成配对资源名称集合,其中,该配对资源名称集合中的元素为该配对资源图片的名称去除前缀的剩余部分。
在操作S343,基于该配对资源名称集合减去该主资源名称集合形成的差集,获得该字符匹配的冗余资源集合。
根据本发明的实施例,在操作S341,获取该系统中的至少一个主资源图片,包括通过lint工具扫描该系统,以获取该系统中的至少一个主资源图片。如前所述,lint工具可以扫描获取几乎所有的图片资源,包括静态调用的图片资源和动态调用的图片资源。
根据本发明的实施例,操作S343可以包括,将该至少一个配对资源图片中与该差集的名称对应的配对资源图片归类,形成该字符匹配的冗余资源集合。
图10示意性地示出了根据本发明另一实施例的字符匹配的冗余校验的流程图。
如图10所示,根据本发明另一实施例,在操作S120中,通过字符匹配的冗余校验,分析获得该冗余特性,除了操作S310~操作S330之外,还包括操作S350。在操作S350,设置该配对资源前缀。
例如,通过lint工具扫描系统,获得该系统中存在五个主资源图片A、B、C、F、和G,则基于该五个主资源图片的名称形成主资源名称集合为M={A,B,C,F,G}(假设这五个主资源图片的名称中没有前缀)。设置配对资源前缀为表示夜间模式“night-”。扫描该系统后,发现该系统中存在五个与该配对资源前缀相匹配的配对资源图片,分别为night-A,night-B,night-C,night-D,night-E,则基于该五个配对资源图片的名称形成配对资源名称集合为m={A,B,C,D,E}。则该配对资源名称集合减去该主资源名称集合形成的差集为m-M={D,E},由此可得,字符匹配的冗余资源集合为{night-D,night-E}。
根据本发明的实施例,基于配对资源名称集合与主资源名称集合的差集,获取字符匹配的冗余资源集合,来进行字符匹配的冗余校验,无需人工进行比对,有效降低了人力成本、时间成本以及操作风险,提高了校验效率和准确率,实现了字符匹配的冗余校验的自动化、系统化,且易于集成和移植。
根据本发明另一实施例,在操作S130中在该冗余特性表征该图片资源不是该系统中的冗余资源时压缩该图片资源,例如可以是在该冗余特性表征该图片资源不是该系统中的冗余资源时,通过开源压缩工具压缩该图片资源。根据本发明另一实施例,该开源压缩工具例如可以是基于命令行对图像进行压缩的工具Pngquant。
根据本发明的实施例,使用开源的压缩工具可以在系统中通过编写程序、设置压缩参数等手段和方法,对压缩工具进行调用,以及根据需要进行优化,可以为图片处理方法提供了更多的选择性和可能性。
例如,当一个图片资源压缩失败后,闭源的压缩工具可能会停止压缩,而通过开源的压缩工具,可以在系统中设置程序接口以选择在压缩失败的情况下停止压缩或继续压缩。再例如,开源的压缩工具对于单张图片的压缩速度进行设置,也可以对不同的图片资源选择压缩或跳过。基于该开源压缩工具,压缩过程可以实现批量化动调用,还易于集成和移植。
图11示意性地示出了根据本发明实施例的压缩图片资源的流程图。
如图11所示,根据本发明另一实施例,操作S130可以包括操作S410~操作S430。
在操作S410,设置该开源压缩工具中不同图片类型对应的压缩开关。
在操作S420,在图片资源的冗余特性表征该图片资源不是系统的冗余资源时,确定该图片资源的图片类型对应的开关状态是否为开。
在操作S430,在该图片资源的图片类型对应的压缩开关为开时,通过该开源压缩工具压缩该图片资源。
根据本发明的实施例,在开源的压缩工具中设置一个压缩开关,可以有效地避免特殊类型的图片资源在压缩过程中出现问题,从而提高了压缩过程的容错率。
例如,安卓(andriod)系统中存在一种特殊的图片类型,点九(即“.9”,文件拓展名为“.9.png”),点九类型的图片在压缩过程中有时候会产生较大的压缩损失。可以将该点九的图片类型所对应的压缩开关设置为关。当对非冗余资源的图片资源进行压缩时,跳过所有点九类型的图片资源,不进行压缩。
图12示意性地示出了根据本发明另一实施例的压缩图片资源的流程图。
如图12所示,根据本发明另一实施例,操作S130可以包括操作S440~操作S460。
在操作S440,设置该开源压缩工具可压缩的单张图片容量范围。
在操作S450,在图片资源的冗余特性表征该图片资源不是系统中的冗余资源时,确定该图片资源的大小是否在该单张图片容量范围以内。
在操作S460,在该图片资源的大小在该单张图片容量范围以内时,通过所述开源压缩工具压缩该图片资源。
根据本发明的实施例,设置可压缩的单张图片容量范围,例如将该容量范围设置为大于2KB,则该开源压缩工具不再对小于等于2KB的图片资源进行压缩。以此方式,可以避免对容量较小的图片资源进行压缩,提高了整体压缩效率,节约了资源。
图13示意性地示出了根据本发明另一实施例的图片处理方法的流程图。
如图13所示,根据本发明另一实施例的图片处理方法可以包括操作S110~S140,其中操作S110~操作S130可以参考图1~图12的相关描述。
在操作S140,记录相关信息,其中该相关信息包括以下任意一项或多项:在操作S110中获取的该系统中待处理的至少一个图片资源的信息,或者在操作S120中分析获得的图片资源的冗余特性,或者在操作S130中处理的过程的信息。
具体地,该相关信息可以包括图片资源的原始信息、冗余特性、处理后信息等,也可以包括处理过程中的错误情况、异常情况、成功情况,还可以包括压缩过程中的跳过情况、跳过的图片资源等,还可以是其他任意需要保留或记录的信息。当后期需要对图片资源进行维护、查询等操作时,系统所记录的该相关信息可以提供准确可靠的记录以供查阅。
图14示意性地示出了根据本发明实施方式的图片处理方法所架构的一种系统。
如图14所示,根据本发明实施例的图片处理方法所架构的系统1000可以通过图中所示进行架构。其中,系统1000可以包括组件指令集1100、核心1200、构建1300、以及环境1400。
指令集1100用于配置该系统1000中各个组件的相关参数等独有属性的信息,并将所述相关参数等信息输入到各个组件中。指令集1100的目的在于配置各个组件的独有属性,通过脚本语言声明,通过Gradle构建,并输入到各个组件中。指令集1100具体包括资源优化指令集1110和系统扩展指令集1120。
资源优化指令集1110用于配置与资源优化相关组件的参数。资源优化指令集1110包括资源压缩指令集1111、无引用的冗余校验指令集1112、以及字符匹配的冗余校验指令集1113。
资源压缩指令集1111用于配置与压缩图片资源相关的参数,例如,不同图片类型所对应的压缩开关情况、开源压缩工具可压缩的单张图片容量范围、单张图片的压缩速度、压缩过程中发生错误时是否继续进行压缩、或者压缩时间太长时是否跳过等。
无引用的冗余校验指令集1112用于配置无引用的冗余校验中所需要的相关参数。该相关参数,例如可以是lint工具的扫描范围、lint生成XML路径配置、预设的过滤前缀、或者指定名称等。
字符匹配的冗余校验指令集1113用于配置字符匹配的冗余校验中所需要的相关参数(例如配对资源前缀、或者字符匹配的冗余资源集合等)。
系统扩展指令集1120是构建系统1000所依赖的外部构建系统的相关指令集,用于配置系统1000的基本参数,以保证系统1000在运行环境中的正常运行。
核心1200包括冗余校验器1210、资源优化器1220和日志系统1230。
冗余校验器1210用于实现操作S120,即分析获得所述图片资源在系统1000中的冗余特性。冗余校验器1210具体包括无引用的冗余校验器1211和字符匹配的冗余校验器1212。
无引用的冗余校验器1211用于进行无引用的冗余校验及相关操作(例如,参考图4~图6中关于操作S120的相关描述)。无引用的冗余校验器1211主要在于无引用的资源文件,其目的在于减小项目体积。其核心操作在于使用lint工具分析无引用资源,生成XML分析文件,使用XML解析方法解析XML文件,分析出无效的文件信息,并且过滤掉与预设的过滤前缀相匹配的资源(例如,参考图5)、或者过滤掉指定名称的图片资源(例如,参考图6),并将过滤后剩余的不存在被引用关系的资源确定为冗余资源。
字符匹配的冗余校验器1212用于进行字符匹配的冗余校验及相关操作(例如,参考图7~图10中关于操作S120的相关描述)。字符匹配的冗余校验器1212主要在于处理主资源图片和对应的配对资源图片。字符匹配的冗余校验器1212的核心操作在于遍历主资源图片和配对资源图片,找出没有对应的主资源图片的配对资源图片,操作时间复杂度O(n2)。
另外,冗余校验器1210会持续将图片资源的冗余特性、或配置参数等相关信息输入到日志系统1230中。
资源优化器1220用于对经过冗余校验的图片资源进行优化,具体包括删除冗余资源,或将不是冗余资源的图片资源输入资源压缩器1221等。同时,资源优化器1220会持续将图片资源的处理情况、错误情况、成功情况等相关信息输入到日志系统1230,为后期的资源校验、系统维护等操作提供详细准确的可查询记录。
资源压缩器1221用于对图片资源进行压缩,具体可以通过开源压缩工具Pngquant对非冗余的图片资源进行压缩(例如,参考图11和图12中关于操作S130的相关描述)。开源压缩工具Pngquant可以对不同的图片资源进行不同的处理,避免用户定制资源在压缩过程中出现错误。资源压缩器1221的核心在于集成Pngquant,使用Pngquant特别的自适应抖动算法,结合矢量量化算法生成高质量的色彩范围。Pngquant的主要原理在于将图片换成8位并保留透明度通道。在一个实施例中,对于资源大小为75628字节的图片资源,经过资源压缩器1221压缩处理后的容量可以变为19996字节,压缩了73%。另外,资源压缩器1221会持续将压缩图片资源过程中出现的错误情况、异常情况、成功情况、压缩后信息、压缩前信息等各种信息输入到日志系统1230,为后期的资源校验、系统维护等操作提供详细准确的可查询记录。
日志系统1230可以实现操作S140,即记录相关信息。日志系统1230具体包括指令集中的各种参数配置、图片资源的冗余特性、冗余资源处理情况、图片资源的过滤情况、过滤的图片资源的删除情况、图片资源的压缩情况、或者图片资源的处理失败情况等相关信息,为后期系统维护、资源查询等操作提供了详细可靠的记录。日志系统1230将系统1000中的操作执行日志产生的文件进行持久化操作,以供后期维护查询等操作使用。
构建1300包括系统1000使用的插件1310和脚本构建工具1320。其中,插件1310可以包括lint工具等外部环境所提供的资源校验工具。脚本构建工具1320可以包括Gradle工具。
环境1400即系统1000的执行环境,可以包括Java Runtime Environment 1410。其中,Java Runtime Environmentl410内部可以包括虚拟机,用于支持系统语言的编译和运行。
示例性介质
在介绍了本发明示例性实施方式的方法之后,接下来,参考图15对本发明示例性实施方式的适用于图片处理的计算机可读存储介质进行介绍。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算设备上运行时,所述程序代码用于使所述计算设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的图片处理方法中的操作,例如,所述计算设备可以执行如图2中所示的操作S110:获取系统中的至少一个图片资源;操作S120:分析获得所述图片资源在所述系统中的冗余特性;以及操作S130,根据所述冗余特性,处理所述图片资源。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
图15示意性地示出了根据本发明实施方式的适用于图片处理的程序产品500的示意图。
如图15所示,该程序产品500可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——诸如Java,C++等,还包括常规的过程式程序设计语言——诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图16对本发明示例性实施方式的图片处理装置进行说明。
图16示意性地示出了根据本发明实施方式的图片处理装置600的方框图。
如图16所示,根据本发明实施例的图片处理装置600,包括图片获取模块610、冗余特性获得模块620、以及处理模块630。
图片获取模块610例如可以执行操作S110,用于获取系统中的至少一个图片资源。
冗余特性获得模块620例如可以执行操作S120,用于分析获得所述图片资源在所述系统中的冗余特性,所述冗余特性用于表征所述图片资源是否为所述系统中的冗余资源。
处理模块630例如可以执行操作S130,用于根据所述冗余特性,处理所述图片资源。
根据本发明的实施例,在图片处理装置600中,所述处理模块630包括删除子模块631、以及压缩子模块632。
删除子模块631用于在所述冗余特性表征所述图片资源是所述系统中的冗余资源时,将所述图片资源删除。
压缩子模块632用于在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,压缩所述图片资源。
根据本发明的实施例,在图片处理装置600中,所述冗余特性获得模块620包括以下至少之一。
无引用的冗余校验子模块621,用于通过无引用的冗余校验,分析获得所述冗余特性。
字符匹配的冗余校验子模块622,用于通过字符匹配的冗余校验,分析获得所述冗余特性。
根据本发明的实施例,所述无引用的冗余校验子模块621例如可以执行操作S210和操作S220,用于通过lint工具获得所述图片资源的引用特性,所述引用特性用于表征所述图片资源在所述系统中是否存在被引用关系,以及在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源。
根据本发明的实施例,所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源(操作S220),包括在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,获取所述图片资源的名称的前缀(操作S221),以及在所述图片资源的名称的前缀与预设的过滤前缀不匹配时,确定所述图片资源为冗余资源(操作S222)。
根据本发明的实施例,所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源(操作S220),包括在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,获取所述图片资源的名称(操作S223),以及在所述图片资源的名称不是指定名称时,确定所述图片资源为冗余资源(操作S224)。
根据本发明的实施例,在图片处理装置600中,所述字符匹配的冗余校验子模块622例如可以执行操作S310~操作S330,具体用于确定所述图片资源的名称是否与预设的配对资源前缀相匹配(操作S310),在所述图片资源的名称与所述配对资源前缀相匹配时,确定所述图片资源是否属于字符匹配的冗余资源集合(操作S320),以及在所述图片资源属于字符匹配的冗余资源集合时,确定所述图片资源为冗余资源(操作S330)。
根据本发明的实施例,在图片处理装置600中,所述字符匹配的冗余校验子模块622例如还可以执行操作S340,用于获取所述字符匹配的冗余资源集合。
根据本发明的实施例,获取所述字符匹配的冗余资源集合(操作S340),包括获取所述系统中的至少一个主资源图片,以及基于所述至少一个主资源图片的名称形成主资源名称集合,其中所述主资源名称集合中的元素为所述主资源图片的名称去除前缀后的剩余部分,所述主资源图片为静态调用的图片(操作S341),获取所述系统中与所述配对资源前缀相匹配的至少一个配对资源图片,以及基于所述至少一个配对资源图片的名称形成配对资源名称集合,其中,所述配对资源名称集合中的元素为所述配对资源图片的名称去除前缀的剩余部分(操作S342),基于所述配对资源名称集合减去所述主资源名称集合形成的差集,获得所述字符匹配的冗余资源集合(操作S343)。
根据本发明的实施例,基于所述配对资源名称集合减去所述主资源名称集合形成的差集,获得所述字符匹配的冗余资源集合(操作S342),包括将所述至少一个配对资源图片中与所述差集的名称对应的配对资源图片归类,形成所述字符匹配的冗余资源集合。
根据本发明的实施例,在图片处理装置600中,所述字符匹配的冗余校验子模块622例如还可以执行操作S350,用于设置所述配对资源前缀。
根据本发明的实施例,在图片处理装置600中,所述图片获取模块610具体用于通过lint工具扫描所述系统,以获取所述系统中的至少一个主资源图片。
根据本发明的实施例,在图片处理装置600中,所述压缩子模块632例如可以执行操作S410,用于在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,通过开源压缩工具压缩所述图片资源。
根据本发明的实施例,所述开源压缩工具包括基于命令行对图像进行压缩的工具Pngquant。
根据本发明的实施例,在图片处理装置600中,所述压缩子模块632例如可以执行操作S410~操作S430,用于设置所述开源压缩工具中不同图片类型对应的压缩开关(操作S410),在图片资源的冗余特性表征该图片资源不是系统的冗余资源时,确定该图片资源的图片类型对应的开关状态是否为开(操作S420)、以及在所述图片资源的图片类型对应的压缩开关为开时,压缩所述图片资源(操作S430)。
根据本发明的实施例,在图片处理装置600中,所述压缩子模块632例如可以执行操作S440~S460,用于设置所述开源压缩工具可压缩的单张图片容量范围(操作S440),在图片资源的冗余特性表征该图片资源不是系统中的冗余资源时,确定该图片资源的大小是否在该单张图片容量范围以内(操作S450),以及在所述图片资源的大小在所述单张图片容量范围以内时,压缩所述图片资源(操作S460)。
根据本发明的实施例,图片处理装置600还包括记录模块640,例如可以执行操作S140,用于记录相关信息,其中所述相关信息包括以下任意一项或多项:图片获取模块610获取的所述系统中待处理的至少一个图片资源的信息,或者冗余特性获得模块620分析获得的所述冗余特性,或者处理模块630处理的过程的信息。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图17对根据本发明实施方式的适用于进行图片处理的计算设备进行说明。
本发明实施例还提供了一种计算设备。所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的计算设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的图片处理方法中的步骤。例如,所述处理单元可以执行如图2中所示的操作S110:获取系统中的至少一个图片资源;操作S120:分析获得所述图片资源在所述系统中的冗余特性;以及操作S130,根据所述冗余特性,处理所述图片资源。
图17示意性地示出了根据本发明实施方式的适用于进行图片处理的计算设备700的框图。如图17所示的计算设备700仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图17所示,计算设备700以通用计算设备的形式表现。计算设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730。
总线730包括数据总线、控制总线和地址总线。
存储单元720可以包括易失性存储器,例如随机存取存储器(RAM)721和/或高速缓存存储器722,还可以进一步包括只读存储器(ROM)723。
存储单元720还可以包括具有一组(至少一个)程序模块724的程序/实用工具725,这样的程序模块724包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备700也可以与一个或多个外部设备740(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/0)接口750进行。并且,计算设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与计算设备700的其它模块通信。应当明白,尽管图中未示出,可以结合计算设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (32)

1.一种图片处理方法,包括:
获取系统中的至少一个图片资源;
分析获得所述图片资源在所述系统中的冗余特性,所述冗余特性用于表征所述图片资源是否为所述系统中的冗余资源,其中,分析获得所述图片资源在所述系统中的冗余特性,包括以下至少之一:
通过无引用的冗余校验,分析获得所述冗余特性;或者
通过字符匹配的冗余校验,分析获得所述冗余特性;
以及
根据所述冗余特性,处理所述图片资源;
其中,通过字符匹配的冗余校验,分析获得所述冗余特性,包括:
确定所述图片资源的名称是否与预设的配对资源前缀相匹配;
在所述图片资源的名称与所述配对资源前缀相匹配时,确定所述图片资源是否属于字符匹配的冗余资源集合;以及
在所述图片资源属于字符匹配的冗余资源集合时,确定所述图片资源为冗余资源。
2.根据权利要求1所述的方法,其中,根据所述冗余特性,处理所述图片资源,包括:
在所述冗余特性表征所述图片资源是所述系统中的冗余资源时,将所述图片资源删除;或者
在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,压缩所述图片资源。
3.根据权利要求1所述的方法,其中,通过无引用的冗余校验,分析获得所述冗余特性,包括:
通过lint工具获得所述图片资源的引用特性,所述引用特性用于表征所述图片资源在所述系统中是否存在被引用关系;以及
在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源。
4.根据权利要求3所述的方法,其中,在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源,包括:
在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,获取所述图片资源的名称的前缀;以及
在所述图片资源的名称的前缀与预设的过滤前缀不匹配时,确定所述图片资源为冗余资源。
5.根据权利要求3所述的方法,其中,在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源,包括:
在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,获取所述图片资源的名称;以及
在所述图片资源的名称不是指定名称时,确定所述图片资源为冗余资源。
6.根据权利要求1所述的方法,通过字符匹配的冗余校验,分析获得所述冗余特性,还包括:
获取所述字符匹配的冗余资源集合。
7.根据权利要求6所述的方法,其中,获取所述字符匹配的冗余资源集合,包括:
获取所述系统中的至少一个主资源图片,以及基于所述至少一个主资源图片的名称形成主资源名称集合,其中所述主资源名称集合中的元素为所述主资源图片的名称去除前缀后的剩余部分,所述主资源图片为静态调用的图片;
获取所述系统中与所述配对资源前缀相匹配的至少一个配对资源图片,以及基于所述至少一个配对资源图片的名称形成配对资源名称集合,其中,所述配对资源名称集合中的元素为所述配对资源图片的名称去除前缀的剩余部分;
基于所述配对资源名称集合减去所述主资源名称集合形成的差集,获得所述字符匹配的冗余资源集合。
8.根据权利要求7所述的方法,其中,基于所述配对资源名称集合减去所述主资源名称集合形成的差集,获得所述字符匹配的冗余资源集合,包括:
将所述至少一个配对资源图片中与所述差集的名称对应的图片配对资源图片归类,形成所述字符匹配的冗余资源集合。
9.根据权利要求1所述的方法,通过字符匹配的冗余校验,分析获得所述冗余特性,还包括:
设置所述配对资源前缀。
10.根据权利要求7所述的方法,其中,获取所述系统中的至少一个主资源图片,包括:
通过lint工具扫描所述系统,以获取所述系统中的至少一个主资源图片。
11.根据权利要求2所述的方法,其中,在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,压缩所述图片资源,包括:
在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,通过开源压缩工具压缩所述图片资源。
12.根据权利要求11所述的方法,其中,所述开源压缩工具包括基于命令行对图像进行压缩的工具Pngquant。
13.根据权利要求11所述的方法,其中,在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,压缩所述图片资源,包括:
设置所述开源压缩工具中不同图片类型对应的压缩开关;以及
在所述图片资源的图片类型对应的压缩开关为开时,压缩所述图片资源。
14.根据权利要求11所述的方法,其中,在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,压缩所述图片资源,包括:
设置所述开源压缩工具可压缩的单张图片容量范围;以及
在所述图片资源的大小在所述单张图片容量范围以内时,压缩所述图片资源。
15.根据权利要求1所述的方法,还包括记录相关信息,其中所述相关信息包括以下任意一项或多项:
所述获取的所述系统中待处理的至少一个图片资源的信息;或者
所述分析获得的所述冗余特性;或者
所述处理的过程的信息。
16.一种图片处理装置,包括:
图片获取模块,用于获取系统中的至少一个图片资源;
冗余特性获得模块,用于分析获得所述图片资源在所述系统中的冗余特性,所述冗余特性用于表征所述图片资源是否为所述系统中的冗余资源,其中,冗余特性获得模块包括以下至少之一:
无引用的冗余校验子模块,用于通过无引用的冗余校验,分析获得所述冗余特性;或者
字符匹配的冗余校验子模块,用于通过字符匹配的冗余校验,分析获得所述冗余特性;
以及
处理模块,用于根据所述冗余特性,处理所述图片资源;
其中,字符匹配的冗余校验子模块具体用于:
确定所述图片资源的名称是否与预设的配对资源前缀相匹配;
在所述图片资源的名称与所述配对资源前缀相匹配时,确定所述图片资源是否属于字符匹配的冗余资源集合;以及
在所述图片资源属于字符匹配的冗余资源集合时,确定所述图片资源为冗余资源。
17.根据权利要求16所述的装置,其中,处理模块包括:
删除子模块,用于在所述冗余特性表征所述图片资源是所述系统中的冗余资源时,将所述图片资源删除;
压缩子模块,用于在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,压缩所述图片资源。
18.根据权利要求16所述的装置,其中,无引用的冗余校验子模块具体用于:
通过lint工具获得所述图片资源的引用特性,所述引用特性用于表征所述图片资源在所述系统中是否存在被引用关系;以及
在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源。
19.根据权利要求18所述的装置,其中,在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源,包括:
在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,获取所述图片资源的名称的前缀;以及
在所述图片资源的名称的前缀与预设的过滤前缀不匹配时,确定所述图片资源为冗余资源。
20.根据权利要求18所述的装置,其中,在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,确定所述图片资源为冗余资源,包括:
在所述引用特性表征所述图片资源在所述系统中不存在被引用关系时,获取所述图片资源的名称;以及
在所述图片资源的名称不是指定名称时,确定所述图片资源为冗余资源。
21.根据权利要求16所述的装置,其中,字符匹配的冗余校验子模块还用于获取所述字符匹配的冗余资源集合。
22.根据权利要求21所述的装置,其中,获取所述字符匹配的冗余资源集合,包括:
获取所述系统中的至少一个主资源图片,以及基于所述至少一个主资源图片的名称形成主资源名称集合,其中所述主资源名称集合中的元素为所述主资源图片的名称去除前缀后的剩余部分,所述主资源图片为静态调用的图片;
获取所述系统中与所述配对资源前缀相匹配的至少一个配对资源图片,以及基于所述至少一个配对资源图片的名称形成配对资源名称集合,其中,所述配对资源名称集合中的元素为所述配对资源图片的名称去除前缀的剩余部分;
基于所述配对资源名称集合减去所述主资源名称集合形成的差集,获得所述字符匹配的冗余资源集合。
23.根据权利要求22所述的装置,其中,基于所述配对资源名称集合减去所述主资源名称集合形成的差集,获得所述字符匹配的冗余资源集合,包括:
将所述至少一个配对资源图片中与所述差集的名称对应的配对资源图片归类,形成所述字符匹配的冗余资源集合。
24.根据权利要求16所述的装置,其中,字符匹配的冗余校验子模块还用于设置所述配对资源前缀。
25.根据权利要求22所述的装置,其中,图片获取模块具体用于:
通过lint工具扫描所述系统,以获取所述系统中的至少一个主资源图片。
26.根据权利要求17所述的装置,其中,所述压缩子模块具体用于:
在所述冗余特性表征所述图片资源不是所述系统中的冗余资源时,通过开源压缩工具压缩所述图片资源。
27.根据权利要求26所述的装置,其中,所述开源压缩工具包括基于命令行对图像进行压缩的工具Pngquant。
28.根据权利要求26所述的装置,其中,所述压缩子模块还用于:
设置所述开源压缩工具中不同图片类型对应的压缩开关;以及
在所述图片资源的图片类型对应的压缩开关为开时,压缩所述图片资源。
29.根据权利要求26所述的装置,其中,所述压缩子模块还用于:
设置所述开源压缩工具可压缩的单张图片容量范围;以及
在所述图片资源的大小在所述单张图片容量范围以内时,压缩所述图片资源。
30.根据权利要求16所述的装置,还包括记录模块,用于记录相关信息,其中所述相关信息包括以下任意一项或多项:
所述获取的所述系统中待处理的至少一个图片资源的信息;或者
所述分析获得的所述冗余特性;或者
所述处理的过程的信息。
31.一种计算机可读存储介质,其上存储有可执行指令,所述指令在被处理器执行时使处理器执行根据权利要求1~15任意一项所述的方法。
32.一种计算设备,包括:
一个或多个存储器,存储有可执行指令;
一个或多个处理器,执行所述可执行指令,用以实现根据权利要求1~15任意一项所述的方法。
CN201811018905.6A 2018-08-31 2018-08-31 图片处理方法、装置、介质和计算设备 Active CN109344277B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811018905.6A CN109344277B (zh) 2018-08-31 2018-08-31 图片处理方法、装置、介质和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811018905.6A CN109344277B (zh) 2018-08-31 2018-08-31 图片处理方法、装置、介质和计算设备

Publications (2)

Publication Number Publication Date
CN109344277A CN109344277A (zh) 2019-02-15
CN109344277B true CN109344277B (zh) 2020-10-20

Family

ID=65292118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811018905.6A Active CN109344277B (zh) 2018-08-31 2018-08-31 图片处理方法、装置、介质和计算设备

Country Status (1)

Country Link
CN (1) CN109344277B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413282B (zh) * 2019-08-01 2024-01-30 腾讯科技(深圳)有限公司 一种冗余资源处理方法、装置、设备及存储介质
CN113051230A (zh) * 2019-12-27 2021-06-29 福建省天奕网络科技有限公司 Laya项目清理UI图片资源的方法、存储介质
CN112379891B (zh) * 2020-10-09 2023-12-29 广州博冠信息科技有限公司 一种数据处理方法和装置
CN113296715A (zh) * 2021-06-29 2021-08-24 中国平安人寿保险股份有限公司 图片资源处理方法、装置和计算机设备
CN114398125B (zh) * 2021-12-31 2024-02-27 深圳市珍爱捷云信息技术有限公司 点九效果图生成方法及其相关装置
CN115277674A (zh) * 2022-07-19 2022-11-01 广州博冠信息科技有限公司 图片压缩的方法、装置、电子设备、介质及程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970516A (zh) * 2013-01-30 2014-08-06 腾讯科技(深圳)有限公司 冗余图片删除方法及装置
CN105224314A (zh) * 2015-09-09 2016-01-06 北京思特奇信息技术股份有限公司 一种实现前端代码自动优化的方法及系统
CN106161743A (zh) * 2015-04-03 2016-11-23 腾讯科技(深圳)有限公司 一种媒体资源处理方法、装置及终端
CN106599151A (zh) * 2016-12-07 2017-04-26 Tcl集团股份有限公司 一种Android工程无用资源并行清理的方法及系统
CN106708565A (zh) * 2016-11-29 2017-05-24 武汉斗鱼网络科技有限公司 一种清除apk中无用图片资源的方法及装置
CN108089893A (zh) * 2017-12-14 2018-05-29 网易(杭州)网络有限公司 冗余资源的确定方法、装置、终端设备与存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970516A (zh) * 2013-01-30 2014-08-06 腾讯科技(深圳)有限公司 冗余图片删除方法及装置
CN106161743A (zh) * 2015-04-03 2016-11-23 腾讯科技(深圳)有限公司 一种媒体资源处理方法、装置及终端
CN105224314A (zh) * 2015-09-09 2016-01-06 北京思特奇信息技术股份有限公司 一种实现前端代码自动优化的方法及系统
CN106708565A (zh) * 2016-11-29 2017-05-24 武汉斗鱼网络科技有限公司 一种清除apk中无用图片资源的方法及装置
CN106599151A (zh) * 2016-12-07 2017-04-26 Tcl集团股份有限公司 一种Android工程无用资源并行清理的方法及系统
CN108089893A (zh) * 2017-12-14 2018-05-29 网易(杭州)网络有限公司 冗余资源的确定方法、装置、终端设备与存储介质

Also Published As

Publication number Publication date
CN109344277A (zh) 2019-02-15

Similar Documents

Publication Publication Date Title
CN109344277B (zh) 图片处理方法、装置、介质和计算设备
CN106557384A (zh) 基于Linux的数据处理方法、装置和系统
CN111930706B (zh) 基于远程调用的分布式网络文件存储系统和方法
CN109558331B (zh) 应用程序的缺陷检测方法、装置、设备和存储介质
US11398207B2 (en) Multi-screen interactive network teaching method and apparatus
CN115048254B (zh) 数据分配策略的仿真测试方法、系统、设备和可读介质
CN112149035A (zh) 网站静态资源处理方法及装置
CN108628733A (zh) 批量业务处理操作的测试方法及装置
CN111752916B (zh) 数据采集方法及装置、计算机可读存储介质、电子设备
CN112069082A (zh) 一种自动化测试方法及系统
CN101399895A (zh) 数码相机存储空间快速整理系统及方法
CN111258618A (zh) 文件配置方法、装置、计算机设备和存储介质
CN111866137B (zh) 数据采集动态控制方法和装置、电子设备和介质
CN114564388A (zh) 一种程序测试方法、装置、电子设备及存储介质
CN113704281A (zh) 一种数据格式转换方法、装置、存储介质和电子设备
CN113220592A (zh) 自动化测试资源的处理方法、装置、服务器及存储介质
CN115620877A (zh) 一种医疗数据上传云平台的方法、系统、设备及存储介质
CN112685486A (zh) 数据库集群的数据管理方法、装置、电子设备及存储介质
US7890963B2 (en) Vector replacement method
CN113626245B (zh) 防止ios应用程序崩溃的方法
CN114281604B (zh) 数据恢复方法、装置、电子设备及存储介质
CN111522783B (zh) 数据同步方法、装置、电子设备及计算机可读存储介质
CN112596952B (zh) 一种集群数据处理方法、系统、设备以及介质
CN113626391B (zh) 操作系统缓存文件处理方法
US20230068819A1 (en) Environment construction support device and environment construction support method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant