一种IOS图片加载性能优化的方法技术

技术编号:32462095 阅读:32 留言:0更新日期:2022-02-26 08:53
本发明专利技术涉及图像处理技术领域,为了解决图片加载过程中渲染显示卡顿和内存不足的技术问题,提供了一种IOS图片加载性能优化的方法,包括:步骤1、加载位图持有的数据;步骤2、生成缩略图;步骤3、分配内存缓存区来管理解码操作,并将缩略图从磁盘读取到内存,解码内存中的缩略图数据,并设置成位图缩略图;步骤4、将位图缩略图封装成图片对象,图片对象持有数据引用;步骤5、图层直接使用图片对象所持有的位图缩略图数据。采用上述方式防止了应用的卡顿和闪退问题,有效避免了内存不足的情况。有效避免了内存不足的情况。

【技术实现步骤摘要】
一种IOS图片加载性能优化的方法


[0001]本专利技术涉及图像处理
,具体是一种IOS图片加载性能优化的方法。

技术介绍

[0002]IOS应用加载图片是开发过程遇到的常见功能。图片的显示分为三步:加载、解码、渲染。通常,我们操作的只有加载,解码和渲染是由系统框架进行。
[0003]当图片显示在屏幕上时,需要图片对象作为数据源,图片对象持有的数据是未解码的压缩数据,能节省较多的内存和加快存储。
[0004]当图片对象被赋值给加载图片的视图以显示图片时,图像数据会被解码,变成RGB的颜色数据。解码是一个计算量较大的任务,且需要CPU来执行;并且解码出来的图片体积与图片的宽高有关系,而与图片原来的体积无关。
[0005]假如一个多图片显示的功能:在上下滑动显示图片的过程中,加载图片、赋值给加载图片的视图,相当于在主线程同时进行IO操作、解码操作等,会造成内存迅速增长和CPU负载瞬间提升。并且内存的迅速增加会触发系统的内存回收机制,尝试回收其他后台进程的内存,增加CPU的工作量。如果系统无法提供足够的内存,则会先结束其他后台进程,最终仍无法满足的话会结束当前进程。
[0006]专利号为CN202011090927.0,专利名称为“一种图片渲染方法、装置、设备和存储介质”,其公开的技术方式:通过使用渲染图片为缩略图的方式,减少数据,同时缩略图和渲染数据的加载是根据待渲染图片动态加载的,在渲染的同时把内存的使用维持在一个恒定的状态,从而解决了因数据量过大而造成的加载速度慢,耗时漫长,渲染显示卡顿和内存不足的技术问题。仔细分析,此专利存在一定的弊端:(1)图片处理、加载和渲染的过程中,是在主线程中进行中的,如果数据量过大,还是无法避免卡顿的情况,(2)内存被维持在恒定的状态,降低了渲染的速度。

技术实现思路

[0007]为了解决图片加载过程中渲染显示卡顿和内存不足的技术问题,本专利技术提供了一种IOS图片加载性能优化的方法。
[0008]本专利技术解决上述问题所采用的技术方案是:
[0009]一种IOS图片加载性能优化的方法,包括:
[0010]步骤1、加载位图持有的数据;
[0011]步骤2、生成缩略图;
[0012]步骤3、分配内存缓存区来管理解码操作,并将缩略图从磁盘读取到内存,解码内存中的缩略图数据,并设置成位图缩略图;
[0013]步骤4、将位图缩略图封装成图片对象,图片对象持有数据引用;
[0014]步骤5、图层直接使用图片对象所持有的位图缩略图数据。
[0015]进一步地,所述步骤2具体为:索引真实图片大小,并按照预期对其设置,生成缩略
图,或使用图片资源管理工具进行压缩以生成缩略图。
[0016]本专利技术相比于现有技术具有的有益效果是:本申请采用在加载图片的视图渲染之前减小图片大小,首先加载压缩图片如JPEG格式的图片,然后进行相关设置,解码后根据设置生成位图缩略图,包装成一个图片对象,最终传递给图层渲染。通过加载缩略图的方式,实现异步解码,最终优化加载图片的过程,防止了应用的卡顿和闪退问题。采用数据引用,不需要设置恒定的内存,完全避免了内存不足的情况。
具体实施方式
[0017]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合实施例,对本专利技术进行进一步的详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0018]一种IOS图片加载性能优化的方法,包括:
[0019]步骤1、加载位图持有的数据:如JPEG格式的图片;
[0020]步骤2、生成缩略图:索引真实图片大小,并按照预期对其设置,主要是对长和宽进行设置,使其缩小为原图片尺寸大小的n倍以生成缩略图,也可以直接使用图片资源管理工具进行压缩以生成缩略图;使用缩略图在解码过程中可以节省大量的时间和空间;
[0021]步骤3、分配内存缓存区来管理解码操作,并将缩略图从磁盘读取到内存,解码内存中的缩略图数据,并设置成位图缩略图;该步骤主要是将未解码的二进制数据,解码成RGB的颜色数据;
[0022]步骤4、将位图缩略图封装成图片对象,图片对象持有数据引用;
[0023]步骤5、图层直接使用图片对象所持有的位图缩略图数据。
[0024]现有技术在加载图片时是在主线程解码并直接调用这些颜色数据,而在本申请中是先将解码后的RGB颜色数据封装起来以供图层引用,因此整个解码过程可以在子线程中进行,在主线程中完成界面更新,从而实现异步处理,防止了应用的卡顿和闪退问题。此外,步骤4步骤5使用了封装技术,通过对数据的引用,直接获取数据并完成渲染过程,由于引用没有独立空间,此过程不涉及到内存空间的问题,所以在渲染过程中避免了内存的溢出问题。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种IOS图片加载性能优化的方法,其特征在于,包括:步骤1、加载位图持有的数据;步骤2、生成缩略图;步骤3、分配内存缓存区来管理解码操作,并将缩略图从磁盘读取到内存,解码内存中的缩略图数据,并设置成位图缩略图;步骤4、将位图缩略图封装成图片对象,图片对象持...

【专利技术属性】
技术研发人员:宗超东陈阵熊俊
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1