一种应用中的图片加载方法、装置以及设备与流程
未命名
07-12
阅读:87
评论:0
1.本说明书涉及互联网技术领域,尤其涉及一种应用中的图片加载方法、装置以及设备。
背景技术:
2.随着移动互联网的发展,一些应用为支持特定大型活动的版本通常会内置大量的图片资源。然在用户使用体验上得到了提升,但同时增大了应用安装包的占用体积。常规方式将下为了缩小这些图片的占用体积,通常将其压缩为系统支持的常用格式,但是系统支持的常用格式种类较少,且往往不能适应不同的系统,存在兼容性问题。
3.基于此,需要一种在应用中通用性更强的图片加载方案。
技术实现要素:
4.本说明书实施例提供一种应用中的图片加载方法、装置、设备以及存储介质,用以解决如下技术问题:需要一种在应用中通用性更强的图片加载方案。
5.为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
6.在第一方面,本说明书实施例提供一种应用中的图片加载方法,包括:获取图片的加载请求,其中,所述加载请求包含转码图片的存储路径;根据所述图片加载请求执行加载代码,采用所述加载代码调用图片加载工具包;根据所述图片加载工具包解码所述存储路径下的转码图片,生成初始图片;缓存所述初始图片,并渲染。
7.在第二方面,本说明书实施例提供一种应用安装包的生成方法,包括:获取初始图片并转码,生成转码图片;将所述转码图片内置至工程包的资源目录下,其中,所述资源目录用于指示所述转码图片的存储路径或者指示所述初始图片的下载地址;获取加载代码,其中,所述加载代码用于调用所述转码图片的图片加载工具包;打包所述工程包、加载代码和所述图片加载工具包生成应用安装包。
8.在第三方面,与第一方面对应的,本说明书实施例提供一种应用中的图片加载装置,包括:请求模块,获取图片的加载请求,其中,所述加载请求包含转码图片的存储路径;调用模块,根据所述图片加载请求执行加载代码,采用所述加载代码调用图片加载工具包;解码模块,根据所述图片加载工具包解码所述存储路径下的转码图片,生成初始图片;缓存模块,缓存所述初始图片,并渲染。
9.在第四方面,与第二方面对应的本说明书实施例提供一种应用安装包的生成装置,包括:转码模块,获取初始图片并转码,生成转码图片;内置模块,将所述转码图片内置至工程包的资源目录下,其中,所述资源目录用于指示所述转码图片的存储路径或者指示所述初始图片的下载地址;获取模块,获取加载代码,其中,所述加载代码用于调用所述转码图片的图片加载工具包;打包模块,打包所述工程包、加载代码和所述图片加载工具包生成应用安装包。
10.在第五方面,本说明书实施例提供一种电子设备,包括:
11.至少一个处理器;以及,
12.与所述至少一个处理器通信连接的存储器;其中,
13.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面或者第二方面所述的方法。
14.在第六方面,本说明书实施例提供一种非易失性计算机存储介质存储有计算机可执行指令,当计算机读取存储介质中的计算机可执行指令后,该指令使得一个或多个处理器执行如第一方面或者第二方面所述的方法。
15.本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下有益效果:通过获取图片的加载请求,其中,所述加载请求包含转码图片的存储路径;根据所述图片加载请求执行加载代码,采用所述加载代码调用图片加载工具包;根据所述图片加载工具包解码所述存储路径下的转码图片,生成初始图片;缓存所述初始图片,并渲染,从而实现引入自定义的图片加载工具包加载内置图片,解决内置的图片的目标格式受限问题,具备更好的通用性。
附图说明
16.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
17.图1为本说明书实施例所提供的一种应用安装包的生成方法的流程示意图;
18.图2为本说明书实施例所提供的一种应用中的图片加载方法的流程示意图;
19.图3为本说明书实施例所提供的一种对于转码图片的加载流程示意图;
20.图4为本说明书实施例提供的一种应用中的图片加载装置的结构示意图;
21.图5为本说明书实施例提供的一种应用安装包的生成装置的结构示意图;
22.图6为本说明书实施例提供的一种电子设备的结构示意图。
具体实施方式
23.本说明书实施例提供一种应用中的图片加载方法、装置、设备以及存储介质。
24.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
25.在实际应用中,用户通过安装应用安装包将应用安装于不同的终端设备上。而不同系统的终端设备往往对于默认支持的图片格式存在一定限制。
26.例如,常见的静态图片格式有bmp、png、jpg、webp、heif、avif等。大部分的安卓(android)系统的终端设备可能仅支持bmp、png、jpg格式,而小部分其它系统的终端设备对于heif、avif的图片,不能支持或即使支持但存在版本兼容问题。
27.基于此,为实现在不同的终端设备上都能够实现对于内置图片的加载,本说明书
实施例提供一种应用中的图片加载方案。具体包括了两个部分:第一部分,应用中的图片加载;和,第二部分,应用安装包的生成。
28.为使本说明书的实施例更为清楚,首先对第二部分应用安装包的生成进行说明。即对于第二方面,如图1所示,图1为本说明书实施例所提供的一种应用安装包的生成方法的流程示意图,图1中的流程可以包括以下步骤:
29.s101:获取初始图片并转码,生成转码图片。
30.初始图片可以是一般系统(包括安卓系统或者ios系统)的移动设备,基于其系统自带的解码功能都可以支持加载的静态图片,包括bmp、png、jpg格式等。
31.转码图片则为相对于初始图片具有更高的压缩率、占用体积更小的图片,但是系统自带的解码功能不支持加载该类转码图片。例如,转码图片通常为heif、avif格式,其空间体积通常只有bmp、png、jpg格式的20%到25%,但一般的安卓系统或者ios系统的自带功能并不能支持对于该类图片进行解码。换言之,初始图片和转码图片可以互相转化,但是转码图片的体积比初始图片的体积小。例如,原本700kb左右的一张png格式的原始图片,按常规方式转为为webp后大概为200kb,将其转换为avif(系统默认不支持)后仅为80kb
32.可以提供一个转码平台至应用方,应用方将初始图片上传至平台,平台即可进行批量的转码,将任意格式的初始图片均统一转换为具有相同格式的转码图片。例如,对于应用方上传的bmp、png、jpg格式的图片,平台统一转换为avif格式,从而具有更小的占用体积,并且实现了转码图片的格式统一。
33.s103,将所述转码图片内置至工程包的资源目录下。
34.所述资源目录用于指示所述转码图片的存储路径或者指示所述初始图片的下载地址。
35.在常规方式下,如果将转码图片内置到常见的目录,由于不同系统对于不同格式的支持不同,可能会出现报错。例如,在android系统下,如果将avif格式的转码图片内置到常见的res/drawable目录下,那么在编译时系统会报错,将其视为无效图片。
36.基于此,可以将转码图片内置到码bundle工程中的对应资源目录下。例如,对于android系统,可以将其内置到android系统里面的asset或res/raw目录,对于ios系统,可以将其内置到ios的bundle或assets。
37.由于在本技术中引入了自定义的图片加载工具包,在图片加载工具包传入asset路径或resid的自定义路径,从而实现通过图片加载工具包加载所述内置图片。此外,在本说明属实施例中,在图片加载工具中还可以预先存储有可配置的统一资源定位器(uniform resource locator、url),即下载地址,下载地址用于下载所述初始图片。
38.s105,获取加载代码,其中,所述加载代码用于调用所述转码图片的图片加载工具包。
39.如前所述,系统自带的图片加载代码往往缺乏泛用性。因此,应用方需要预先修改图片加载的代码,生成加载代码,加载代码用于调用所述转码图片的图片加载工具包,并基于图片加载工具包中的资源、信息和功能来加载所述转码图片。
40.s107,打包所述工程包、加载代码和所述图片加载工具包生成应用安装包。
41.用户在获取得到该应用安装包并进行安装之后,则在安装包进行安装时则可以基于将该资源目录中所包含的转码图片、加载代码和所述图片加载工具存储至移动设备的预
定目录下。
42.当应用基于用户的操作,需要加载图片时,则涉及到本说明书实施例所涉及的第一方面,对于第一方面,如图2所示,图2为本说明书实施例所提供的一种应用中的图片加载方法的流程示意图,图2中的流程可以包括以下步骤:
43.s201,获取图片的加载请求。
44.图片的加载请求可以是基于用户的点击操作所产生,也可以是应用基于应用的内置功能自动触发。例如,在一些活动中,用户需要点击任意的一张卡片的背面,并加载得到该卡片的正面,那么当用户点击该卡片时,即可能触发了图片的加载请求;又例如,在应用中的一些页面的展示中,需要同时展示相应的图片,那么当跳转至该页面时,则可能触发了对于图片的加载请求。
45.那么此时,应用在触发了对于图片的加载请求时,则可以传入一个存储路径,该存储路径即为转码图片在用户的本地终端设备中的存储地址。
46.s203,根据所述图片加载请求执行加载代码,采用所述加载代码调用图片加载工具包。
47.如前所述,加载代码和加载工具包已经被预先安装于用户的本地设备中。当应用被触发到图片的加载请求时,即执行对应的加载代码。所述加载代码并非系统默认的加载代码,而是前述的已经被修改过的加载代码,修改过的加载代码用于调用图片加载工具包。
48.s205,根据所述图片加载工具包解码所述存储路径下的转码图片,生成初始图片。
49.图片加载工具包内内置了专属解码器,用于解码所述存储路径下的转码图片。例如,当转码图片为avif格式时,通过内置专属的avif-jpg格式的专属解码器,该专属解码器的功能在于先把内置的avif进行解码成可渲染的位图进行渲染,然后同时把位图再编码成常用的jpg或png格式的初始图片。
50.图片加载工具包中所包含的专属解码器可以是自定义的。也就是说,转码图片的格式和初始图片的格式都是可以预先给定,在转码过程中所需要的代码或者资源也可以基于双方的格式预先配置。在实际应用中,转码图片的格式为高压缩率的格式,例如,可以是heif或者avif格式,初始图片的格式为安卓系统或者ios系统自带的解码器可以解码渲染的格式,例如,bmp、jpg或者png格式。
51.此外,图片加载工具包中所包含的专属解码器的功能可以扩展的。换言之,假设在当前使用的是avif格式的图片,但是如果以后出现压缩率比avif更高的图片格式,则仅需要在图片加载工具包中引入对于所述压缩率更高的图片格式的解码功能即可,从而可以灵活的适应技术的发展。
52.s207,缓存所述初始图片,并渲染。
53.解码后的初始图片可以持久化的存储至预先指定的文件目录中,或者缓存于内存中。并采用安卓系统或者ios系统自带的解码器对初始图片进行渲染即可。
54.此外,在下载并存储所述初始图片的时候,可以采用异步缓存的方式。通过异步缓存的方式,不会阻塞当前对于初始图片的加载,可以实现更稳定的图片渲染。
55.通过获取图片的加载请求,其中,所述加载请求包含转码图片的存储路径;根据所述图片加载请求执行加载代码,采用所述加载代码调用图片加载工具包;根据所述图片加载工具包解码所述存储路径下的转码图片,生成初始图片;缓存所述初始图片,并渲染,从
而实现引入自定义的图片加载工具包加载内置图片,解决内置图片转码的目标格式受限问题,具备更好的通用性。
56.在一种实施方式中,应用在缓存所述初始图片时,可以存储所述初始图片至所述加载工具包中的指定路径(该指定路径即为初始图片的存储路径),进而建立所述指定路径和所述转码图片的存储路径的映射关系。
57.例如,存储所述初始图片至所述加载工具包中的资源目录下的另一文件夹中。如前所述,转码图片通常在所述加载工具包中的资源目录下,例如,假设avif格式的转码图片存储在res/raw目录下的avif文件中,那么,可以同样将初始图片存储在res/raw目录下的jpg文件中。
58.进而,对于每一个存储在jpg文件中的初始图片的路径,均建立一个与对应的转码图片的存储路径的映射关系。该映射关系同样存储在所述加载工具包中,从而有利于后续对于转码图片的再次加载。
59.在一种实施方式中,在根据所述图片加载工具包解码所述存储路径下的转码图片之前,还可以查询所述缓存中是否已经存在所述转码图片所对应的初始图片,若存在,渲染所述缓存中的初始图片。
60.例如,对于任意给定的一个转码图片,可以基于其唯一标识(例如,图片名称)从内存中去查询是否已经存在对应的初始图片;或者,还可以基于前述已经建立的映射关系中进行查询。
61.如前所述,每当一个初始图片被缓存至图片加载工具包之后,则会建立初始图片的存储路径和转码图片的存储路径的映射关系在所述加载工具包中,因此,在采用图片加载工具包中的专属解码器解码所述转码图片之前,还可以基于转码图片的存储路径直接查询所述映射关系,如果存在转码图片的存储路径和初始图片的存储路径的映射关系,则可以直接从该映射关系中获取得到初始图片的存储路径,进而获取得到初始图片,并采用系统自带的解码器渲染所述初始图片即可,避免了对于转码图片的重复解码,提高了对于图片的加载效率,提高用户体验。
62.当然,如果在映射关系中不存在转码图片的存储路径,那么则仍然可以基于前述的步骤调用图片加载工具中的专属解码器解码所述转码图片,并在解码成功之后生成初始图片进行渲染和存储。
63.在一种实施方式中,如果根据所述图片加载工具包解码所述存储路径下的转码图片失败(失败原因可能是包括图片本身存在数据丢失,或者,工具包中的解码器未能及时升级等等),则还可以从所述图片加载工具中获取初始图片的下载地址(即前述的预先存储的可配置的url),从所述下载地址获取初始图片。进而将初始图片进行缓存并渲染,通过该方式可以保障图片加载的稳定性。
64.如图3所示,图3为本说明书实施例所提供的一种对于转码图片的加载流程示意图。在安装完应用安装包之后,当转码图片的加载请求被触发之后。即首先从缓存中查询是否存在所述转码图片所对应的初始图片,如果存在则采用系统自带的解码器进行渲染即可;如果不存在,则采用图片加载工具中的专属解码器进行解码;如果采用图片加载工具中的专属解码器解码失败,则采用在线下载的方式获取得到初始图片进行渲染。
65.在一种实施方式中,应用中的某些功能在运行的过程中可能还需要对转码图片进
行替换。例如,在应用中的某个集卡活动中,随着活动的升级或者变更,需要加载的卡片的正面图案发生了改变(例如,在同一个集五福的活动中,今年的敬业卡和去年的敬业卡的图片可能不同)。那么,就需要由服务端主动进行推送图片和对应的存储路径(包括在本地的存储路径和可下载的路径)。即接受服务端对于所述转码图片的替换请求;根据所述更换请求变更删除所述储路径下的转码图片,以及,更新所述图片加载工具中的所述初始图片的下载地址。由于对于转码图片的替换是发生在图片加载工具包内,而下载地址的替换是发生在服务端,从而这种替换对于应用本身并不会产生影响,在保持灵活的扩展性的同时维持了应用本身的稳定。
66.基于同样的思路,本说明书一个或多个实施例还提供了上述方法对应的装置和设备,
67.在第三方面,与第一方面对应的,如图4所示,图4为本说明书实施例提供的一种应用中的图片加载装置的结构示意图,所述装置包括:
68.请求模块401,获取图片的加载请求,其中,所述加载请求包含转码图片的存储路径;
69.调用模块403,根据所述图片加载请求执行加载代码,采用所述加载代码调用图片加载工具包;
70.解码模块405,根据所述图片加载工具包解码所述存储路径下的转码图片,生成初始图片;
71.缓存模块407,缓存所述初始图片,并渲染。
72.可选地,所述缓存模块407,存储所述初始图片至所述加载工具包中的指定路径;建立所述指定路径和所述转码图片的存储路径的映射关系。
73.可选地,所述装置还包括查询模块409,查询所述缓存中是否已经存在所述转码图片所对应的初始图片,若存在,渲染所述缓存中的初始图片。
74.可选地,装置还包括下载模块411,从所述图片加载工具中获取初始图片的下载地址,从所述下载地址获取初始图片。
75.可选地,所述装置还包括替换模块413,根据所述更换请求变更删除所述储路径下的转码图片,以及,更新所述图片加载工具中的所述初始图片的下载地址。
76.可选地,所述缓存模块407,异步缓存所述下载的初始图片。
77.可选地,在所述装置中,所述转码图片包括heif格式或者avif格式的图片。
78.在第四方面,与第二方面对应的,如图5所示,图5为本说明书实施例提供的一种应用安装包的生成装置的结构示意图,所述装置包括:
79.转码模块501,获取初始图片并转码,生成转码图片;
80.内置模块503,将所述转码图片内置至工程包的资源目录下,其中,所述资源目录用于指示所述转码图片的存储路径或者指示所述初始图片的下载地址;
81.获取模块505,获取加载代码,其中,所述加载代码用于调用所述转码图片的图片加载工具包;
82.打包模块507,打包所述工程包、加载代码和所述图片加载工具包生成应用安装包。
83.在第五方面,如图6所示,图6为本说明书实施例提供的一种电子设备的结构示意
图,所述设备包括:
84.至少一个处理器;以及,
85.与所述至少一个处理器通信连接的存储器;其中,
86.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面或者第二方面所述的方法。
87.在第六方面,基于同样的思路,本说明书实施例还提供了对应于上述方法的一种非易失性计算机存储介质,存储有计算机可执行指令,当计算机读取存储介质中的计算机可执行指令后,该指令使得一个或多个处理器执行如第一方面或者第二方面所述的方法。
88.在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
89.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
90.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,
或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
91.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
92.本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
93.本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
94.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
95.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
96.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
97.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
98.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
99.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
100.本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
101.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
102.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
103.以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
技术特征:
1.一种应用中的图片加载方法,包括:获取图片的加载请求,其中,所述加载请求包含转码图片的存储路径;根据所述图片加载请求执行加载代码,采用所述加载代码调用图片加载工具包;根据所述图片加载工具包解码所述存储路径下的转码图片,生成初始图片;缓存所述初始图片,并渲染。2.如权利要求1所述的方法,其中,缓存所述初始图片,包括:存储所述初始图片至所述加载工具包中的指定路径;建立所述指定路径和所述转码图片的存储路径的映射关系。3.如权利要求1所述的方法,在根据所述图片加载工具包解码所述存储路径下的转码图片之前,所述方法还包括:查询所述缓存中是否已经存在所述转码图片所对应的初始图片,若存在,渲染所述缓存中的初始图片。4.如权利要求3所述的方法,其中,若根据所述图片加载工具包解码所述存储路径下的转码图片失败,所述方法还包括:从所述图片加载工具中获取初始图片的下载地址,从所述下载地址获取初始图片。5.如权利要求4所述的方法,其中,所述方法还包括:接受服务端对于所述转码图片的替换请求;根据所述更换请求变更删除所述储路径下的转码图片,以及,更新所述图片加载工具中的所述初始图片的下载地址。6.如权利要求4所述的方法,其中,缓存所述初始图片,包括:异步缓存所述下载的初始图片。7.如权利要求1所述的方法,其中,所述转码图片包括heif格式或者avif格式的图片。8.一种应用安装包的生成方法,包括:获取初始图片并转码,生成转码图片;将所述转码图片内置至工程包的资源目录下,其中,所述资源目录用于指示所述转码图片的存储路径或者指示所述初始图片的下载地址;获取加载代码,其中,所述加载代码用于调用所述转码图片的图片加载工具包;打包所述工程包、加载代码和所述图片加载工具包生成应用安装包。9.一种应用中的图片加载装置,包括:请求模块,获取图片的加载请求,其中,所述加载请求包含转码图片的存储路径;调用模块,根据所述图片加载请求执行加载代码,采用所述加载代码调用图片加载工具包;解码模块,根据所述图片加载工具包解码所述存储路径下的转码图片,生成初始图片;缓存模块,缓存所述初始图片,并渲染。10.一种应用安装包的生成装置,包括:转码模块,获取初始图片并转码,生成转码图片;内置模块,将所述转码图片内置至工程包的资源目录下,其中,所述资源目录用于指示所述转码图片的存储路径或者指示所述初始图片的下载地址;获取模块,获取加载代码,其中,所述加载代码用于调用所述转码图片的图片加载工具
包;打包模块,打包所述工程包、加载代码和所述图片加载工具包生成应用安装包。11.一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至8任一项所述的方法。
技术总结
本说明书实施例公开了一种应用中的图片加载方法、装置以及设备。通过获取图片的加载请求,其中,所述加载请求包含转码图片的存储路径;根据所述图片加载请求执行加载代码,采用所述加载代码调用图片加载工具包;根据所述图片加载工具包解码所述存储路径下的转码图片,生成初始图片;缓存所述初始图片,并渲染,从而实现引入自定义的图片加载工具包加载内置图片,解决内置的图片的目标格式受限问题,具备更好的通用性。具备更好的通用性。具备更好的通用性。
技术研发人员:冯显桂
受保护的技术使用者:支付宝(杭州)信息技术有限公司
技术研发日:2023.03.31
技术公布日:2023/7/7
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
