一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种图片缓存与加载方法、系统、设备及存储介质与流程

2022-06-29 21:48:09 来源:中国专利 TAG:


1.本发明涉及图片处理技术领域,尤其涉及一种图片缓存与加载方法、系统、设备及存储介质。


背景技术:

2.随着物联平台等服务快速发展,各产品的供应及应用关联越来越密切,当有新产品或者应用需要展示多张图片,原有的图片加载方法是根据图片尺寸和显示大小找到图片在内存中的缓存地址,然后展示在界面上;但是,若出现显示区域大小发生改变或处于低内存环境时,传统的查找缓存地址再显示的方法会浪费大量内存空间并且导致机器因内存不足而发生卡顿;且每切换一张图片都需要进行缓存地址查找,无法达到同时切换图片的效果,有可能还是会引起java内存溢出的异常。


技术实现要素:

3.为了克服现有技术的不足,本发明的目的之一在于提供一种图片缓存与加载方法,既能节省内存空间,又能提升图片显示速度,避免出现占用过多内容导致机器卡顿的情况。
4.本发明的目的之二在于提供一种图片缓存与加载系统。
5.本发明的目的之三在于提供一种电子设备。
6.本发明的目的之四在于提供一种计算机可读存储介质。
7.本发明的目的之一采用如下技术方案实现:
8.一种图片缓存与加载方法,包括:
9.响应于图片加载请求判断内存队列中是否存在待加载图片的缓存数据;所述内存队列中存储有按照访问频率顺序排列的多张预加载图片的缓存数据;
10.若所述内存队列中缓存有待加载图片,则获取其缓存数据进行图片展示和图片切换;若无待加载图片的缓存数据,则直接加载该图片并根据加载完成的图片数据更新所述内存队列中预加载图片的缓存数据。
11.进一步地,所述内存队列存储预加载图片的缓存数据的方法为:
12.通过强引用方式将图片缓存在所述内存队列中,并按照访问频率顺序对所述内存队列中的缓存数据进行排序;
13.实时判断所述内存队列的存储数据量是否达到预设阈值,若超过预设阈值,则将访问频率最低的图片缓存数据释放。
14.进一步地,所述内存队列为双向链表结构;更新所述内存队列时,更新各图片的最新访问频率将加载完成的图片缓存数据插入双向链表的对应节点中进行存储。
15.进一步地,所述缓存数据包括本地文件路径以及图片的分辨率信息。
16.进一步地,缓存图片数据时,还包括:
17.获取图片的分辨率信息,根据分辨率信息将图片宽高数值与最大显示区域的宽高
数值分别进行比对,若图片宽高数值大于最大显示区域的宽高数值则对图片进行压缩直至图片宽高数值小于最大显示区域的宽高数值,将压缩后的图片预加载在所述内存队列中。
18.进一步地,显示所述内存队列中预加载的图片的方法为:
19.获取图片的分辨率信息,将所述内存队列中经压缩的图片恢复至原始的分辨率后再进行展示。
20.进一步地,显示所述内存队列中预加载的图片的方法为:
21.将所述内存队列中的压缩图片进行预先显示,再获取图片的分辨率信息,对压缩的图片恢复至原始的分辨率后再将其图片替换掉压缩图片。
22.本发明的目的之二采用如下技术方案实现:
23.一种图片缓存与加载系统,执行如上述的图片缓存与加载方法,包括:
24.预加载模块,按照访问频率顺序对图片进行预加载并将其缓存在内存队列;
25.判断模块,响应于图片加载请求判断所述内存队列中是否存在待加载图片的缓存数据;
26.显示模块,当所述内存队列中缓存有待加载图片,则获取其缓存数据进行图片展示和图片切换;当所述内存队列中无待加载图片的缓存数据,则直接加载该图片进行显示,并将加载完成的图片预加载至所述内存队列中。
27.本发明的目的之三采用如下技术方案实现:
28.一种电子设备,其包括处理器、存储器及存储于所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的图片缓存与加载方法。
29.本发明的目的之四采用如下技术方案实现:
30.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述的图片缓存与加载方法。
31.相比现有技术,本发明的有益效果在于:
32.本发明预先按照访问频率确定下次可能显示的图片,对该图片进行预加载使其在内存队列中进行缓存,节省了内存空间,有效的防止了加载图片时导致的内存溢出;同时省去每次去重新加载图片的耗时操作,让低内存的机器也能快速同时切换图片,提高显示的速度,提升了用户体验。
附图说明
33.图1为本发明图片缓存与加载方法的流程示意图;
34.图2为本发明内存队列的图片排序示意图;
35.图3为本发明图片缓存与加载系统的模块示意图。
具体实施方式
36.下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
37.实施例一
38.本实施例提供一种图片缓存与加载方法,通过对多张图片进行预加载及根据最大显示区域在内存中进行缓存的方案,解决传统图片缓存过程中出现内存空间浪费以及机器卡顿的问题,本方法既能节省内存空间,也能省去每次去重新加载图片的耗时操作,让低内存的机器也能快速同时切换图片,提高用户体验。
39.如图1所示,所述方法具体包括如下步骤:
40.响应于图片加载请求判断内存队列中是否存在待加载图片的缓存数据;所述内存队列中存储有按照访问频率顺序排列的多张预加载图片的缓存数据;
41.若所述内存队列中缓存有待加载图片,则获取其缓存数据进行图片展示和图片切换;若无待加载图片的缓存数据,则直接加载该图片并根据加载完成的图片数据更新所述内存队列中预加载图片的缓存数据。
42.所述内存队列中会预先加载部分图片并加入到缓存中,所述内存队列可预先建立缓存对象列表,其中对象列表的排列方式是按照访问顺序实现的,即一直没访问的对象会放在队尾,即将被淘汰;而最近访问的对象会放在队头,最后被淘汰。
43.如图2所示,预加载的图片则是根据图片的访问频率高低来筛选的,预先将图片按照访问频率从高到低进行排序,按照所述内存队列的内存大小将一定量的访问频率高的图片通过强引用方式缓存至所述内存队列中,使得访问频率高的图片可预先进行加载并将其缓存数据存储在所述内存队列中。所述内存队列中的缓存数据也是按照访问频率从高到低的顺序进行排列,若有新图片要插入所述内存队列中,则需将所述内存队列中排列在队尾的图片释放掉,为新图片提供缓存空间。
44.本实施例中系统在接收到图片加载请求从所述内存队列中查找是否存在用户需要显示的待加载图片;其中,所述图片加载请求可以是单张图片显示的请求,也可以是多张图片切换的请求。
45.在查找过程中若所述内存队列中存在用户所需的待加载图片,说明该待加载图片已经进行了预加载操作并缓存至所述内存队列中,此时直接从所述内存队列中取出该图片的缓存数据并直接展示该图片;若所述内存队列中存在用户所需的多张待加载图片,则从所述内存队列中取出多张图片以便于用户对多张图片进行快速切换和显示。
46.若所述内存队列中不存在用户所需的待加载图片,说明用户所需的待加载图片并非访问频率相对较高的图片,此时则安装传统的方式找到该图片的本地缓存地址,再根据缓存地址直接加载图片;其次,将加载完成的数据存放至所述内存队列中。
47.将加载完成的数据存在至所述内存队列中时,需实时判断所述内存队列的存储数据量是否达到预设阈值,若超过预设阈值,则将访问频率最低的图片缓存数据释放再将加载完成的数据存放至所述内存队列中。
48.本实施例的所述内存队列为双向链表结构,其每个数据接点中都有两个指针分别指向直接后继和直接前驱,从而实现访问顺序和插入顺序;在将加载完成的数据存放至所述内存队列时,更新各图片的最新访问频率,根据加载完成的图片的最新访问频率将该图片的缓存数据插入至双向链表的对应节点中进行存储,使得所述内存队列中预加载的图片依然按照访问频率进行排序。
49.所述内存队列中存储的预加载图片的缓存数据包括有图片的本地文件路径以及图片的分辨率信息;所述本地文件路径用于回溯图片的本地位置;所述图片的分辨率信息
则用于记录图片的原始显示状态。
50.本实施例将图片进行预加载并存入所述内存队列中时,还可获取图片分辨率信息,根据分辨率信息确定图片的宽度值以及高度值,将图片宽高数值与最大显示区域的宽高数值分别进行比对,若图片宽高数值大于最大显示区域的宽高数值则对图片进行压缩直至图片宽高数值小于最大显示区域的宽高数值,将压缩后的图片预加载在所述内存队列中,使得预加载的图片可经过压缩后进行缓存,避免占用过大内存导致图片显示速度无法提高。
51.当在所述内存队列中找到待加载图片的缓存数据进行显示时,获取图片的原分辨率信息,将所述内存队列中经压缩的图片恢复至原分辨率后再进行展示,使得经过预加载的图片可显示其原始分辨率,提高图片显示清晰度。
52.在一些实施例中,可先将所述内存队列中压缩的图片进行显示,在显示压缩图片的过程中再获取图片的原分辨率信息,对压缩的图片恢复至原分辨率,再将其恢复原分辨率的图片替换掉压缩的图片,减少用户等待图片展示的时间,也可恢复图片清晰度。
53.本实施例通过对多张图片进行预加载及根据最大显示区域在内存中进行缓存的方法来解决因内存空间不足导致机器卡顿的问题,既能节省内存空间,也能省去每次去重新加载图片的耗时操作,让低内存的机器也能快速同时切换图片,提高用户体验。
54.实施例二
55.本实施例提供一种图片缓存与加载系统,该系统执行如实施例一所述的图片缓存与加载方法,如图3所示,所述系统具体包括预加载模块、判断模块以及显示模块;
56.所述预加载模块按照访问频率顺序对图片进行预加载并将其缓存在内存队列,即将访问频率高的多张图片进行预加载,使得省去每次去重新加载图片的耗时操作,让低内存的机器也能快速同时切换图片,提高用户体验。
57.所述判断模块则用于根据图片加载请求判断所述内存队列中是否存在待加载图片的缓存数据;当所述内存队列中缓存有待加载图片,则获取该图片的缓存数据并将其传输至所述显示模块进行图片展示;当所述内存队列中无待加载图片的缓存数据,则根据图片的本地缓冲地址直接加载该图片,并将其通过所述显示模块进行显示,同时将加载完成的图片预加载至所述内存队列中,实现下一次快速显示的效果。
58.在一些实施例中还提供一种电子设备,其包括处理器、存储器及存储于所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一中的图片缓存与加载方法;另外,在一些实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述的图片缓存与加载方法。
59.上述系统、设备及存储介质与前述实施例中的方法是基于同一发明构思下的多个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的系统、设备及存储介质的结构及实施过程,为了说明书的简洁,在此就不再赘述。
60.上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献