CN109710359B - 动图显示方法、装置、计算机可读存储介质和终端 - Google Patents
动图显示方法、装置、计算机可读存储介质和终端 Download PDFInfo
- Publication number
- CN109710359B CN109710359B CN201811595010.9A CN201811595010A CN109710359B CN 109710359 B CN109710359 B CN 109710359B CN 201811595010 A CN201811595010 A CN 201811595010A CN 109710359 B CN109710359 B CN 109710359B
- Authority
- CN
- China
- Prior art keywords
- picture
- pictures
- frame
- downloading
- motion
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 18
- 230000015654 memory Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供一种动图显示方法、装置、计算机可读存储介质和终端,所述的方法包括:根据输入的第一动图的下载请求,开始下载所述第一动图的各帧图片;当下载得到所述第一动图的首帧图片时,对所述第一动图的首帧图片进行解码,显示所述第一动图的首帧图片;当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图。本申请实施例能够提高动图的显示速度。
Description
技术领域
本申请涉及图像处理技术领域,具体而言,本申请涉及一种动图显示方法、装置、计算机可读存储介质和终端。
背景技术
在以内容为主的APP(Application,应用程序)中,如短视频、直播等APP中,图片是更能表现信息内容的一种方式,而动图则具有更大的信息容量、更友好的展示方式和更生动的交互体验。现有技术中支持动图加载的播放库包含动图资源的下载、解码、播放等。如图1所示,动图显示的过程包括:采用HTTP(HyperText Transfer Protocol,超文本传输协议)进行整个动图文件(即未解码图片文件)的下载,在整个动图文件下载完成后,使用相应的动图解码库将整个动图文件解码成机器可以识别的文件格式,然后加载到内存进行播放。但是该种方式在显示较大的动图时,存在显示速度慢的缺陷。
发明内容
本申请针对现有方式的缺点,提出一种动图显示方法、装置、计算机可读存储介质和终端,以在加载较大动图时,能够提高动图的显示速度。
本申请的实施例根据第一个方面,提供了一种动图显示方法,包括:
根据输入的第一动图的下载请求,开始下载所述第一动图的各帧图片;
当下载得到所述第一动图的首帧图片时,对所述第一动图的首帧图片进行解码,显示所述第一动图的首帧图片;
当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图。
在一个实施例中,所述显示所述第一动图的首帧图片之后,所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码之前,还包括:
停止下载所述第一动图的剩余图片;
根据输入的第二动图的下载请求,开始下载所述第二动图的各帧图片;
当下载得到所述第二动图的首帧图片时,对所述第二动图的首帧图片进行解码,显示所述第二动图的首帧图片。
在一个实施例中,所述显示所述第二动图的首帧图片之后,所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码之前,还包括:
继续下载所述第二动图的除首帧图片的剩余图片;
当下载得到所述第二动图的剩余图片时,对所述第二动图的首帧图片和剩余图片进行解码,显示所述第二动图;
继续下载所述第一动图的剩余图片。
在一个实施例中,所述显示所述第二动图的首帧图片之后,所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码之前,还包括:停止下载所述第二动图的除首帧图片的剩余图片;继续下载所述第一动图的剩余图片;
所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图之后,还包括:继续下载所述第二动图的剩余图片;当下载得到所述第二动图的剩余图片时,对所述第二动图的首帧图片和剩余图片进行解码,显示所述第二动图。
在一个实施例中,所述对所述第一动图的首帧图片进行解码之后,所述显示所述第一动图的首帧图片之前,还包括:
将解码后的所述第一动图的首帧图片存储到指定位置;
若所述第一动图的剩余图片下载失败,根据输入的所述第一动图的重新下载请求,从所述指定位置获取解码后的所述第一动图的首帧图片。
在一个实施例中,所述重新下载请求为下载所述第一动图的剩余图片的请求;所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图,包括:
下载所述第一动图的剩余图片;
当下载得到所述第一动图的剩余图片时,对剩余图片和从所述指定位置获取的所述第一动图的首帧图片进行解码,显示所述第一动图。
在一个实施例中,若所述第一动图的数据包括首帧图片的大小,所述第一动图的首帧图片通过以下方式下载得到:接收所述第一动图从开始下载到达到所述首帧图片的大小之间的数据,作为所述第一动图的首帧图片;
若所述第一动图的数据不包括首帧图片的大小,所述第一动图的首帧图片通过以下方式下载得到:接收所述第一动图开始下载后的数据,所述数据包括所述动图的文件块描述信息和文件块大小;根据所述文件块描述信息和所述文件块大小确定首帧图片对应的块,获取所述块的大小;将所述第一动图从开始下载到达到所述块的大小之间的数据,作为所述第一动图的首帧图片。
本申请的实施例根据第二个方面,还提供了一种动图显示装置,包括:
下载模块,用于根据输入的第一动图的下载请求,开始下载所述第一动图的各帧图片;
首帧图片显示模块,用于当下载得到所述第一动图的首帧图片时,对所述第一动图的首帧图片进行解码,显示所述第一动图的首帧图片;
第一显示模块,用于当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图。
本申请的实施例根据第三个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一项所述的动图显示方法。
本申请的实施例根据第四个方面,还提供了一种终端,所述终端包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任意一项所述的动图显示方法。
上述的动图显示方法、装置、计算机可读存储介质和终端,采用边下载边解码的方式,当从网络接收到动图的首帧图片的数据后,首先对首帧图片的数据进行解码,将首帧图片直接显示到用户界面,而剩余图片的数据将会等待下载完成后再和首帧图片的数据一起返回给解码器,进行正常流程的解码播放,本申请通过提前显示动图的首帧图片的方式,达到提高动图显示速度的效果,优化了用户体验。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为现有技术中动图显示方法的示意图;
图2为本申请一个实施例的动图显示方法的示意图;
图3为本申请一个实施例的单个动图下载以及显示方法的示意图;
图4为本申请一个实施例的首帧图片获取方法的示意图;
图5为本申请一个实施例的多个动图下载以及显示方法的示意图;
图6为本申请一个实施例的多动图显示方法的示意图;
图7为本申请另一个实施例的多动图显示方法的示意图;
图8为本申请一个具体实施例的多个动图同时下载以及显示方法的示意图;
图9为本申请一个实施例的异常状况时首帧图片显示方法的示意图;
图10为本申请一个实施例的异常状况时动图显示方法的示意图;
图11为本申请一个实施例的动图显示装置的示意图;
图12为本申请一个实施例的终端的示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、步骤、操作、模块,但是并不排除存在或添加一个或多个其他特征、步骤、操作、模块。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”可以包括:常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”还可以是通信终端、上网终端、视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有视频播放功能的移动电话等设备。
如图2所示,为一实施例动图显示方法的示意图,所述方法包括:
S110、根据输入的第一动图的下载请求,开始下载所述第一动图的各帧图片。
动图区别于静图,动图包括多帧图片,常见的动图格式有GIF(GraphicsInterchange Format,图像互换格式)、WebP等。动图储存时需要利用一些压缩算法降低体积,如GIF格式的动图使用LZW算法(Lempel-Ziv-Welch Encoding,串表压缩算法)压缩体积,播放时则采用分帧播放的方式。
动图显示指从原始图像,如GIF、WebP等,经过处理器解码成机器能够识别的RGB(Red-Green-Blue,红-绿-蓝)资源的过程,RGB资源包括Bitmap(位图)等。本实施例提供的动图显示方法可以部署在终端,当需要显示某一动图时,向服务端发送该动图的下载请求,服务端根据该下载请求持续返回该动图的图片的数据。服务端返回的动图中的图片为未解码图片。未解码图片指的是原始图片资源文件(如GIF、WebP等),特点是使用了相应的图像压缩算法,以降低储存和网络传输所需要的空间。
S120、当下载得到所述第一动图的首帧图片时,对所述第一动图的首帧图片进行解码,显示所述第一动图的首帧图片。
由于现有技术需要经过完整动图文件的下载和解码过程,因此当动图文件较大时,需要耗费较多下载和解码的时间,降低动图的显示速度,影响了用户体验。因此,为了解决该缺陷,本申请的发明人付出创造性劳动,想到采用边下载边解码的方式来提高动图的显示速度。
发明人经研究发现,常用的动图格式包括GIF、WebP等。GIF格式的动图中每帧图片的数据按照帧的次序依次存储。WebP则采用VP8编码格式,首帧图片的完整信息也会存在动图文件流的前部,动图其它格式中首帧图片的存储情况类似。因此,首帧图片的该存储规律使得只下载动图文件的前一部分,就解码出首帧图片成为可能。
当动图开始下载时,就开始从网络接收到动图的数据,动图下载过程中,会持续接收到动图的数据,当动图的首帧图片的数据下载完成时,会将首帧图片的数据放到解码线程池中,解析出该动图的类型(或者格式)、首帧图片的数据,然后获得解码后的首帧图片,该解码后的首帧图片能够被计算机直接读取,将首帧图片直接显示到用户界面。
S130、当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图。
当显示首帧图片时,动图的剩余图片的数据也一直在持续下载中,当剩余图片的数据下载完成后,将剩余图片的数据和首帧图片的数据一起返回给解码器,进行正常流程的解码以及动图的显示。
应当理解的是,本申请将首帧图片重新解码主要是考虑到目前的解码算法,因为目前的解码算法需要利用到首帧图片的数据,如果存在不需要利用首帧图片的数据即能对剩余图片的数据正常解码的算法,则该步骤S130也可以仅对剩余图片进行解码,然后结合步骤S120解码出来的首帧图片,正常显示动图。
本实施例通过提前显示动图的首帧图片的方式,提高了动图尤其是较大动图的显示速度,优化了用户体验。
如图3所示,为一实施例的单个动图下载以及显示方法的示意图。该方法包括:终端从服务端开始下载动图数据,服务端持续向终端返回动图数据,终端下载完成动图的首帧图片的数据后,解析数据的格式,根据该格式解码出首帧图片的数据,然后展示该首帧图片。终端持续下载动图的剩余图片的数据,当剩余图片的数据下载完成后,对动图所有图片的数据进行解码,然后播放动图。
本申请在获取首帧图片的数据时,考虑到服务端存储的动图的数据包括首帧图片的大小的情况和服务端存储的动图的数据不包括首帧图片的大小的情况,针对该两种情况分别给出了首帧图片获取的方式,下面进行详细说明。
在一个实施例中,若所述第一动图的数据包括首帧图片的大小,所述第一动图的首帧图片通过以下方式下载得到:接收所述第一动图从开始下载到达到所述首帧图片的大小之间的数据,作为所述第一动图的首帧图片。
本实施例获取首帧图片的方式适合动图存在用户自己的服务器或者动图是用户自己生成的情况。该种方式的实现相对容易,用户在动图生成时记录一下首帧图片的大小,然后将首帧图片的大小数据放在动图的协议体或者文件头等中返回,以供终端进行解析。动图开始下载时,终端接收到动图前面一部分数据,该前面一部分数据包括动图的协议体或者文件头等,从该动图的协议体或者文件头等中就可以获得首帧图片的大小,动图的数据持续下载,当接收到的数据达到首帧图片的大小时,首帧图片的数据下载完成。
在另一个实施例中,若所述第一动图的数据不包括首帧图片的大小,所述第一动图的首帧图片通过以下方式下载得到:接收所述第一动图开始下载后的数据,所述数据包括所述动图的文件块描述信息和文件块大小;根据所述文件块描述信息和所述文件块大小确定首帧图片对应的块,获取所述块的大小;将所述第一动图从开始下载到达到所述块的大小之间的数据,作为所述第一动图的首帧图片。
本实施例获取首帧图片的方式适用范围更广,支持网络上任意GIF、WebP等图片格式的动图,该种方式需要根据下载的动图数据动态解析首帧图片的大小。考虑到动图无论什么格式一般都包括文件块描述信息、文件块大小,其中,文件块描述信息用于表征动图的用途,包括首帧图片的标识,文件块大小包括标识与块的对应关系,例如WebP格式的动图,其使用RIFF文件格式(Resources Interchange File Format,资源互换文件格式)进行存储,其包括FourCC(文件块描述),ChunckSize(文件块大小),ChunkPayload(文件块数据内容)。因此,可以通过文件块描述信息和文件块大小找到首帧图片对应的块,计算该块的大小,获取从开始下载到达到该块的大小之间的数据,该数据即为首帧图片的数据。
如图4所示,为一实施例的首帧图片获取方法的示意图。从该图可以看出,网络会源源不断的传递动图数据直到完全下载完成,首先对得到的数据不断进行获取首帧图片大小的操作直至正确获得首帧图片大小。然后将该首帧图片大小作为下一个数据流的阈值,并取消解析首帧图片大小的操作。当数据到达该阈值后,首帧图片数据下载完成,将首帧图片的数据进行解码,得到首帧图片,然后显示该首帧图片。
本申请通过提前显示首帧图片的方式可以显著提升单个动图资源的显示速度,然而当较多动图资源同时加载时,由于移动设备计算资源有限,下载和解码时间较长,会导致后面排队的动图较长时间都无法展示,依然会出现动图显示较慢的问题。
例如,如图5所示,为一实施例的多个动图下载以及显示方法的示意图。动图1、动图2和动图3同时下载显示,但因为当前终端系统有2个线程,只能支持2个任务并发,所以导致动图3需要等待动图1和动图2下载显示完成之后才能进行加载显示,导致用户等待时间过长,动图显示速度慢,用户体验较差。
因此,针对多动图显示时速度慢的缺陷,在一个实施例中,如图6所示,所述显示所述第一动图的首帧图片之后,所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码之前,还包括:
S121、停止下载所述第一动图的剩余图片。
为了提高多动图加载时动图的显示速度,采用一个下载优先的线程池来尽可能提高首帧图片的显示速度。该线程池的特点是:首帧图片的下载请求优先于剩余图片的下载请求,本申请中,首帧图片的下载请求指的是动图的下载请求,剩余图片的下载请求指的是除首帧图片之外的剩余图片的下载请求。该优先级指的是,当存在一个动图A的下载请求和另一个动图B的剩余图片的下载请求时,优先下载动图A的首帧图片。
当一个线程中存在多个动图的下载请求时,当其中一个动图下载并展示完首帧图片后,取消原有的动图下载请求,并生成该动图的剩余图片的下载请求。而根据设置的下载优先级,该动图的剩余图片的下载请求的优先级低于另一个动图的下载请求,因此停止下载该动图的剩余图片。
S122、根据输入的第二动图的下载请求,开始下载所述第二动图的各帧图片。
根据设置的下载优先级,优先下载第二动图的各帧图片,也即是第二动图的首帧图片下载会优先进行。
S123、当下载得到所述第二动图的首帧图片时,对所述第二动图的首帧图片进行解码,显示所述第二动图的首帧图片。
当第二动图开始下载时,就开始从网络接收到第二动图的数据,当第二动图的首帧图片的数据下载完成时,会将首帧图片的数据放到解码线程池中,解析出该第二动图的类型(或者格式)、首帧图片的数据,获得解码后的首帧图片,该解码后的首帧图片能够被计算机直接读取,然后将第二动图的首帧图片直接显示到用户界面。其中,第二动图的首帧图片获得方式与上述第一动图的首帧图片获得方式相同。
至此,第一动图的首帧图片和第二动图的首帧图片均已经进行显示,剩余第一动图的剩余图片和第二动图的剩余图片还未显示。为了进一步提高动图显示的速度,如图7所示,在一个实施例中,所述显示所述第二动图的首帧图片之后,所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码之前,还包括:
S124、继续下载所述第二动图的除首帧图片的剩余图片。
为了提高多动图加载时动图的显示速度,还需要设置各个动图剩余图片显示的优先级,因此该线程池的特点还包括:最近剩余图片的下载请求优先于较后剩余图片的下载请求。由于刚下载显示第二动图的首帧图片,因此最近剩余图片的下载请求指的是下载第二动图的剩余图片的请求,较后剩余图片的下载请求指的是下载第一动图的剩余图片的请求。因此,在第二动图的首帧图片下载并显示完成时,继续下载第二动图的剩余图片。
S125、当下载得到所述第二动图的剩余图片时,对所述第二动图的首帧图片和剩余图片进行解码,显示所述第二动图。
第二动图的剩余图片下载完成后,将第二动图的首帧图片和剩余图片进行解码,获得终端能够直接显示的第二动图并显示。
S126、继续下载所述第一动图的剩余图片。
当第二动图显示完成后,需要继续下载第一动图的剩余图片。第一动图的剩余图片下载完成后,对第一动图的首帧图片和剩余图片进行解码,获得终端能够直接显示的第一动图并显示。
如图8所示,为一具体实施例的多个动图同时下载以及显示方法的示意图。如图8所示,当同时下载动图1、2和3时,由于动图1和2都在下载首帧图片,因此动图3暂时等待。当动图1下载完并展示首帧图片后,将取消原有完整的请求,并转发一个动图1剩余图片的下载请求,而该下载请求按照下载优先级低于动图3的首帧图片下载请求(也即是动图3的下载请求)。因此动图3的首帧图片下载会优先进行,即动图3的首帧图片也会快速的显示出来。由于最近剩余图片的下载请求的优先级高于较后剩余图片的下载请求,所以当动图3下载完成并显示后,动图1也会继续完成剩余图片的下载,并正常播放。利用该下载优先队列,可以使得较多的动图都能快速显示首帧图片,然后再进行动图剩余图片的下载和完整的播放,使较多动图同时加载时显示速度更快。
在另一个实施例中,所述显示所述第二动图的首帧图片之后,所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码之前,还包括:停止下载所述第二动图的除首帧图片的剩余图片;继续下载所述第一动图的剩余图片;所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图之后,还包括:继续下载所述第二动图的剩余图片;当下载得到所述第二动图的剩余图片时,对所述第二动图的首帧图片和剩余图片进行解码,显示所述第二动图。本实施例剩余图片的下载优先级为先下载较后的剩余图片,再下载较近的剩余图片,因此在第二动图的首帧图片显示后,继续下载第一动图的剩余图片,在第一动图显示完成后,再继续下载第二动图的剩余图片,然后显示第二动图。
第一动图的剩余图片和第二动图的剩余图片先后下载顺序除了以上确定方式,还可以采用其它确定方式。例如,在另一个实施例中,还可以结合用户的兴趣确定多个动图的剩余图片的下载优先级,即,用户对哪一个动图更感兴趣,则优先下载对应动图的剩余图片。比如,当第一动图和第二动图的首帧图片均显示出来后,判断用户对哪个动图比较感兴趣,如果用户对第一动图比较感兴趣,则优先下载第一动图的剩余图片并解码显示第一动图,第一动图显示完成后,再下载第二动图的剩余图片并解码显示第二动图,如果用户对第二动图比较感兴趣,则优先下载第二动图的剩余图片并解码显示第二动图,第二动图显示完成后,再下载第一动图的剩余图片并解码显示第一动图。其中,用户对哪个动图更感兴趣可以根据用户浏览的历史数据得到,例如,某一动图A的浏览人数比另一个动图B的浏览人数高,则说明用户对动图A更感兴趣。
当显示完首帧图片之后,如果出现网络异常、应用被杀死等情况,则会导致动图的数据无法继续下载,整个动图显示失败。而下次需要再显示该动图时,仍然需要进行解析该动图首帧图片的大小、解码等操作,导致显示速度变慢,影响用户体验。因此,针对该异常情况,本申请也实现了显示速度的优化。如图9所示,在一个实施例中,所述步骤S1201:对所述第一动图的首帧图片进行解码之后,所述步骤S1204:显示所述第一动图的首帧图片之前,还包括:
S1202、将解码后的所述第一动图的首帧图片存储到指定位置;
S1203、若所述第一动图的剩余图片下载失败,根据输入的所述第一动图的重新下载请求,从所述指定位置获取解码后的所述第一动图的首帧图片。
本实施例中,当首帧图片被正确解码后,将首帧图片的数据存储到指定位置,例如内存以及文件当中。如果由于网络异常等原因导致动图显示失败,再重新请求下载该动图时,可以直接从指定位置读取首帧图片的数据,如果读取失败,再重新请求从指定位置读取首帧图片的数据即可,无需进行解析该动图首帧图片的大小、解码等操作,加快了显示速度。当首帧图片没有被正确解码时,如果由于网络异常等原因导致动图显示失败,再重新请求下载该动图时,需要重新进行解析该动图首帧图片的大小、解码等操作。
如图10所示,在一个实施例中,所述重新下载请求为下载所述第一动图的剩余图片的请求;所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图,包括:
S1301、下载所述第一动图的剩余图片;
S1302、当下载得到所述第一动图的剩余图片时,对剩余图片和从所述指定位置获取的所述第一动图的首帧图片进行解码,显示所述第一动图。
本实施例中,重新下载请求可以从首帧图片的数据之后开始,通过只下载第一动图的剩余图片的方式,减少了下载文件的大小,节省了流量,待剩余图片下载完成后再和从指定位置获取的首帧图片拼接到一起,作为最终的动图文件储存或者显示。
基于同一发明构思,本申请还提供一种动图显示装置,下面结合附图对本申请装置的具体实施方式进行详细介绍。
如图11所示,为一实施例的动图显示装置的示意图,所述装置包括:
下载模块210,用于根据输入的第一动图的下载请求,开始下载所述第一动图的各帧图片;
首帧图片显示模块220,用于当下载得到所述第一动图的首帧图片时,对所述第一动图的首帧图片进行解码,显示所述第一动图的首帧图片;
第一显示模块230,用于当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图。
在一个实施例中,所述装置还包括连接在首帧图片显示模块220和第一显示模块230之间的第二显示模块,所述第二显示模块用于停止下载所述第一动图的剩余图片;根据输入的第二动图的下载请求,开始下载所述第二动图的各帧图片;当下载得到所述第二动图的首帧图片时,对所述第二动图的首帧图片进行解码,显示所述第二动图的首帧图片。
在一个实施例中,第二显示模块在显示所述第二动图的首帧图片之后,还用于继续下载所述第二动图的除首帧图片的剩余图片;当下载得到所述第二动图的剩余图片时,对所述第二动图的首帧图片和剩余图片进行解码,显示所述第二动图;继续下载所述第一动图的剩余图片。
在一个实施例中,第二显示模块在显示所述第二动图的首帧图片之后,还用于停止下载所述第二动图的除首帧图片的剩余图片;继续下载所述第一动图的剩余图片。第一显示模块230对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图之后,还用于继续下载所述第二动图的剩余图片;当下载得到所述第二动图的剩余图片时,对所述第二动图的首帧图片和剩余图片进行解码,显示所述第二动图。
在一个实施例中,首帧图片显示模块220在第一动图的首帧图片进行解码之后,显示所述第一动图的首帧图片之前,还用于将解码后的所述第一动图的首帧图片存储到指定位置;在所述第一动图的剩余图片下载失败时,根据输入的所述第一动图的重新下载请求,从所述指定位置获取解码后的所述第一动图的首帧图片。
在一个实施例中,第一显示模块230还用于下载所述第一动图的剩余图片;当下载得到所述第一动图的剩余图片时,对剩余图片和从所述指定位置获取的所述第一动图的首帧图片进行解码,显示所述第一动图。
在一个实施例中,若所述第一动图的数据包括首帧图片的大小,所述第一动图的首帧图片通过以下方式下载得到:接收所述第一动图从开始下载到达到所述首帧图片的大小之间的数据,作为所述第一动图的首帧图片;若所述第一动图的数据不包括首帧图片的大小,所述第一动图的首帧图片通过以下方式下载得到:接收所述第一动图开始下载后的数据,所述数据包括所述动图的文件块描述信息和文件块大小;根据所述文件块描述信息和所述文件块大小确定首帧图片对应的块,获取所述块的大小;将所述第一动图从开始下载到达到所述块的大小之间的数据,作为所述第一动图的首帧图片。
上述动图显示装置的其它技术特征与上述动图显示方法的技术特征相同,在此不予赘述。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一项所述的动图显示方法。其中,所述存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSS Memory,随即存储器)、EPROM(EraSable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。可以是只读存储器,磁盘或光盘等。
本申请实施例还提供一种终端,所述终端包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任意一项所述的动图显示方法。
图12为本申请终端的结构示意图,包括处理器320、存储装置330、输入单元340以及显示单元350等器件。本领域技术人员可以理解,图12示出的结构器件并不构成对所有终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储装置330可用于存储应用程序310以及各功能模块,处理器320运行存储在存储装置330的应用程序310,从而执行设备的各种功能应用以及数据处理。存储装置330可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本申请所公开的存储装置包括但不限于这些类型的存储装置。本申请所公开的存储装置330只作为例子而非作为限定。
输入单元340用于接收信号的输入,以及接收动图的下载请求。输入单元340可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元350可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元350可采用液晶显示器、有机发光二极管等形式。处理器320是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储装置330内的软件程序和/或模块,以及调用存储在存储装置内的数据,执行各种功能和处理数据。
在一实施方式中,终端包括一个或多个处理器320,以及一个或多个存储装置330,一个或多个应用程序310,其中所述一个或多个应用程序310被存储在存储装置330中并被配置为由所述一个或多个处理器320执行,所述一个或多个应用程序310配置用于执行以上实施例所述的动图显示方法。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解的是,在本申请各实施例中的各功能单元可集成在一个处理模块中,也可以各个单元单独物理存在,也可以两个或两个以上单元集成于一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种动图显示方法,其特征在于,包括:
根据输入的第一动图的下载请求,开始下载所述第一动图的各帧图片;
当下载得到所述第一动图的首帧图片时,对所述第一动图的首帧图片进行解码,显示所述第一动图的首帧图片;
根据后续输入的其他动图的下载请求,下载并显示所述其他动图的首帧图片,并根据预设的动图剩余图片的下载优先级对所述第一动图的剩余图片和所述其他动图的剩余图片进行下载;
当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图;以及,当下载得到所述其他动图的剩余图片时,对所述其他动图的首帧图片和剩余图片进行解码,显示所述其他动图。
2.根据权利要求1所述的动图显示方法,其特征在于,所述显示所述第一动图的首帧图片之后,所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码之前,还包括:
停止下载所述第一动图的剩余图片;
根据输入的第二动图的下载请求,开始下载所述第二动图的各帧图片;
当下载得到所述第二动图的首帧图片时,对所述第二动图的首帧图片进行解码,显示所述第二动图的首帧图片。
3.根据权利要求2所述的动图显示方法,其特征在于,所述显示所述第二动图的首帧图片之后,所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码之前,还包括:
继续下载所述第二动图的除首帧图片的剩余图片;
当下载得到所述第二动图的剩余图片时,对所述第二动图的首帧图片和剩余图片进行解码,显示所述第二动图;
继续下载所述第一动图的剩余图片。
4.根据权利要求2所述的动图显示方法,其特征在于,
所述显示所述第二动图的首帧图片之后,所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码之前,还包括:停止下载所述第二动图的除首帧图片的剩余图片;继续下载所述第一动图的剩余图片;
所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图之后,还包括:继续下载所述第二动图的剩余图片;当下载得到所述第二动图的剩余图片时,对所述第二动图的首帧图片和剩余图片进行解码,显示所述第二动图。
5.根据权利要求1所述的动图显示方法,其特征在于,所述对所述第一动图的首帧图片进行解码之后,所述显示所述第一动图的首帧图片之前,还包括:
将解码后的所述第一动图的首帧图片存储到指定位置;
若所述第一动图的剩余图片下载失败,根据输入的所述第一动图的重新下载请求,从所述指定位置获取解码后的所述第一动图的首帧图片。
6.根据权利要求5所述的动图显示方法,其特征在于,所述重新下载请求为下载所述第一动图的剩余图片的请求;所述当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图,包括:
下载所述第一动图的剩余图片;
当下载得到所述第一动图的剩余图片时,对剩余图片和从所述指定位置获取的所述第一动图的首帧图片进行解码,显示所述第一动图。
7.根据权利要求1至6任意一项所述的动图显示方法,其特征在于,
若所述第一动图的数据包括首帧图片的大小,所述第一动图的首帧图片通过以下方式下载得到:接收所述第一动图从开始下载到达到所述首帧图片的大小之间的数据,作为所述第一动图的首帧图片;
若所述第一动图的数据不包括首帧图片的大小,所述第一动图的首帧图片通过以下方式下载得到:接收所述第一动图开始下载后的数据,所述数据包括所述动图的文件块描述信息和文件块大小;根据所述文件块描述信息和所述文件块大小确定首帧图片对应的块,获取所述块的大小;将所述第一动图从开始下载到达到所述块的大小之间的数据,作为所述第一动图的首帧图片。
8.一种动图显示装置,其特征在于,包括:
下载模块,用于根据输入的第一动图的下载请求,开始下载所述第一动图的各帧图片;
首帧图片显示模块,用于当下载得到所述第一动图的首帧图片时,对所述第一动图的首帧图片进行解码,显示所述第一动图的首帧图片;根据后续输入的其他动图的下载请求,下载并显示所述其他动图的首帧图片,并根据预设的动图剩余图片的下载优先级对所述第一动图的剩余图片和所述其他动图的剩余图片进行下载;
第一显示模块,用于当下载得到所述第一动图的除首帧图片的剩余图片时,对所述第一动图的首帧图片和剩余图片进行解码,显示所述第一动图;以及,当下载得到所述其他动图的剩余图片时,对所述其他动图的首帧图片和剩余图片进行解码,显示所述其他动图。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任意一项所述的动图显示方法。
10.一种终端,其特征在于,所述终端包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至7中任意一项所述的动图显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811595010.9A CN109710359B (zh) | 2018-12-25 | 2018-12-25 | 动图显示方法、装置、计算机可读存储介质和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811595010.9A CN109710359B (zh) | 2018-12-25 | 2018-12-25 | 动图显示方法、装置、计算机可读存储介质和终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109710359A CN109710359A (zh) | 2019-05-03 |
CN109710359B true CN109710359B (zh) | 2022-03-01 |
Family
ID=66258268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811595010.9A Active CN109710359B (zh) | 2018-12-25 | 2018-12-25 | 动图显示方法、装置、计算机可读存储介质和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710359B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112135142B (zh) * | 2019-06-25 | 2022-06-07 | Oppo广东移动通信有限公司 | 图片解码方法及相关产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004179924A (ja) * | 2002-11-27 | 2004-06-24 | Nec Corp | 携帯電話機及びそれに用いるコンテンツ演出方法 |
CN103856507A (zh) * | 2012-11-30 | 2014-06-11 | 腾讯科技(深圳)有限公司 | 网络动态图片的静态显示方法和装置 |
CN103986933A (zh) * | 2014-04-24 | 2014-08-13 | 小米科技有限责任公司 | 动态图片显示方法及装置 |
CN104519404A (zh) * | 2013-09-29 | 2015-04-15 | 北京新媒传信科技有限公司 | 图像互换格式文件的播放方法及装置 |
CN107436879A (zh) * | 2016-05-25 | 2017-12-05 | 广州市动景计算机科技有限公司 | 一种动态图片的加载方法和加载系统 |
CN108769806A (zh) * | 2018-06-19 | 2018-11-06 | 聚好看科技股份有限公司 | 媒体内容的展示方法和装置 |
-
2018
- 2018-12-25 CN CN201811595010.9A patent/CN109710359B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004179924A (ja) * | 2002-11-27 | 2004-06-24 | Nec Corp | 携帯電話機及びそれに用いるコンテンツ演出方法 |
CN103856507A (zh) * | 2012-11-30 | 2014-06-11 | 腾讯科技(深圳)有限公司 | 网络动态图片的静态显示方法和装置 |
CN104519404A (zh) * | 2013-09-29 | 2015-04-15 | 北京新媒传信科技有限公司 | 图像互换格式文件的播放方法及装置 |
CN103986933A (zh) * | 2014-04-24 | 2014-08-13 | 小米科技有限责任公司 | 动态图片显示方法及装置 |
CN107436879A (zh) * | 2016-05-25 | 2017-12-05 | 广州市动景计算机科技有限公司 | 一种动态图片的加载方法和加载系统 |
CN108769806A (zh) * | 2018-06-19 | 2018-11-06 | 聚好看科技股份有限公司 | 媒体内容的展示方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109710359A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112087633B (zh) | 视频解码方法、装置及存储介质 | |
US10659684B2 (en) | Apparatus and method for providing dynamic panorama function | |
US10366669B2 (en) | Electronic device and method for driving display thereof | |
WO2022052773A1 (zh) | 多窗口投屏方法及电子设备 | |
WO2022257699A1 (zh) | 图像画面显示方法、装置、设备、存储介质及程序产品 | |
CN109445918B (zh) | 任务调度方法、装置、终端及存储介质 | |
US20170208334A1 (en) | Method and apparatus for processing image data | |
JP2022509191A (ja) | 映像デコーディング制御方法、装置、電子機器及び記憶媒体 | |
CN109947456A (zh) | 操作系统的升级方法及其升级装置、计算机存储介质 | |
CN115809106A (zh) | 云桌面系统与云桌面显示方法、终端设备及存储介质 | |
CN109710359B (zh) | 动图显示方法、装置、计算机可读存储介质和终端 | |
KR102398976B1 (ko) | 클라우드 스트리밍 서비스 시스템, 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 | |
CN113810773A (zh) | 视频下载方法及装置、电子设备和存储介质 | |
CN114040245A (zh) | 视频播放方法、装置、计算机存储介质和电子设备 | |
CN116546228B (zh) | 用于虚拟场景的推流方法、装置、设备及存储介质 | |
CN116700601B (zh) | 内存优化方法、设备及存储介质 | |
KR102409033B1 (ko) | 클라우드 스트리밍 서비스 시스템, 알파 레벨을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 | |
CN108464008B (zh) | 电子设备和由电子设备控制的内容再现方法 | |
CN116527978A (zh) | 一种多屏互动的控制方法及装置 | |
WO2014024255A1 (ja) | 端末および動画再生プログラム | |
US20110314412A1 (en) | Compositing application content and system content for display | |
CN108235144B (zh) | 播放内容获取方法、装置及计算设备 | |
KR20160095762A (ko) | 전자장치 및 전자장치의 영상데이터 처리 방법 | |
WO2024109286A1 (zh) | 多窗口切换方法及装置、电子设备以及计算机可读存储介质 | |
KR102405143B1 (ko) | 클라우드 스트리밍 서비스 시스템, 컬러 비트 감소를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221123 Address after: 31a, 15th floor, building 30, maple commercial city, bangrang Road, Brazil Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd. Address before: Building B-1, North District, Wanda Commercial Plaza, Wanbo business district, No. 79, Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd. |