动态图片显示方法及装置制造方法及图纸

技术编号:10330340 阅读:144 留言:0更新日期:2014-08-14 16:18
本公开揭示了一种动态图片显示方法及装置,属于计算机技术领域。所述动态图片显示方法包括:获取动态图片,所述动态图片由连续个图片帧组成;依次分段解码所述动态图片;在每次解码后,将解码得到的图片帧写入播放队列,所述播放队列为用于存储解码后的图片帧的循环队列;当所述播放队列存在图片帧时,从所述播放队列中读取并显示图片帧。通过依次分段解码动态图片,在每次解码后,将解码得到的图片帧写入播放队列,当播放队列存在图片帧时,从播放队列中读取并显示图片帧。解决了相关技术中在显示动态图片时占用内存比较多,显示效率比较低的问题;达到了可以降低内存占用,提高显示效率的效果。

【技术实现步骤摘要】
动态图片显示方法及装置
本公开涉及计算机
,特别涉及一种动态图片显示方法及装置。
技术介绍
由于动态图片可以动态显示较多的信息,因此增加了可读性以及趣味性,目前,应用较广泛的动态图片是GIF(Graphics Interchange Format,图像互换格式)图片。终端在显示GIF图片时,首先将获取到的GIF图片一次性载入内存,然后对内存中的GIF图片进行一次性解码,在对该GIF图片解码完成后进行显示。专利技术人在实现本公开的过程中,发现相关技术至少存在如下缺陷:由于有些GIF图片的容量比较大,将GIF图片一次性载入内存时,该GIF图片所占用的内存比较多,且在载入内存之后,要一次性解码之后才能显示,因此在显示GIF图片之前需要等待的时间比较长,显示效率比较低。
技术实现思路
为了克服相关技术中在显示GIF图片时占用内存比较多,显示效率比较低的问题,本公开提供了一种动态图片显示方法及装置。所述技术方案如下:根据本公开实施例的第一方面,提供一种动态图片显不方法,包括:获取动态图片,所述动态图片由连续个图片帧组成;依次分段解码所述动态图片;在每次解码后,将解码得到的图片帧写入播放队列,所述播放队列为用于存储解码后的图片帧的循环队列;当所述播放队列存在图片帧时,从所述播放队列中读取并显示图片帧。可选的,所述依次分段解码所述动态图片,包括:从所述动态图片中未解码的图片帧中的首个图片帧起,依次选取预定个数的图片帧;对选取出的所述预定个数的图片帧进行解码。可选的,所述在每次解码后,将解码得到的图片帧写入播放队列,包括:在首次解码后,从所述播放队列的队首开始,将解码得到的图片帧依次写入所述播放队列;在非首次解码后,每次写入播放队列时,检测最后写入的图片帧是否位于所述播放队列的队尾;若检测结果为最后写入的图片帧不位于所述播放队列的队尾,则检测所述播放队列中最后写入的图片帧之后的位置是否为空;若检测结果为所述播放队列中最后写入的图片帧之后的位置为空,则从所述最后写入的图片帧之后的位置开始,将解码出的图片帧依次写入所述播放队列;若检测结果为所述播放队列中最后写入的图片帧之后的位置为非空,则暂停将解码出的图片帧写入所述播放队列;若检测结果为最后写入的图片帧位于所述播放队列的队尾,则检测所述播放队列的队首是否为空;若检测结果为所述播放队列的队首为空,则从所述播放队列的队首开始,将解码出的图片帧依次写入所述播放队列;若检测结果为所述播放队列的队首为非空,则暂停将解码出的图片帧依次写入播放队列。可选的,所述当所述播放队列存在图片帧时,从所述播放队列中读取并显示图片中贞,包括:实时检测所述播放队列中是否存在图片帧;[0021 ] 当检测到所述播放队列存在图片帧时,从所述播放队列中未被读取的首个图片帧开始,依次读取并显示图片帧。可选的,还包括:检测是否已经读取到所述播放队列的队尾;若检测结果为已经读取到所述播放队列的队尾,则继续从所述播放队列的队首开始,依次读取并显示图片帧。可选的,还包括:当分段解码完所述动态图片时,则从所述动态图片的头部开始,重新执行所述依次分段解码所述动态图片的步骤。可选的,还包括:检测所述动态图片的容量是否大于预定阈值;若检测结果为所述动态图片的容量大于所述预定阈值,则执行所述依次分段解码所述动态图片的步骤。根据本公开实施例的第二方面,提供一种动态图片显示装置,包括:获取模块,用于获取动态图片,所述动态图片由连续个图片帧组成;解码模块,用于依次分段解码所述动态图片;写入模块,用于在每次解码后,将所述解码模块解码得到的图片帧写入播放队列,所述播放队列为用于存储解码后的图片帧的循环队列;显示模块,用于当所述播放队列存在图片帧时,从所述播放队列中读取并显示图片帧。可选的,所述解码模块,包括:选取单元,用于从所述动态图片中未解码的图片帧中的首个图片帧起,依次选取预定个数的图片帧;解码单元,用于对所述选取单元选取出的所述预定个数的图片帧进行解码。可选的,所述写入模块,包括:第一写入单元,用于在首次解码后,从所述播放队列的队首开始,将解码得到的图片帧依次写入所述播放队列;第一检测单元,用于在非首次解码后,每次写入播放队列时,检测最后写入的图片帧是否位于所述播放队列的队尾;第二检测单元,用于在所述第一检测单元的检测结果为最后写入的图片帧不位于所述播放队列的队尾时,则检测所述播放队列中最后写入的图片帧之后的位置是否为空;第二写入单元,用于在所述第二检测单元的检测结果为所述播放队列中最后写入的图片帧之后的位置为空时,从所述最后写入的图片帧之后的位置开始,将解码出的图片帧依次写入所述播放队列;第一暂停单元,用于在所述第二检测单元的检测结果为所述播放队列中最后写入的图片帧之后的位置为非空,则暂停将解码出的图片帧写入所述播放队列;第三检测单元,用于在所述第一检测单元的检测结果为最后写入的图片帧位于所述播放队列的队尾时,则检测所述播放队列的队首是否为空;第三写入单元,用于在所述第三检测单元的检测结果为所述播放队列的队首为空时,从所述播放队列的队首开始,将解码出的图片帧依次写入所述播放队列;第二暂停单元,用于在所述第三检测单元的检测结果为所述播放队列的队首为非空时,暂停将解码出的图片帧依次写入播放队列。可选的,所述显示模块,包括:第四检测单元,用于实时检测所述播放队列中是否存在图片帧;第一显示单元,用于当第四检测单元的检测到所述播放队列存在图片帧时,从所述播放队列中未被读取的首个图片帧开始,依次读取并显示图片帧。可选的,所述显示模块,还包括:第五检测单元,用于检测是否已经读取到所述播放队列的队尾;第二显示单元,用于在所述第五检测单元的检测结果为已经读取到所述播放队列的队尾时,继续从所述播放队列的队首开始,依次读取并显示图片帧。可选的,还包括:触发模块,用于当分段解码完所述动态图片时,从所述动态图片的头部开始,触发所述解码模块重新依次分段解码所述动态图片。可选的,还包括:检测模块,用于检测所述动态图片的容量是否大于预定阈值;所述解码模块,还用于在所述检测模块的检测结果为所述动态图片的容量大于所述预定阈值时,依次分段解码所述动态图片。根据本公开实施例的第三方面,提供一种动态图片显示装置,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为:获取动态图片,所述动态图片由连续个图片帧组成;依次分段解码所述动态图片;在每次解码后,将解码得到的图片帧写入播放队列,所述播放队列为用于存储解码后的图片帧的循环队列;当所述播放队列存在图片帧时,从所述播放队列中读取并显示图片帧。本公开的实施例提供的技术方案可以包括以下有益效果:通过依次分段解码动态图片,在每次解码后,将解码得到的图片帧写入播放队列,当播放队列存在图片帧时,从播放队列中读取并显示图片帧;由于对于动态图片进行分段解码,并在解码的过程中对已解码的图片帧进行播放,因此播放队列的长度可以远小于动态图片所占用的长度,解决了相关技术中在显示GIF图片时占用内存比较多,显示效率比较低的问题;达到了可以降低内存占用,提高显示效率的效果。应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。【附图说明】此处的附图被并入说明书中并构成本说本文档来自技高网...
动态图片显示方法及装置

