CN109886861A - 一种高效率图档格式heif图像加载方法及装置 - Google Patents
一种高效率图档格式heif图像加载方法及装置 Download PDFInfo
- Publication number
- CN109886861A CN109886861A CN201910016091.0A CN201910016091A CN109886861A CN 109886861 A CN109886861 A CN 109886861A CN 201910016091 A CN201910016091 A CN 201910016091A CN 109886861 A CN109886861 A CN 109886861A
- Authority
- CN
- China
- Prior art keywords
- image
- target image
- heif
- decoded picture
- area
- 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.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Processing Or Creating Images (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
一种高效率图档格式HEIF图像加载方法及装置。本申请实施例公开了一种HEIF图像加载方法,该方法在检测到获取的目标图像为HEIF图像时,基于应用程序中的图像加载框架,调用HEIF图像原生解码器对目标图像进行解码操作,并调用图形处理器根据解码得到的位图数据渲染加载目标图像。图像加载框架会预先构建三级缓存区,分别为磁盘图像缓存区、未解码图像缓存区和已解码图像缓存区,在加载目标图像的过程中,将经各个阶段处理得到与目标图像相关的数据分别存储在各级缓存区,即使对其中某级缓存区进行了清理,应用程序在需要加载已加载过的HEIF图像时,仍可以从其他缓存区中获取与HEIF图像相关的数据,进而直接基于该数据进行再次加载目标图像,终端无需多次获取HEIF图像。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及一种高效率图档格式HEIF图像加载方法及装置。
背景技术
高效率图档格式(High Efficiency Image File Format,HEIF)是动态图像专家组(Moving Picture Experts Group,MPEG)在2013年推出的一种图像格式,其可以利用更少的容量存储画质相同或更好的图像;从理论上来说,HEIF图像文件是JPEG(JointPhotographic Experts Group)图像文件大小的一半,但是HEIF图像文件具有与JPEG图像文件相同、甚至更好的图像质量。
现阶段,Android P系统已推出支持HEIF图像格式的功能,即可以利用Android P系统的原生解码器对HEIF图像进行解码,并基于解码得到的位图渲染加载HEIF图像。
相应地,当Android P系统上运行的应用程序需要显示HEIF图像时,其可以从网络或终端本地获取HEIF图像,将该HEIF图像存储于系统内存,然后通过Android P系统的原生应用程序编程接口(Application Programming Interface,API),调用Android P系统的原生解码器对系统内存中存储的HEIF图像进行解码,得到该HEIF图像对应的位图数据,将该位图数据存储于系统内存中,进而调用图形处理器根据系统内存中存储的位图数据渲染显示HEIF图像。
在上述HEIF图像加载方法中,无论是从网络或本地获取的HEIF图像,还是解码HEIF图像得到的位图数据,均被存储在系统内存中;由于系统内存容量有限,随着加载的HEIF图像的逐渐增多,其中剩余的可用内存将快速地减少,可能在很短的时间内,其中剩余的可用内存就无法支撑应用程序的正常运行;若要保证应用程序的正常运行,则需要清理系统内存,如此一来,对于一些已加载过的HEIF图像,应用程序仍需重新执行上述加载流程,这样将对终端处理器的性能产生大量的损耗,甚至会对终端的寿命产生影响。
发明内容
本申请实施例提供了一种HEIF图像加载方法及装置,能够有效地减少对终端处理器性能的耗费,延长终端的使用寿命。
有鉴于此,本申请第一方面提供了一种HEIF图像加载方法,应用于终端,所述终端中安装有应用程序,所述应用程序中包括图像加载框架,所述方法包括:
目标图像第一缓存步骤:所述应用程序获取目标图像,调用所述图像加载框架将所述目标图像存储于磁盘图像缓存区;所述磁盘图像缓存区设置于所述终端的磁盘中;
目标图像第二缓存步骤:调用所述图像加载框架将所述目标图像存储于未解码图像缓存区;所述未解码图像缓存区设置于所述终端的内存中;
图像解码步骤:判断所述目标图像是否为HEIF图像,若是,则通过所述图像加载框架,调用HEIF图像原生解码器对所述目标图像解码得到位图数据,并将所述位图数据存储于已解码图像缓存区;所述已解码图像缓存区设置于所述终端的内存中;
图像加载步骤:利用图形处理器从所述已解码图像缓存区中获取所述位图数据,根据所述位图数据加载所述目标图像。
可选的,所述方法还包括:
当所述应用程序需要再次加载所述目标图像时,根据所述目标图像的标识,在所述已解码图像缓存区中查找所述目标图像对应的位图数据;
若在所述已解码图像缓存区中查找到所述目标图像对应的位图数据,则执行所述图像加载步骤;
若未在所述已解码图像缓存区中查找到所述目标图像对应的位图数据,则根据所述目标图像的标识,在所述未解码图像缓存区中查找所述目标图像;
若在所述未解码图像缓存区中查找到所述目标图像,则执行依次所述图像解码步骤和所述图像加载步骤;
若未在所述未解码图像缓存区中查找到所述目标图像,则根据所述目标图像的标识,在所述磁盘图像缓存区中查找所述目标图像;
若在所述磁盘图像缓存区中查找到所述目标图像,则依次执行所述目标图像第二缓存步骤、所述图像解码步骤和所述图像加载步骤;
若未在所述磁盘图像缓存区中查找到所述目标图像,则依次执行所述目标图像第一缓存步骤、所述目标图像第二缓存步骤、所述图像解码步骤和所述图像加载步骤。
可选的,所述图像解码步骤和所述图像加载步骤属于HEIF图像处理机制;
所述HEIF图像处理机制被全局配置在所述图像加载框架中。
可选的,所述判断所述目标图像是否为HEIF图像,包括:
根据所述目标图像的文件结构特征,判断所述目标图像的文件结构特征与HEIF图像的文件结构特征是否一致。
可选的,在所述将所述位图数据存储于已解码图像缓存区之后,所述方法还包括:
调用所述图像加载框架,生成所述位图数据对应的指针;所述指针用于指示所述位图数据在所述已解码图像缓存区中的存储位置;
则所述利用图形处理器从所述已解码图像缓存区中获取所述位图数据,包括:
将所述指针发送至所述图形处理器;
利用所述图形处理器,根据所述指针从所述已解码图像缓存区中所述获取所述位图数据。
可选的,所述位图数据为编辑位图数据;所述编辑位图数据是调用所述图像加载框架对所述目标图像对应的位图数据进行计算处理得到的;
则所述图像加载步骤具体包括:
利用所述图形处理器从所述已解码图像缓存区中获取所述编辑位图数据,根据所述编辑位图数据加载所述目标图像对应的编辑效果图像。
可选的,所述编辑效果图像包括:所述目标图像对应的圆形图像、所述目标图像对应的圆角图像以及所述目标图像对应的边框图像。
可选的,所述方法还包括:
未完成对所述目标图像的加载时,在所述目标图像对应的加载位置显示占位图像;
完成对所述目标图像的加载后,利用所述目标图像替换所述占位图像。
可选的,所述方法还包括:
未完成对所述目标图像的加载时,根据所述图形处理器的处理进度,相应地显示所述目标图像对应的加载进度;
完成对所述目标图像的加载后,显示所述目标图像。
本申请第二方面提供了一种HEIF图像加载装置,所述装置包括:
获取模块,用于获取目标图像;
第一缓存模块,用于调用图像加载框架将所述目标图像存储于磁盘图像缓存区;所述磁盘图像缓存区设置于所述终端的磁盘中;
第二缓存模块,用于调用所述图像加载框架将所述目标图像存储于未解码图像缓存区;所述未解码图像缓存区设置于所述终端的内存中;
判断模块,用于判断所述目标图像是否为HEIF图像;
调用模块,用于在判断所述目标图像为HEIF图像的情况下,通过所述图像加载框架,调用HEIF图像原生解码器对所述目标图像解码得到位图数据;
第三缓存模块,用于调用所述图像加载框架将所述位图数据存储于已解码图像缓存区;所述已解码图像缓存区设置于所述终端的内存中;
加载模块,用于利用图形处理器从所述已解码图像缓存区中获取所述位图数据,根据所述位图数据加载所述目标图像。
可选的,所述装置还包括:
第一查找模块,用于当需要再次加载所述目标图像时,根据所述目标图像的标识,在所述已解码图像缓存区中查找所述目标图像对应的位图数据;
若在所述已解码图像缓存区中查找到所述目标图像对应的位图数据,则调用所述加载模块;
若未在所述已解码图像缓存区中查找到所述目标图像对应的位图数据,则调用第二查找模块;
所述第二查找模块,用于根据所述目标图像的标识,在所述未解码图像缓存区中查找所述目标图像;
若在所述未解码图像缓存区中查找到所述目标图像,则依次调用所述判断模块、所述调用模块、所述第三缓存模块和所述加载模块;
若未在所述未解码图像缓存区中查找到所述目标图像,则调用第三查找模块;
所述第三查找模块,用于根据所述目标图像的标识,在所述磁盘图像缓存区中查找所述目标图像;
若在所述磁盘图像缓存区中查找到所述目标图像,则依次调用所述第二缓存模块、所述判断模块、所述调用模块、所述第三缓存模块和所述加载模块;
若未在所述磁盘图像缓存区中查找到所述目标图像,则依次调用所述获取模块、所述第一缓存模块、所述第二缓存模块、所述判断模块、所述调用模块、所述第三缓存模块和所述加载模块。
可选的,所述判断模块、所述调用模块、所述第三缓存模块和所述加载模块属于HEIF图像处理单元;
所述HEIF图像处理单元被全局配置在所述图像加载框架中。
可选的,所述判断模块具体用于:
根据所述目标图像的文件结构特征,判断所述目标图像的文件结构特征与HEIF图像的文件结构特征是否一致。
可选的,所述装置还包括:
指针生成模块,用于调用所述图像加载框架,生成所述位图数据对应的指针;所述指针用于指示所述位图数据在所述已解码图像缓存区中的存储位置;
则所述加载模块具体用于:
将所述指针发送至所述图形处理器;
利用所述图形处理器,根据所述指针从所述已解码图像缓存区中所述获取所述位图数据。
可选的,所述位图数据为编辑位图数据;所述编辑位图数据是调用所述图像加载框架对所述目标图像对应的位图数据进行计算处理得到的;
则所述加载模块具体用于:
利用所述图形处理器从所述已解码图像缓存区中获取所述编辑位图数据,根据所述编辑位图数据加载所述目标图像对应的编辑效果图像。
可选的,所述编辑效果图像包括:所述目标图像对应的圆形图像、所述目标图像对应的圆角图像以及所述目标图像对应的边框图像。
可选的,所述装置还包括:
第一显示模块,用于在未完成对所述目标图像的加载时,在所述目标图像对应的加载位置显示占位图像;完成对所述目标图像的加载后,利用所述目标图像替换所述占位图像。
可选的,所述装置还包括:
第二显示模块,用于在未完成对所述目标图像的加载时,根据所述图形处理器的处理进度,相应地显示所述目标图像对应的加载进度;完成对所述目标图像的加载后,显示所述目标图像。
本申请第三方面提供了一种HEIF图像加载设备,所述设备包括处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令,执行本申请第一方面提供的所述HEIF图像加载方法。
本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行本申请第一方面提供的所述HEIF图像加载方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例提供了一种HEIF图像加载方法,该方法在检测到所获取的目标图像为HEIF图像时,基于应用程序中的图像加载框架,调用HEIF图像原生解码器,对该目标图像相应地进行解码操作,并调用图形处理器根据解码得到的位图数据渲染加载目标图像。在终端上安装应用程序时,其中的图像加载框架会预先构建三级缓存区,分别为磁盘图像缓存区、未解码图像缓存区和已解码图像缓存区,相应地,在加载目标图像的过程中,图像加载框架会将经各个阶段处理得到与目标图像相关的数据分别存储在各级缓存区,这样,即使对其中某级缓存区进行了清理,应用程序在需要加载已加载过的HEIF图像时,仍可以从其他未被清理的缓存区中,获取与该HEIF图像相关的数据,进而直接基于该数据进行再次加载目标图像,由此,应用程序无需多次重复地获取HEIF图像,减少了对终端处理器性能的耗费,延长了终端的使用寿命。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的HEIF图像加载方法的应用场景示意图;
图2为本申请实施例提供的HEIF图像加载方法的流程示意图;
图3为本申请实施例提供的目标图像对应的编辑效果图像的示意图;
图4为本申请实施例提供的HEIF图像加载装置的结构示意图;
图5为本申请实施例提供的终端设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有技术中,在加载HEIF图像的过程中,系统内存既要存储应用程序从网络或终端本地获取的HEIF图像,又要存储解码HEIF图像得到的位图数据;随着所加载的HEIF图像的增多,系统内存中剩余的可用内存将逐渐减少,为了保证系统内存中的可用内存足以支撑应用程序的正常运行,需要经常对系统内存中存储的数据进行清理;这种情况下,其中存储的已加载过的HEIF图像以及HEIF图像对应的位图数据通常都会被清理掉。若应用程序需要再次加载某些已加载过的HEIF图像,应用程序还需要重新获取HEIF图像,并对其进行解码和渲染加载处理,如此,终端处理器需要重复执行大量不必要的操作处理,对其性能会造成很大的损耗,甚至会缩短终端的使用寿命。
为了解决上述现有技术存在的问题,本申请实施例提供了一种HEIF图像加载方法,其在加载HEIF图像的过程中采用了一种新的图像缓存机制,通过该图像缓存机制减少对于终端处理器的性能损耗,延长终端的使用寿命。
下面先对本申请实施例提供的HEIF图像加载方法的核心技术思路进行介绍:
本申请实施例提供的HEIF图像加载方法应用于安装有应用程序的终端,该应用程序中包括图像加载框架;应用程序获取到目标图像后,先调用图像加载框架将该目标图像分别存储于磁盘图像缓存区和未解码图像缓存区,其中,磁盘图像缓存区设置于终端的磁盘中,未解码图像缓存区设置于终端的内存中;然后,应用程序调用图像加载框架判断目标图像是否为HEIF图像,若是,则继续通过该图像加载框架,调用HEIF图像原生解码器对目标图像进行解码得到位图数据,并将该位图数据存储于已解码图像缓存区,该已解码图像缓存区设置于终端的内存中;进而,利用图形处理器从已解码图像缓存区中获取位图数据,根据该位图数据加载显示目标图像。
需要说明的是,在终端上安装应用程序时,应用程序中的图像加载框架会相应地在终端的磁盘中构建磁盘图像缓存区,以及在终端的内存中构建未解码图像缓存区和已解码图像缓存区;进而,在应用程序需要加载HEIF图像时,图像加载框架可以将经各个阶段处理得到的与HEIF图像相关的数据,分别存储在磁盘图像缓存区、未解码图像缓存区和已解码图像缓存区中;这样,即使对某个缓存区进行了清理,应用程序在需要加载已加载过的HEIF图像时,仍然可以从其他缓存区中获取与该HEIF图像相关的数据,进而直接基于所获取的数据再次加载该HEIF图像,由此终端无需多次重复地执行完整的HEIF图像加载流程,从而减少了对终端处理器性能的耗费,能够一定程度地延长终端的使用寿命。
应理解,上述本申请实施例提供的HEIF图像加载方法应用于终端,该终端具体可以为智能手机、计算机、个人数字助理(Personal Digital Assitant,PDA)、平板电脑等,特别的,该终端可以运行于Android系统或Android P系统;本申请实施例中提及的应用程序为需要加载HEIF图像的软件应用程序(Application,APP),该应用程序具体可以为社交应用程序、游戏应用程序、影音播放应用程序、购物应用程序等,在此不对应用该HEIF图像加载方法的应用程序做任何限定。
为了便于理解本申请实施例提供的技术方案,下面结合应用场景,对本申请实施例提供的HEIF图像加载方法做整体性介绍。
参见图1,图1为本申请提供的HEIF图像加载方法的应用场景示意图。
如图1所示,终端1000上运行的应用程序1100获取到目标图像后,调用自身的图像加载框架1110,通过图像加载框架1110中的第一缓存模块1111,将目标图像存储于磁盘图像缓存区1210,该磁盘图像缓存区1210设置在终端的磁盘1200中;通过图像加载框架1110中的第二缓存模块1112,将目标图像存储于未解码图像缓存区1310,该未解码图像缓存区1310设置在终端的内存1300中。
然后,应用程序1100调用图像加载框架1110中的判断模块1113,判断目标图像是否为HEIF图像,若是,则通过该图像加载框架1110中的调用模块1114,调用操作系统1400中的HEIF图像原生解码器1410,HEIF图像原生解码器1410从未解码图像缓存区1310中获取目标图像,对该目标图像进行解码操作得到其对应的位图数据;进而,图像加载框架1110调用第三缓存模块1115,将目标图像对应的位图数据存储于已解码图像缓存区1320,该已解码图像缓存区1320也设置在终端的内存1300中。
最终,应用程序1100调用图形处理器1500从已解码图像缓存区1320中获取目标图像对应的位图数据,对该位图数据做渲染处理,在应用程序1100的显示界面上相应地加载显示目标图像。
需要说明的是,上述第一缓存模块1111、第二缓存模块1112、判断模块1113、调用模块1114和第三缓存模块1115均属于图像加载框架1110中的功能模块,在应用程序1100运行的过程中,上述各个功能模块相应地执行自身所需执行的操作,以完成应用程序1100对HEIF图像的加载。
需要说明的是,即使对磁盘图像缓存区1210、未解码图像缓存区1310和已解码图像缓存区1320中任意一级缓存区进行了清理,应用程序1100在需要加载已加载过的HEIF图像时,仍可以从其他未被清理的缓存区中,获取与该HEIF图像相关的数据,进而基于该数据再次加载该HEIF图像,从而减少了对终端处理器性能的耗费,从一定程度上延长终端的使用寿命。
下面通过实施例对本申请提供的HEIF图像加载方法进行介绍。
参见图2,图2为本申请实施例提供的一种HEIF图像加载方法的流程示意图。如图2所示,该HEIF图像加载方法包括以下步骤:
S201:目标图像第一缓存步骤:所述应用程序获取目标图像,调用所述图像加载框架将所述目标图像存储于磁盘图像缓存区;所述磁盘图像缓存区设置于所述终端的磁盘中。
在实际应用中,应用程序响应于用户的操作,可以相应地为用户展示对应的显示界面,显示界面中通常包括一些需要从网络上下载的图像,这些图像可以作为目标图像;以使用58同城客户端为例,58同城客户端响应于用户发起的查看某租房信息的操作,相应地为用户展示承载有该租房信息的显示界面,该显示界面上通常会包括从网络上下载的与待租房屋相关的图像,这些图像即可作为目标图像。
此外,在一些情况下,用户可能需要从终端本地选择一些图像,并通过应用程序上传这些图像,这些图像也可以作为目标图像;仍以使用58同城客户端为例,用户若需要通过58同城客户端发布租房信息,用户可能需要在终端本地选择与待租房屋相关的图像,并通过58同城客户端上传这些图像,这些图像即可作为目标图像。
也就是说,目标图像既可以为从网络上获取的图像,也可以为终端本地存储的图像,在此不对目标图像的来源做任何限定。
应理解,在实际应用中,目标图像可以为静态图片、动态图片、视频等,在此也不对目标图像的具体类型做任何限定。
应用程序响应于用户的操作,相应地从网络或终端本地获取目标图像,进而调用自身的图像加载框架,将所获取的目标图像存储于磁盘图像缓存区;该磁盘图像缓存区存储于终端的磁盘中,由于磁盘中的存储区域通常比较大,因此磁盘图像缓存区所对应的存储区域通常也可以被设置得较大,即该磁盘图像缓存区通常可以存储大量的图像。
S202:目标图像第二缓存步骤:调用所述图像加载框架将所述目标图像存储于未解码图像缓存区;所述未解码图像缓存区设置于所述终端的内存中。
应用程序获取的目标图像后,还需要调用图像加载框架将目标图像存储于未解码图像缓存区中;该未解码图像缓存区存储在终端的内存中,相比于终端的磁盘,终端的内存的存储区域较小,因此,未解码图像缓存区所对应的存储区域的大小通常小于磁盘图像缓存区。
需要说明的是,终端的内存相比终端的磁盘调用速度更快,即从终端的内存中获取数据的速度通常大于从终端的磁盘中获取内存的速度,相应地,从未解码图像缓存区中调用目标图像的速度,相比从磁盘图像缓存区中调用图像的速度要快。
需要说明的是,在实际应用中,应用程序在获取到目标图像后,可以先将目标图像存储于磁盘图像缓存区,后将目标图像存储于未解码图像缓存区,也可以先将目标图像存储于未解码图像缓存区,后将目标图像存储于磁盘图像缓存区,还可以同时将目标图像分别存储于磁盘图像缓存区和未解码图像缓存区,在此不对目标图像的缓存顺序做任何限定。
S203:图像解码步骤:判断所述目标图像是否为HEIF图像,若是,则通过所述图像加载框架,调用HEIF图像原生解码器对所述目标图像解码得到位图数据,并将所述位图数据存储于已解码图像缓存区;所述已解码图像缓存区设置于所述终端的内存中。
将目标图像存储至磁盘图像缓存区和未解码图像缓存区后,应用程序进一步调用图像加载框架,判断目标图像是否为HEIF图像;应理解,图像加载框架中预先配置有HEIF图像的相关特征,相应地,调用图像加载框架对目标图像进行判断时,可以将目标图像的图像特征与HEIF图像的图像特征进行匹配,若匹配成功,则可以确定目标图像为HEIF图像,反之,若匹配失败,则可以确定目标图像并非HEIF图像。
具体判断时,图像加载框架可以根据目标图像的文件结构特征,判断目标图像的文件结构特征与HEIF图像的文件结构特征是否一致。由于不同格式的图像的文件结构特征不同,因此,可以预先将HEIF图像的文件结构特征配置于图像加载框架,相应地,图像加载框架判断目标图像的图像格式时,可以对比目标图像的文件结构特征与HEIF图像的文件结构特征是否一致,若一致,则说明目标图像为HEIF图像,反之,若不一致,则说明目标图像并非HEIF图像。
需要说明的是,上述文件结构特征具体是指图像文件中所包括的各个子文件的分布情况,例如各个子文件在图像文件的分布位置,各个子文件所占据的空间大小等。
应理解,在实际应用中,除了可以将图像的文件结构特征作为判断依据外,还可以将其他能够表征图像特征的相关数据作为判断依据,在此不对目标图像的判断依据做任何限定。
判断出目标图像为HEIF图像后,应用程序按照图像加载框架中预先配置的HEIF图像解码规则,查找用于解码HEIF图像的HEIF图像原生解码器,该HEIF图像解码规则指示了HEIF图像原生解码器的分布位置;查找到HEIF图像原生解码器后,图像加载框架调用该HEIF图像原生解码器,从未解码图像缓存区中获取目标图像,利用该HEIF图像原生解码器对目标图像进行解码处理,得到目标图像对应的位图数据;进而,将该目标图像对应的位图数据存储于已解码图像缓存区,该已解码图像缓存区也设置于终端的内存中。
需要说明的是,在Android P系统中,HEIF图像原生解码器配置于操作系统中,相应地,HEIF图像解码规则用于指示HEIF图像原生解码器在操作系统中的分布位置;进而,应用程序在解码HEIF图像时,需要通过图像加载框架,在操作系统中查找并调用该HEIF图像原生解码器。
需要说明的是,若判断目标图像并非HEIF图像,图像加载框架可以相应地采用与目标图像的图像格式对应的处理逻辑,对该目标图像进行处理;本申请所提供的方法主要用于对HEIF图像进行处理,对处理其他图像格式的图像时所采用的处理方式不做任何限定。
S204:图像加载步骤:利用图形处理器从所述已解码图像缓存区中获取所述位图数据,根据所述位图数据加载所述目标图像。
调用HEIF图像原生解码器解码目标图像,得到其对应的位图数据后;应用程序进一步调用终端设备中的图形处理器,从已解码图像缓存区中获取目标图像对应的位图数据,进而,对该目标图像对应的位图数据进行渲染处理,从而在应用程序的显示界面上加载显示该目标图像。
具体实现时,HEIF图像原生解码器在完成对目标图像的解码处理后,可以向应用程序返回用于表征解码操作已完成的指令,相应地,应用程序调用图像加载框架,根据目标图像对应的位图数据在已解码图像缓存区中的存储位置,生成该位图数据对应的指针,该指针用于指示位图数据在已解码图像缓存区中的存储位置;然后,应用程序将位图数据对应的指针发送给图形处理器,图形处理器相应地根据该指针获知位图数据在已解码图像缓存区中的存储位置,进而,从该存储位置处获取目标图像对应的位图数据。
在实际应用中,用户可能需要对应用程序中显示的某些图像进行一些特定的编辑操作,例如,用户在通过应用程序上传图像时,经常需要对所要上传的图像做一些编辑处理;为了满足用户对图像的编辑需求,在本申请实施例提供的图像加载方法中,还可以响应于用户的编辑操作,显示目标图像对应的编辑效果图像。
具体实现时,应用程序可以响应于用户的编辑操作,调用图像加载框架对目标图像对应的位图数据进行计算处理,以得到与用户的编辑操作所对应的编辑位图数据,该编辑位图数据同样被存储于已解码图像缓存区;进而,应用程序利用图形处理器,从已解码图像缓存区中获取该编辑位图数据,根据该编辑位图数据加载目标图像对应的编辑效果图像。
具体的,用户可以在应用程序提供的编辑选项中选择特定的编辑效果,如修改目标图像原本的形状、为目标图像添加边框等;相应地,应用程序调用图像加载框架从已解码图像缓存区中获取目标图像对应的位图数据,根据用户所选择的编辑效果,采用与该编辑效果对应的计算处理方式,对目标图像对应的位图数据进行相应地计算处理,得到对应的编辑位图数据,并将该编辑位图数据存储于已解码图像缓存区;进而,应用程序调用图形处理器,从已解码图像缓存区中获取该编辑位图数据,对该编辑位图数据进行渲染处理,在应用程序的显示界面上显示目标图像对应的编辑效果图像。
可选的,编辑效果图像具体可以包括:目标图像对应的圆形图像、目标图像对应的圆角图像以及目标图像对应的边框图像。
其中,目标图像对应的圆形图像指的是外围边界为圆形的目标图像,目标图像对应的圆角图像指的是外围边界为圆角的目标图像,目标图像对应的边框图像指的是在目标图像的外围加载有边框的目标图像。如图3所述,图像301为目标图像的原图像,图像302为目标图像对应的圆形图像,图像303为目标图像对应的圆角图像,图像304为目标图像对应的边框图像。
应理解,在实际应用中,编辑效果图像除了包括对应于上述编辑效果的图像外,还可以包括对应于其他编辑效果的图像,在此不对编辑效果图像所对应的编辑效果图做具体限定。
在实际应用中,从应用程序获取目标图像,到图形处理器渲染显示目标图像,这个过程通常需要耗费一段时间,在这段时间内,应用程序的显示界面上目标图像对应的加载位置通常为一片空白;对于用户来说,会因此对应用程序的使用体验会大大降低。
针对该问题,本申请实施例提供的HEIF图像加载方法提供了以下几种可能的实现方式,以在加载显示目标图像的过程中,填补目标图像对应的加载位置处的空白,一定程度上提高用户对于应用程序的使用体验。
第一种可能的实现方式,应用程序在未完成对目标图像的加载时,在目标图像对应的加载位置显示占位图像;进而,在完成对目标图像的加载后,利用目标图像替换该占位图像。
具体的,应用程序可以在自身获取到目标图像后,相应地通知图形处理器先渲染加载占位图像,相应地,图形处理器可以从已解码图像缓存区中获取占位图像对应的位图数据,并基于该位图数据进行渲染处理,以在显示目标图像之前,先在目标图像对应的加载位置处先加载显示该占位图像;进而,图形处理器后续完成对于目标图像的位图数据的加载处理后,可以直接利用渲染完成的目标图像替换占位图像,即在目标图像对应的加载位置处,加载该目标图像。
应理解,占位图像可以为应用程序自身预先设置的图像,该图像具体可以为应用程序自身对应的图标等,其所对应的位图数据预先被存储于已解码图像缓存区,相应地,应用程序在通知图形处理器加载该占位图像时,图形处理器可以快速地获取到占位图像对应的位图数据,并对其进行渲染处理,以在应用界面上加载显示该占位图像。
由此,在显示目标图像之前,应用程序可以先在目标图像对应的加载位置处加载显示占位图像,以填补该加载位置处的空白,从而在一定程度上提高用户对于应用程序的使用体验。
第二种可能的实现方式,应用程序在未完成对目标图像的加载时,根据图形处理器的处理进度,相应地显示目标图像对应的加载进度;进而,在完成对目标图像的加载后,显示该目标图像。
具体的,应用程序可以在图形处理器对目标图像的位图数据进行处理的过程中,实时地监控图形处理器对位图数据的处理进度,并在目标图像对应的加载位置处,相应地向用户展示与该处理进度对应的进度条或进度扇形图,以表示目标图像对应的加载进度;加载进度表征图形处理器已完成对目标图像对应的位图数据的渲染处理时,即可在目标图像对应的加载位置处,直接显示该目标图像。
由此,用户可以实时地获知目标图像当前的加载进度,并相应地根据该加载进度选择是否继续等待目标图像的加载,从一定程度上,提高了用户对于应用程序的使用体验。
需要说明的是,现有的HEIF图像加载方法具体实现时,需要通过操作系统的原生API调用HEIF图像原生解码器;然而,这种通过操作系统的原生API调用HEIF图像原生解码器处理逻辑,并不能直接被应用程序全局应用,因此,在应用程序开发阶段,程序开发人员需在针对应用程序中每处需要加载HEIF图像的地方均配置上述HEIF图像处理逻辑,如此,程序开发人员需要人工编辑修改大量代码。
针对上述技术问题,本申请实施例提供的HEIF图像加载方法,在图像加载框架中全局配置HEIF图像处理机制,该HEIF图像处理机制具体是指上述S203中的图像解码步骤和S204中的图像加载步骤。
具体的,本申请实施例提供的HEIF图像加载方法利用应用程序中配置的图像加载框架对HEIF图像进行加载处理,应用程序内部的图像加载框架支持全局配置,即可以在应用程序中任何需要加载显示HEIF图像的地方,均可以调用同一套HEIF图像处理机制对HEIF图像进行加载处理;因此,程序开发人员仅需设置一套HEIF图像加载机制,并将该HEIF图像加载机制全局配置于图像加载框架即可,无需针对应用程序中每处需要加载HEIF图像的地方逐一设置HEIF图像加载机制,大大减少了程序开发人员的工作量。
本申请实施例的HEIF图像加载方法,在检测到所获取的目标图像为HEIF图像时,基于应用程序中的图像加载框架,调用HEIF图像原生解码器,对该目标图像相应地进行解码操作,并调用图形处理器根据解码得到的位图数据渲染加载目标图像。在终端上安装应用程序时,其中的图像加载框架会预先构建三级缓存区,分别为磁盘图像缓存区、未解码图像缓存区和已解码图像缓存区,相应地,在加载目标图像的过程中,图像加载框架会将经各个阶段处理得到与目标图像相关的数据分别存储在各级缓存区,这样,即使对其中某级缓存区进行了清理,应用程序在需要加载已加载过的HEIF图像时,仍可以从其他未被清理的缓存区中,获取与该HEIF图像相关的数据,进而直接基于该数据进行再次加载目标图像,由此,应用程序无需多次重复地获取HEIF图像,减少了对终端处理器性能的耗费,延长了终端的使用寿命。
需要说明的是,通过图2所示的方法实施例完成对于目标图像的加载后,目标图像被相应地存储于磁盘图像缓存区和未解码图像缓存区,目标图像对应的位图数据被相应地存储于已解码图像缓存区;相应地,当应用程序需要再次加载目标图像时,应用程序可以从已解码图像缓存区、未解码图像缓存区和磁盘图像缓存区中任意一级缓存区中,获取与目标图像相关的数据,进而基于所获取的数据进再次加载目标图像。
下面对应用程序再次加载目标图像的处理方法进行介绍;应理解,在磁盘图像缓存区和未解码图像缓存区中存储目标图像时,会相应地存储目标图像的标识,同样地,在已解码图像缓存区中存储目标图像的位图数据时,也会相应地存储目标图像的标识。
当应用程序需要再次加载目标图像时,应用程序可以先根据目标图像的标识,在已解码图像缓存区中查找目标图像对应的位图数据。
若在该已解码图像缓存区中查找到目标图像对应的位图数据,则执行图像加载步骤S204;即,调用图形处理器从已解码图像缓存区中获取该目标图像对应的位图数据,并对该位图数据进行渲染处理,从而在应用程序的显示界面上加载显示目标图像。
若未在已解码图像缓存区中查找到目标图像对应的位图数据,则根据该目标图像的标识,在未解码图像缓存区中查找目标图像。
若在未解码图像缓存区中查找到目标图像,则执行依次图像解码步骤S203和图像加载步骤S204;即,应用程序调用图像加载框架,判断该目标图像是否为HEIF图像,若是,则继续通过图像加载框架,调用操作系统上的HEIF图像原生解码器解码该目标图像,得到其对应的位图数据,并将该位图数据存储于已解码图像缓存区;进而,调用图形处理器从该已解码图像缓存区中获取目标图像对应的位图数据,对其进行渲染处理,从而在应用程序的显示界面上加载显示目标图像。
若未在未解码图像缓存区中查找到目标图像,则继续根据目标图像的标识,在磁盘图像缓存区中查找目标图像。
若在磁盘图像缓存区中查找到该目标图像,则依次执行目标图像第二缓存步骤S202、图像解码步骤S203和图像加载步骤S204;即,应用程序先调用图像加载框架将目标图像存储于未解码图像缓存区;然后,调用图像加载框架,判断该目标图像是否为HEIF图像,若是,则继续通过图像加载框架,调用操作系统上的HEIF图像原生解码器解码该目标图像,得到其对应的位图数据,并将该位图数据存储于已解码图像缓存区;进而,调用图形处理器从该已解码图像缓存区中获取目标图像对应的位图数据,对其进行渲染处理,从而在应用程序的显示界面上加载显示目标图像。
若未在磁盘图像缓存区中查找到目标图像,则依次执行目标图像第一缓存步骤S201、目标图像第二缓存步骤S202、图像解码步骤S203和图像加载步骤S204;即,应用程序需要重新从网络或终端本地获取目标图像,并分别将目标图像存储于磁盘图像缓存区和未解码图像缓存区;然后,调用图像加载框架,判断该目标图像是否为HEIF图像,若是,则继续通过图像加载框架,调用操作系统上的HEIF图像原生解码器解码该目标图像,得到其对应的位图数据,并将该位图数据存储于已解码图像缓存区;进而,调用图形处理器从该已解码图像缓存区中获取目标图像对应的位图数据,对其进行渲染处理,从而在应用程序的显示界面上加载显示目标图像。
如此,即使在对某级缓存区进行了清理的情况下,应用程序在需要加载已加载过的HEIF图像时,仍可以从其他未被清理的缓存区中,获取与该HEIF图像相关的数据,进而直接基于该数据进行再次加载目标图像;由此应用程序可以快速地完成对于目标图像的再次加载,并且无需多次重复地获取HEIF图像,减少了对终端处理器性能的耗费,延长了终端的使用寿命。
针对上文描述的HEIF图像加载方法,本申请还提供了对应的HEIF图像加载装置,以使上述HEIF图像加载方法在实际中得以应用和实现。
参见图4,图4是与上文图2所示的HEIF图像加载方法对应的一种HEIF图像加载装置400的结构示意图,该HEIF图像加载装置400包括:
获取模块401,用于获取目标图像;
第一缓存模块402,用于调用图像加载框架将所述目标图像存储于磁盘图像缓存区;所述磁盘图像缓存区设置于所述终端的磁盘中;
第二缓存模块403,用于调用所述图像加载框架将所述目标图像存储于未解码图像缓存区;所述未解码图像缓存区设置于所述终端的内存中;
判断模块404,用于判断所述目标图像是否为HEIF图像;
调用模块405,用于在判断所述目标图像为HEIF图像的情况下,通过所述图像加载框架,调用HEIF图像原生解码器对所述目标图像解码得到位图数据;
第三缓存模块406,用于调用所述图像加载框架将所述位图数据存储于已解码图像缓存区;所述已解码图像缓存区设置于所述终端的内存中;
加载模块407,用于利用图形处理器从所述已解码图像缓存区中获取所述位图数据,根据所述位图数据加载所述目标图像。
可选的,所述装置还包括:
第一查找模块,用于当需要再次加载所述目标图像时,根据所述目标图像的标识,在所述已解码图像缓存区中查找所述目标图像对应的位图数据;
若在所述已解码图像缓存区中查找到所述目标图像对应的位图数据,则调用所述加载模块407;
若未在所述已解码图像缓存区中查找到所述目标图像对应的位图数据,则调用第二查找模块;
所述第二查找模块,用于根据所述目标图像的标识,在所述未解码图像缓存区中查找所述目标图像;
若在所述未解码图像缓存区中查找到所述目标图像,则依次调用所述判断模块404、所述调用模块405、所述第三缓存模块406和所述加载模块407;
若未在所述未解码图像缓存区中查找到所述目标图像,则调用第三查找模块;
所述第三查找模块,用于根据所述目标图像的标识,在所述磁盘图像缓存区中查找所述目标图像;
若在所述磁盘图像缓存区中查找到所述目标图像,则依次调用所述第二缓存模块403、所述判断模块404、所述调用模块405、所述第三缓存模块406和所述加载模块407;
若未在所述磁盘图像缓存区中查找到所述目标图像,则依次调用所述获取模块401、所述第一缓存模块402、所述第二缓存模块403、所述判断模块404、所述调用模块405、所述第三缓存模块406和所述加载模块407。
可选的,所述判断模块、所述调用模块、所述第三缓存模块和所述加载模块属于HEIF图像处理单元;
所述HEIF图像处理单元被全局配置在所述图像加载框架中。
可选的,所述判断模块404具体用于:
根据所述目标图像的文件结构特征,判断所述目标图像的文件结构特征与HEIF图像的文件结构特征是否一致。
可选的,所述装置还包括:
指针生成模块,用于调用所述图像加载框架,生成所述位图数据对应的指针;所述指针用于指示所述位图数据在所述已解码图像缓存区中的存储位置;
则所述加载模块407具体用于:
将所述指针发送至所述图形处理器;
利用所述图形处理器,根据所述指针从所述已解码图像缓存区中所述获取所述位图数据。
可选的,所述位图数据为编辑位图数据;所述编辑位图数据是调用所述图像加载框架对所述目标图像对应的位图数据进行计算处理得到的;
则所述加载模块407具体用于:
利用所述图形处理器从所述已解码图像缓存区中获取所述编辑位图数据,根据所述编辑位图数据加载所述目标图像对应的编辑效果图像。
可选的,所述编辑效果图像包括:所述目标图像对应的圆形图像、所述目标图像对应的圆角图像以及所述目标图像对应的边框图像。
可选的,所述装置还包括:
第一显示模块,用于在未完成对所述目标图像的加载时,在所述目标图像对应的加载位置显示占位图像;完成对所述目标图像的加载后,利用所述目标图像替换所述占位图像。
可选的,所述装置还包括:
第二显示模块,用于在未完成对所述目标图像的加载时,根据所述图形处理器的处理进度,相应地显示所述目标图像对应的加载进度;完成对所述目标图像的加载后,显示所述目标图像。
本申请实施例的HEIF图像加载装置,在检测到所获取的目标图像为HEIF图像时,基于应用程序中的图像加载框架,调用HEIF图像原生解码器,对该目标图像相应地进行解码操作,并调用图形处理器根据解码得到的位图数据渲染加载目标图像。在终端上安装应用程序时,其中的图像加载框架会预先构建三级缓存区,分别为磁盘图像缓存区、未解码图像缓存区和已解码图像缓存区,相应地,在加载目标图像的过程中,图像加载框架会将经各个阶段处理得到与目标图像相关的数据分别存储在各级缓存区,这样,即使对其中某级缓存区进行了清理,应用程序在需要加载已加载过的HEIF图像时,仍可以从其他未被清理的缓存区中,获取与该HEIF图像相关的数据,进而直接基于该数据进行再次加载目标图像,由此,应用程序无需多次重复地获取HEIF图像,减少了对终端处理器性能的耗费,延长了终端的使用寿命。
本申请实施例还提供了一种用于加载HEIF图像的设备,如图5所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包括手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、销售终端(Point of Sales,POS)、车载电脑等任意终端设备,以终端为手机为例:
图5示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图5,手机包括:射频(Radio Frequency,RF)电路510、存储器520、输入单元530、显示单元540、传感器550、音频电路560、无线保真(wireless fidelity,WiFi)模块1070、处理器580、以及电源590等部件;其中,输入单元530中包括输入面板531和其他输入设备532,显示单元540中包括显示面板541,音频电路560中包括扬声器561和传声器562。
本领域技术人员可以理解,图5中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在本申请实施例中,该终端所包括的处理器580具有以下功能:
所述应用程序获取目标图像,调用所述图像加载框架将所述目标图像存储于磁盘图像缓存区;所述磁盘图像缓存区设置于所述终端的磁盘中;
调用所述图像加载框架将所述目标图像存储于未解码图像缓存区;所述未解码图像缓存区设置于所述终端的内存中;
判断所述目标图像是否为HEIF图像,若是,则通过所述图像加载框架,调用HEIF图像原生解码器对所述目标图像解码得到位图数据,并将所述位图数据存储于已解码图像缓存区;所述已解码图像缓存区设置于所述终端的内存中;
利用图形处理器从所述已解码图像缓存区中获取所述位图数据,根据所述位图数据加载所述目标图像。
可选的,处理器580还可以执行本申请实施例中HEIF图像加载方法任一具体实现方式的方法步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (20)
1.一种高效率图档格式HEIF图像加载方法,其特征在于,应用于终端,所述终端中安装有应用程序,所述应用程序中包括图像加载框架,所述方法包括:
目标图像第一缓存步骤:所述应用程序获取目标图像,调用所述图像加载框架将所述目标图像存储于磁盘图像缓存区;所述磁盘图像缓存区设置于所述终端的磁盘中;
目标图像第二缓存步骤:调用所述图像加载框架将所述目标图像存储于未解码图像缓存区;所述未解码图像缓存区设置于所述终端的内存中;
图像解码步骤:判断所述目标图像是否为HEIF图像,若是,则通过所述图像加载框架,调用HEIF图像原生解码器对所述目标图像解码得到位图数据,并将所述位图数据存储于已解码图像缓存区;所述已解码图像缓存区设置于所述终端的内存中;
图像加载步骤:利用图形处理器从所述已解码图像缓存区中获取所述位图数据,根据所述位图数据加载所述目标图像。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述应用程序需要再次加载所述目标图像时,根据所述目标图像的标识,在所述已解码图像缓存区中查找所述目标图像对应的位图数据;
若在所述已解码图像缓存区中查找到所述目标图像对应的位图数据,则执行所述图像加载步骤;
若未在所述已解码图像缓存区中查找到所述目标图像对应的位图数据,则根据所述目标图像的标识,在所述未解码图像缓存区中查找所述目标图像;
若在所述未解码图像缓存区中查找到所述目标图像,则执行依次所述图像解码步骤和所述图像加载步骤;
若未在所述未解码图像缓存区中查找到所述目标图像,则根据所述目标图像的标识,在所述磁盘图像缓存区中查找所述目标图像;
若在所述磁盘图像缓存区中查找到所述目标图像,则依次执行所述目标图像第二缓存步骤、所述图像解码步骤和所述图像加载步骤;
若未在所述磁盘图像缓存区中查找到所述目标图像,则依次执行所述目标图像第一缓存步骤、所述目标图像第二缓存步骤、所述图像解码步骤和所述图像加载步骤。
3.根据权利要求1所述的方法,其特征在于,所述图像解码步骤和所述图像加载步骤属于HEIF图像处理机制;
所述HEIF图像处理机制被全局配置在所述图像加载框架中。
4.根据权利要求1所述的方法,其特征在于,所述判断所述目标图像是否为HEIF图像,包括:
根据所述目标图像的文件结构特征,判断所述目标图像的文件结构特征与HEIF图像的文件结构特征是否一致。
5.根据权利要求1所述的方法,其特征在于,在所述图像解码步骤之后,在所述图像加载步骤之前,所述方法还包括:
调用所述图像加载框架,生成所述位图数据对应的指针;所述指针用于指示所述位图数据在所述已解码图像缓存区中的存储位置;
则所述利用图形处理器从所述已解码图像缓存区中获取所述位图数据,包括:
将所述指针发送至所述图形处理器;
利用所述图形处理器,根据所述指针从所述已解码图像缓存区中所述获取所述位图数据。
6.根据权利要求1所述的方法,其特征在于,所述位图数据为编辑位图数据;所述编辑位图数据是调用所述图像加载框架对所述目标图像对应的位图数据进行计算处理得到的;
则所述图像加载步骤具体包括:
利用所述图形处理器从所述已解码图像缓存区中获取所述编辑位图数据,根据所述编辑位图数据加载所述目标图像对应的编辑效果图像。
7.根据权利要求6所述的方法,其特征在于,所述编辑效果图像包括:所述目标图像对应的圆形图像、所述目标图像对应的圆角图像以及所述目标图像对应的边框图像。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
未完成对所述目标图像的加载时,在所述目标图像对应的加载位置显示占位图像;
完成对所述目标图像的加载后,利用所述目标图像替换所述占位图像。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
未完成对所述目标图像的加载时,根据所述图形处理器的处理进度,相应地显示所述目标图像对应的加载进度;
完成对所述目标图像的加载后,显示所述目标图像。
10.一种HEIF图像加载装置,其特征在于,所述装置包括:
获取模块,用于获取目标图像;
第一缓存模块,用于调用图像加载框架将所述目标图像存储于磁盘图像缓存区;所述磁盘图像缓存区设置于所述终端的磁盘中;
第二缓存模块,用于调用所述图像加载框架将所述目标图像存储于未解码图像缓存区;所述未解码图像缓存区设置于所述终端的内存中;
判断模块,用于判断所述目标图像是否为HEIF图像;
调用模块,用于在判断所述目标图像为HEIF图像的情况下,通过所述图像加载框架,调用HEIF图像原生解码器对所述目标图像解码得到位图数据;
第三缓存模块,用于调用所述图像加载框架将所述位图数据存储于已解码图像缓存区;所述已解码图像缓存区设置于所述终端的内存中;
加载模块,用于利用图形处理器从所述已解码图像缓存区中获取所述位图数据,根据所述位图数据加载所述目标图像。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第一查找模块,用于当需要再次加载所述目标图像时,根据所述目标图像的标识,在所述已解码图像缓存区中查找所述目标图像对应的位图数据;
若在所述已解码图像缓存区中查找到所述目标图像对应的位图数据,则调用所述加载模块;
若未在所述已解码图像缓存区中查找到所述目标图像对应的位图数据,则调用第二查找模块;
所述第二查找模块,用于根据所述目标图像的标识,在所述未解码图像缓存区中查找所述目标图像;
若在所述未解码图像缓存区中查找到所述目标图像,则依次调用所述判断模块、所述调用模块、所述第三缓存模块和所述加载模块;
若未在所述未解码图像缓存区中查找到所述目标图像,则调用第三查找模块;
所述第三查找模块,用于根据所述目标图像的标识,在所述磁盘图像缓存区中查找所述目标图像;
若在所述磁盘图像缓存区中查找到所述目标图像,则依次调用所述第二缓存模块、所述判断模块、所述调用模块、所述第三缓存模块和所述加载模块;
若未在所述磁盘图像缓存区中查找到所述目标图像,则依次调用所述获取模块、所述第一缓存模块、所述第二缓存模块、所述判断模块、所述调用模块、所述第三缓存模块和所述加载模块。
12.根据权利要求10所述的装置,其特征在于,所述判断模块、所述调用模块、所述第三缓存模块和所述加载模块属于HEIF图像处理单元;
所述HEIF图像处理单元被全局配置在所述图像加载框架中。
13.根据权利要求10所述的装置,其特征在于,所述判断模块具体用于:
根据所述目标图像的文件结构特征,判断所述目标图像的文件结构特征与HEIF图像的文件结构特征是否一致。
14.根据权利要求10所述的装置,其特征在于,所述装置还包括:
指针生成模块,用于调用所述图像加载框架,生成所述位图数据对应的指针;所述指针用于指示所述位图数据在所述已解码图像缓存区中的存储位置;
则所述加载模块具体用于:
将所述指针发送至所述图形处理器;
利用所述图形处理器,根据所述指针从所述已解码图像缓存区中所述获取所述位图数据。
15.根据权利要求10所述的装置,其特征在于,所述位图数据为编辑位图数据;所述编辑位图数据是调用所述图像加载框架对所述目标图像对应的位图数据进行计算处理得到的;
则所述加载模块具体用于:
利用所述图形处理器从所述已解码图像缓存区中获取所述编辑位图数据,根据所述编辑位图数据加载所述目标图像对应的编辑效果图像。
16.根据权利要求15所述的装置,其特征在于,所述编辑效果图像包括:所述目标图像对应的圆形图像、所述目标图像对应的圆角图像以及所述目标图像对应的边框图像。
17.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第一显示模块,用于在未完成对所述目标图像的加载时,在所述目标图像对应的加载位置显示占位图像;完成对所述目标图像的加载后,利用所述目标图像替换所述占位图像。
18.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二显示模块,用于在未完成对所述目标图像的加载时,根据所述图形处理器的处理进度,相应地显示所述目标图像对应的加载进度;完成对所述目标图像的加载后,显示所述目标图像。
19.一种HEIF图像加载设备,其特征在于,所述设备包括处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令,执行权利要求1-9任一项所述HEIF图像加载方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-9任一项所述HEIF图像加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910016091.0A CN109886861B (zh) | 2019-01-08 | 2019-01-08 | 一种高效率图档格式heif图像加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910016091.0A CN109886861B (zh) | 2019-01-08 | 2019-01-08 | 一种高效率图档格式heif图像加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109886861A true CN109886861A (zh) | 2019-06-14 |
CN109886861B CN109886861B (zh) | 2023-04-11 |
Family
ID=66925759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910016091.0A Active CN109886861B (zh) | 2019-01-08 | 2019-01-08 | 一种高效率图档格式heif图像加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109886861B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110264452A (zh) * | 2019-06-18 | 2019-09-20 | 江苏通佑视觉科技有限公司 | 一种工件检测方法、装置、设备及存储介质 |
CN112150567A (zh) * | 2020-11-06 | 2020-12-29 | 北京深维科技有限公司 | 一种heif图像编码方法及相关设备 |
CN113422955A (zh) * | 2021-06-16 | 2021-09-21 | 三星电子(中国)研发中心 | Heif图像编码方法和解码方法以及编码装置和解码装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110221780A1 (en) * | 2008-09-30 | 2011-09-15 | Sony Computer Entertainment Inc. | Image processing device and image processing method |
WO2017101250A1 (zh) * | 2015-12-18 | 2017-06-22 | 北京金山安全软件有限公司 | 加载进度的显示方法及终端 |
CN107426282A (zh) * | 2017-05-02 | 2017-12-01 | 努比亚技术有限公司 | 一种图片加载方法、终端及服务器 |
CN107885741A (zh) * | 2016-09-29 | 2018-04-06 | 阿里巴巴集团控股有限公司 | 图片缓存管理方法及移动终端 |
CN107943417A (zh) * | 2017-11-21 | 2018-04-20 | 广州市百果园网络科技有限公司 | 图像处理方法、终端、计算机存储介质及计算机程序 |
-
2019
- 2019-01-08 CN CN201910016091.0A patent/CN109886861B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110221780A1 (en) * | 2008-09-30 | 2011-09-15 | Sony Computer Entertainment Inc. | Image processing device and image processing method |
WO2017101250A1 (zh) * | 2015-12-18 | 2017-06-22 | 北京金山安全软件有限公司 | 加载进度的显示方法及终端 |
CN107885741A (zh) * | 2016-09-29 | 2018-04-06 | 阿里巴巴集团控股有限公司 | 图片缓存管理方法及移动终端 |
CN107426282A (zh) * | 2017-05-02 | 2017-12-01 | 努比亚技术有限公司 | 一种图片加载方法、终端及服务器 |
CN107943417A (zh) * | 2017-11-21 | 2018-04-20 | 广州市百果园网络科技有限公司 | 图像处理方法、终端、计算机存储介质及计算机程序 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110264452A (zh) * | 2019-06-18 | 2019-09-20 | 江苏通佑视觉科技有限公司 | 一种工件检测方法、装置、设备及存储介质 |
CN110264452B (zh) * | 2019-06-18 | 2023-08-04 | 江苏通佑视觉科技有限公司 | 一种工件检测方法、装置、设备及存储介质 |
CN112150567A (zh) * | 2020-11-06 | 2020-12-29 | 北京深维科技有限公司 | 一种heif图像编码方法及相关设备 |
CN112150567B (zh) * | 2020-11-06 | 2023-07-18 | 北京深维科技有限公司 | 一种heif图像编码方法及相关设备 |
CN113422955A (zh) * | 2021-06-16 | 2021-09-21 | 三星电子(中国)研发中心 | Heif图像编码方法和解码方法以及编码装置和解码装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109886861B (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096660B (zh) | 用于加载页面图片的方法、装置和电子设备 | |
CN104572278B (zh) | 轻应用调用本地端能力的方法、装置及设备 | |
CN109886861A (zh) | 一种高效率图档格式heif图像加载方法及装置 | |
CN103995738A (zh) | 终端装置、服务器、终端装置浏览器操作系统和方法 | |
CN111951356B (zh) | 基于json数据格式的动画渲染方法 | |
US20140258545A1 (en) | System and method for managing service characteristics | |
CN106453572A (zh) | 基于云服务器同步图像的方法及系统 | |
CN110489193A (zh) | 智能设备的界面控制方法、装置和存储介质 | |
CN111290773B (zh) | 系统升级方法、设备及可读存储介质 | |
JP2010103964A (ja) | ウィジェット型通話待ち受け画面提供システム | |
CN102663134B (zh) | 一种热点图片加载方法、控制服务器、客户端及系统 | |
CN112261483B (zh) | 视频输出方法及装置 | |
CN115588064A (zh) | 视频生成方法、装置、电子设备及存储介质 | |
CN111367577A (zh) | 加载应用的插件的方法、装置和终端 | |
CN111767417A (zh) | 应用图片的管理方法、装置、设备及存储介质 | |
CN108876880A (zh) | 基于ARkit的学习方法、装置、设备和存储介质 | |
CN113849157B (zh) | 动画播放管理的方法、装置、设备及存储介质 | |
CN117152320B (zh) | 图像处理方法和电子设备 | |
CN118338003B (zh) | 视频解码方法、装置、计算机设备、可读存储介质和程序产品 | |
CN112187863B (zh) | 扩展组织角色的方法、装置、存储介质及电子设备 | |
CN113127010B (zh) | 一种应用管理方法、装置、电子设备及存储介质 | |
CN108804102B (zh) | 直播间界面样式的扩展方法及系统、服务器及存储介质 | |
CN117235318A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN116932490A (zh) | 图片加载方法、装置、计算机设备和存储介质 | |
CN117193695A (zh) | 快速屏幕适配的方法及系统 |
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 |