【技术保护点】
一种动态图片显示方法,其特征在于,包括:获取动态图片,所述动态图片由连续个图片帧组成;依次分段解码所述动态图片;在每次解码后,将解码得到的图片帧写入播放队列,所述播放队列为用于存储解码后的图片帧的循环队列;当所述播放队列存在图片帧时,从所述播放队列中读取并显示图片帧。

【技术特征摘要】
1.一种动态图片显示方法,其特征在于,包括: 获取动态图片,所述动态图片由连续个图片帧组成; 依次分段解码所述动态图片; 在每次解码后,将解码得到的图片帧写入播放队列,所述播放队列为用于存储解码后的图片帧的循环队列; 当所述播放队列存在图片帧时,从所述播放队列中读取并显示图片帧。2.根据权利要求1所述的方法,其特征在于,所述依次分段解码所述动态图片,包括: 从所述动态图片中未解码的图片帧中的首个图片帧起,依次选取预定个数的图片帧; 对选取出的所述预定个数的图片帧进行解码。3.根据权利要求1所述的方法,其特征在于,所述在每次解码后,将解码得到的图片帧写入播放队列,包括: 在首次解码后,从所述播放队列的队首开始,将解码得到的图片帧依次写入所述播放队列; 在非首次解码后,每次写入播放队列时,检测最后写入的图片帧是否位于所述播放队列的队尾; 若检测结果为最后写入的图片帧不位于所述播放队列的队尾,则检测所述播放队列中最后写入的图片帧之后的位置是否为空;若检测结果为所述播放队列中最后写入的图片帧之后的位置为空,则从所述最后写入的图片帧之后的位置开始,将解码出的图片帧依次写入所述播放队列;若检测结果为所述播放队列中最后写入的图片帧之后的位置为非空,则暂停将解码出的图片帧写入所述播放队列; 若检测结果为最后写入的图片帧位于所述播放队列的队尾,则检测所述播放队列的队首是否为空;若检测结果为所述播放队列的队首为空,则从所述播放队列的队首开始,将解码出的图片帧依次写入所述播放队列;若检测结果为所述播放队列的队首为非空,则暂停将解码出的图片帧依次写入播放队列。4.根据权利要求1所述的方法,其特征在于,所述当所述播放队列存在图片帧时,从所述播放队列中读取并显示图片帧,包括: 实时检测所述播放队列中是否存在图片帧; 当检测到所述播放队列存在图片帧时,从所述播放队列中未被读取的首个图片帧开始,依次读取并显示图片帧。5.根据权利要求4所述的方法,其特征在于,还包括: 检测是否已经读取到所述播放队列的队尾; 若检测结果为已经读取到所述播放队列的队尾,则继续从所述播放队列的队首开始,依次读取并显示图片帧。6.根据权利要求1所述的方法,其特征在于,还包括: 当分段解码完所述动态图片时,则从所述动态图片的头部开始,重新执行所述依次分段解码所述动态图片的步骤。7.根据权利要求1至6中任一所述的方法,其特征在于,还包括: 检测所述动态图片的容量是否大于预定阈值; 若检测结果为所述动态图片的容量大于所述预定阈值,则执行所述依次分段解码所述动态图片的步骤。8.一种动态图片显示装置,其特征在于,包括: 获取模块,用于获取动态图片,所述动态图片由连续个图片帧组成; 解码模块,用于依次分段解码所述动态图片; 写入模块,用于在每次解码后,将所述解码模块解码得到的图片帧写入播放队列,所述播放队列为用于存储解码后的图片帧的循环队列; 显示模块,用于当所述播放队列存在图片帧时,从所述播放队列中读取并显示图片帧。9.根据权利要求8所述的装置,其特征在于,所述解码...

【专利技术属性】
技术研发人员:万钰臻王文林杨亮
申请(专利权)人:小米科技有限责任公司
类型:发明
国别省市:北京;11

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

1