实现动态图片预览的方法和装置、表情包展示方法和装置与流程

文档序号:12484843阅读:372来源:国知局
实现动态图片预览的方法和装置、表情包展示方法和装置与流程

本申请涉及图像处理技术领域,尤其涉及一种实现动态图片预览的方法和装置、一种表情包展示方法和装置。



背景技术:

随着互联网的发展,网络社交已经成为人们生活中不可或缺的组成部分。各种社交软件都提供了丰富多彩的表情输入功能,以帮助人们更为生动和准确的在网络上表达自己的情绪。表情成为社交软件的一大竞争力。

与静态表情相比,更为生动有趣的动态表情更加受到人们欢迎。在使用动态表情时,通常先对一个表情包中的多个动态表情进行预览,然后在预览页面选定所要使用的动态表情。现有技术中,表情包安装文件中每个动态表情对应于两个文件,动态图片和预览图片,分别用于动态表情的使用和预览。也就是说,需要两张图片才能完成整个动态表情的使用。这样,在制作表情包时需要准备两张图片,工作量大,而且使得表情包安装文件的尺寸过大,在下载时消耗较多的网络流量。



技术实现要素:

有鉴于此,本申请提供一种实现动态图片预览的方法,所述动态图片包括若干帧静态图像数据;所述方法包括:

从动态图片中提取具有指定帧序号的至少一帧静态图像数据;

对所提取的静态图像数据进行展现。

本申请提供的一种表情包展示方法,所述表情包中具有至少一个包括若 干帧静态图像数据的动态表情,所述方法包括:

从要展示的动态表情中提取具有指定帧序号的至少一帧静态图像数据;

利用所提取的静态图像数据展现所述动态表情。

本申请还提供了一种实现动态图片预览的装置,所述动态图片包括若干帧静态图像数据;所述装置包括:

图像数据提取单元,用于从动态图片中提取具有指定帧序号的至少一帧静态图像数据;

图像数据展现单元,用于对所提取的静态图像数据进行展现。

本申请提供的一种表情包展示装置,所述表情包中具有至少一个包括若干帧静态图像数据的动态表情,所述装置包括:

表情数据提取单元,用于从要展示的动态表情中提取具有指定帧序号的至少一帧静态图像数据;

表情数据展现单元,用于利用所提取的静态图像数据展现所述动态表情。

由以上技术方案可见,本申请的实施例中,通过提取动态图片或动态表情中的静态图像数据来进行展现,使得实现对动态图片的预览或对动态表情的展示不再需要下载预览图片,在应用于表情包时能够减小表情包安装文件的大小,节省网络流量;并且能够降低表情包制作人员的工作量,提高表情包制作的效率。

附图说明

图1是本申请实施例中一种实现动态图片预览的方法的流程图;

图2是本申请实施例中一种表情包展示方法的流程图;

图3是本申请应用示例中一种实现表情包中动态表情预览的流程图;

图4是应用本申请实施例的设备的一种硬件结构图;

图5是本申请实施例中一种实现动态图片预览的装置的逻辑结构图;

图6是本申请实施例中一种表情包展示装置的逻辑结构图。

具体实施方式

动态图片通常是由多张不同内容的静态图片组合而成,动态图片中包括这些静态图片的图像数据,每张静态图片的图像数据为一帧,通过逐帧顺序显示这些静态图像数据来展现出动态的效果。动态图片的预览图片往往是这些静态图片中的一张,而这张静态图片的图像数据已经包含在动态图片中。换言之,表情包中动态表情预览图片的图像数据是重复信息,可以通过去除重复信息来减小安装文件的大小。

本申请的实施例一提出一种新的实现动态图片预览的方法,利用动态图片中的部分静态图像数据来进行预览,将其用于表情包的动态表情预览时能够在用户的设备上利用动态表情本身实现预览,从而减小表情包安装文件的大小并减少表情包制作时的工作量,以解决现有技术中存在的问题。

本申请的实施例一应用在能够获取到动态图片,并要对该动态图片进行预览的设备上,可以是任何具有计算和存储功能的设备,如手机、平板电脑、PC(Personal Computer,个人电脑)、笔记本、服务器等等。本申请的实施例一中实现动态图片预览的方法的流程如图1所示。

步骤110,从动态图片中提取具有指定帧序号的至少一帧静态图像数据。

可以实时从网络上获取的动态图片,也采用保存在设备本地的动态图片。动态图片中包括至少两帧静态图像数据,每帧静态图像数据有各自的帧序号,展现动态图片时,按照帧序号顺序显示这些静态图像数据对应的图片即可呈现出动态效果。在各种现有的图像处理软件中,提供了多种从动态图片中提取具有某个或某些帧序号的静态图像数据的具体实现方式,此处不再赘述。

本实施例中,指定帧序号可以是单个的帧序号,提取单帧的静态图像数据,此时预览效果是静态的;指定帧序号也可以是两个或两个以上的帧序号,提取两帧或两帧以上静态图像数据,此时预览效果是动态的。

根据使用预览图片的应用场景不同,指定帧序号可以通过多种方式来确定。例如,可以在满足预定条件时(例如,需要预览动态图片的软件或应用 程序启动运行时、用户使用动态图片预览功能时等等),利用预设地址从网络获取动态图片的下发帧序号,将下发帧序号作为指定帧序号;可以在本地保存动态图片的内置帧序号,以内置帧序号作为指定帧序号(对表情包中的动态表情,可以通过在安装文件中携带对应于每个动态表情的内置帧序号,利用安装过程将内置帧序号保存在本地);还可以设置默认帧序号,以默认帧序号作为指定帧序号。

利用预设地址从网络获取下发帧序号的方式能够从网络侧集中控制动态图片的预览效果,无需更改每个客户端的设置即可根据需要修改所展示的预览图片,但在网络速度较慢时造成预览的延迟。采用本地保存的内置帧序号的方式能够避免网络条件对动态图片预览的影响,运行效率高节省流量,但需要为每个动态图片预置对应的内置帧序号。采用默认帧序号的方式同样运行效率高节省流量,并且实现简单,能够为之前的动态图片(既没有网络侧提供下发帧序号,也没有预置内置帧序号的动态图片)提供预览实现上的兼容性,但往往难以准确的展现每个动态图片的特点。

上述三种确定指定帧序号的方式可以结合采用,以尽可能的利用不同方式的优点并减少其缺点的影响。例如,结合内置帧序号和默认帧序号:在本地查找某个动态图片的内置帧序号,如果找到则以本地保存的该动态图片的内置帧序号作为指定帧序号;如果未能找到,则以默认帧序号作为该动态图片的指定帧序号。再如,结合下发帧序号和默认帧序号:利用预设地址从网络获取某个动态图片的下发帧序号,来作为该动态图片的指定帧序号;如果未能从网络获取到该动态图片的下发帧序号,则以默认帧序号作为该动态图片的指定帧序号。

一个例子中,还可以结合上述三种方式来确定指定帧序号:利用预设地址从网络获取某个动态图片的下发帧序号,来作为指定帧序号;如果未能从网络获取到该动态图片的下发帧序号,则以本地保存的该动态图片的内置帧序号作为指定帧序号;如果未找到本地保存的该动态图片的内置帧序号,则以默认帧序号作为该动态图片的指定帧序号。

由于不同的动态图片所包括的静态图像帧数的差别可能非常大,可以对指定帧序号设置一定的规则,以使得设置默认帧序号更为方便,同时能够避免因帧序号错误导致的预览失败。例如,动态图片中静态图像数据的帧序号通常是从1到M(M为自然数)顺序递增,可以将指定帧序号的规则设置为:指定帧序号中的0和/或-1表示最后一帧;对指定帧序号中的N(N为自然数),如果N不大于动态图片最后一帧的帧序号,则表示第N帧,大于动态图片最后一帧的帧序号,则表示动态图片的最后一帧。这样,默认帧序号可以为1来将第一帧用作预览,可以为0或-1来将最后一帧用作预览,还可以为(1,0)或(1,-1)来将由第一帧和最后一帧组成的动态图片用作预览。并且,即使发生下发帧序号、内置帧序号或默认帧序号超过动态图片的最大帧数的情况,也不会导致无法预览的情形出现。

步骤120,对所提取的静态图像数据进行展现。

将步骤110中提取的静态图像数据作为预览图片中图像数据,展现给用户。现有技术中各种系统软件和图像处理应用软件都可以实现这一功能,不再赘述。

一种实现方式中,可以根据从某个动态图片中提取的静态图像数据生成预览图片,并对所生成的预览图片进行缓存;在对该动态图片进行预览时,可以先查找缓存中是否保存有该动态图片的预览图片,如果有,则展现缓存的预览图片;如果没有,则执行步骤110和步骤120,提取静态图像数据并展现,以及根据提取的静态图像数据生成预览图片并存入缓存。

如果指定帧序号是单个的帧序号,利用提取的单帧静态图像数据生成的是静态的预览图片;如果指定帧序号是两个或两个以上的帧序号,利用提取的两帧或两帧以上静态图像数据生成的是动态的预览图片。现有的各种图像处理软件已经提供了很多种利用单帧静态图像数据生成静态的预览图片、和利用超过一帧静态图像数据生成动态的预览图片的具体实现方式,均可以采用,不再赘述。

在需要对动态图片进行预览时,可以将缓存中该动态图片的预览图片展 现给用户。可以调用现有的静态播放器来展现静态的预览图片,调用现有的动态播放器来展现动态的预览图片,也可以调用既支持动态图片又支持静态图片的现有图片播放器来展现预览图片,本实施例中不做限定。

对非易失性存储空间容量大的设备,可以将预览图片的缓存区设置在非易失性存储器中,以减少生成预览图片的处理时间,提高动态图片预览的效率。

可见,本申请的实施例一中利用动态图片中的静态图像数据来实现静态或动态的预览功能,在应用于表情包时不再需要在安装文件中为每个动态图片配置对应的预览图片,减小了表情包安装文件的大小,节省了下载安装文件所消耗的网络流量;同时安装包制作人员不再需要为每个动态表情生成预览图片,减少了表情包制作的工作量,提高了制作效率。

本申请的实施例二提出一种新的表情包展示方法,利用动态表情中的部分静态图像数据来进行展现动态表情,这样在用户的设备上展示表情包中的表情时,利用动态表情本身即可实现,从而减小表情包安装文件的大小并减少表情包制作时的工作量,以解决现有技术中存在的问题。

本申请的实施例二应用在下载表情包安装文件并完成表情包的设备上,该设备可以是任何具有计算和存储功能的设备。在表情包安装完毕后,在用户选择该表情包时,该设备该设备将表情包展示给用户,供用户对其中的表情进行预览。

实施例二中,表情包安装文件、安装完成后该设备上的表情包文件中包括至少一个动态表情,但不包括每个动态表情对应的预览表情。每个动态表情都是一个动态图片,包括至少两帧具有各自的帧序号的静态图像数据。本申请的实施例二中,表情包展示方法的流程如图2所示。

步骤210,从要展示的动态表情中提取具有指定帧序号的至少一帧静态图像数据。

根据表情包中表情的个数和使用表情的社交软件的界面设计,每次展示给用户的表情可以是表情包中的全部表情,也可以是部分表情。对要展示的 动态表情,按照指定帧序号提取至少一帧静态图像数据。指定帧序号可以是是单个的帧序号,来进行表情静态展示;指定帧序号也可以是两个或两个以上的帧序号,来进行表情的动态展示。

指定帧序号可以通过多种方式来确定,可以将从网络获取的所述动态表情的下发帧序号、表情包中包括的所述动态表情的内置帧序号、或默认帧序号来作为指定帧序号。

对下发帧序号,可以在表情包中预置下载下发帧序号的预设地址,或者在使用表情包的社交软件中内置用于获取下发帧序号的预设地址,再利用全局表情标识(所有表情中每个表情具有的唯一标识)或者包内表情标识(每个表情在所在表情包的唯一标识)+表情包标识(在所有表情包中的唯一标识),来获取每个动态表情的下发帧序号。

对内置帧序号,可以在表情包安装文件中包括对应于每个动态表情的内置帧序号,在完成表情包安装后,在设备本地的表情包中即保存有每个动态表情的内置帧序号。

对默认帧序号,可以对表情包、或对使用表情包的社交软件设置所使用的默认帧序号。

可以结合上述三种帧序号来确定指定帧序号,具体而言,基于预设地址从网络获取动态表情的下发帧序号,作为指定帧序号;如果未能获取到该动态表情的下发帧序号,则以表情包中包括的该动态表情的内置帧序号作为指定帧序号;如果未找到该动态表情的内置帧序号,则以默认帧序号作为该动态表情的指定帧序号。

分别以上述三种帧序号为指定帧序号时所具有的优缺点请参见实施例一的说明。此外,结合使用上述三种帧序号中的两种或三种来确定指定帧序号的方式以及能达到的技术效果,也请参见实施例一。此外,本实施例中也可以对指定帧序号设置一定的规则,请参见实施例一,不再重复。

步骤220,利用所提取的静态图像数据展现该动态表情。

由于社交软件中常常需要频繁展示表情包,可以根据从动态表情中提取 的静态图像数据生成对应于该动态表情的预览表情,并将生成的预览表情进行缓存。在进行表情包展示时,对要展示的动态表情,先在缓存中查找是否有对应于该动态表情的预览表情,如果有,则用对应的预览表情来展现该动态表情,如果没有,则执行步骤210和220,提取静态图像数据后展现,并根据提取的静态图像数据生成预览表情,存入缓存。

在一种实现方式中,可以将缓存设置在设备本地保存的表情包中,这样,每个动态表情在第一次展现时生成预览表情,以后的各次展现都可以直接利用预览表情来实现表情包展示,从而减少设备的运算量,提高表情包展示的效率。

实施例二中利用动态表情中的静态图像数据来进行表情包展示,不再需要在表情包安装文件中为每个动态表情配置对应的预览表情,减小了表情包安装文件的大小,节省了下载安装文件所消耗的网络流量;同时安装包制作人员不再需要为每个动态表情生成预览表情,减少了表情包制作的工作量,提高了制作效率。

在本申请的一个应用示例中,用户Android(安卓)终端上的社交App(应用程序)下载并安装一个表情包,该表情包中包括每个动态表情的动态图片和获取动态图片下载帧序号的网络地址,但不包括动态表情的预览图片。社交App为预览图片设置了缓存区。

当用户在社交App中点击该表情包的标签后,应当在界面上显示该表情包中若干个动态表情的预览图片。以其中的一个待显示动态表情01.gif为例,本应用示例中实现动态表情预览的流程如图3所示。

步骤301,在缓存区中查找该动态表情01.gif的预览图片。

步骤302,判断是否找到,如果找到,执行步骤303,否则转步骤304。

步骤303,在界面上展现01.gif的预览图片,流程结束。

步骤304,获取表情包中的网络地址,向该网络地址请求01.gif的下发帧序号。

步骤305,判断在预定时间内是否收到该网络地址返回的下发帧序号, 如果是,执行步骤306,否则转步骤307。

步骤306,如果下发帧序号大于01.gif的最大帧序号,则以01.gif的最大帧序号为指定帧序号PreviewIndex,否则以下发帧序号为指定帧序号,转步骤308。

步骤307,以默认帧序号0为指定帧序号。0表示动态图片的最后一帧静态图像数据。

步骤308,调用开源组件GIFDrawable将01.gif加载到内存中,提取出具有指定帧序号的静态图像数据。

步骤309,将提取出的静态图像数据放置到安卓系统自带的图片容器ImageView中,由ImageView将静态图像数据展现给用户,实现对01.gif的预览。

步骤310,利用提取的静态图像数据生成01.gif的预览文件,并将生成的预览文件保存在缓存区中。这样,在下次需要对01.gif进行预览时,可以从缓存区中读取保存的预览文件,直接进行展现。

需要说明的是,步骤309和310之间没有时序关系。

与上述流程实现对应,本申请的实施例还提供了一种实现动态图片预览的装置。该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是该装置所在的设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图4所示的CPU、内存以及非易失性存储器之外,实现动态图片预览的装置所在的设备通常还包括用于进行无线信号收发的芯片、或用于实现网络通信功能的板卡等其他硬件。

图5所示为本申请实施例提供的一种实现动态图片预览的装置,所述动态图片包括若干帧静态图像数据;所述装置包括图像数据提取单元和图像数据展现单元,其中:图像数据提取单元用于从动态图片中提取具有指定帧序号的至少一帧静态图像数据;图像数据展现单元用于对所提取的静态图像数据进行展现。

可选的,所述指定帧序号包括:从网络获取的所述动态图片的下发帧序号、本地保存的所述动态图片的内置帧序号、或默认帧序号。

可选的,所述装置还可以包括指定帧序号单元,用于基于预设地址从网络获取所述动态图片的下发帧序号,作为指定帧序号;如果未能获取到所述动态图片的下发帧序号,则以本地保存的所述动态图片的内置帧序号作为指定帧序号;如果未找到所述动态图片的内置帧序号,则以默认帧序号作为所述动态图片的指定帧序号。

可选的,所述指定帧序号中,0或-1表示所述动态图片的最后一帧静态图像数据;所述指定帧序号中的N如果不大于所述动态图片的最大帧序号,则表示所述动态图片的第N帧静态图像数据;如果N大于所述动态图片的最大帧序号,则表示所述动态图片的最后一帧静态图像数据;N为自然数。

可选的,所述装置还可以包括预览图片缓存单元和预览图片展现单元,其中:预览图片缓存单元用于根据提取的静态图像数据生成预览图片,并缓存生成的预览图片;预览图片展现单元用于在对所述动态图片进行预览时,如果在缓存中查找到所述动态图片的预览图片,则展现缓存的预览图片。

可选的,所述动态图片包括表情包中的动态表情;所述表情包的安装文件中包括对应于动态表情、用来作为指定帧序号的内置帧序号。

图6所示为本申请实施例提供的一种实现动态图片预览的装置,所述表情包中具有至少一个包括若干帧静态图像数据的动态表情,所述装置包括表情数据提取单元和表情数据展现单元,其中:表情数据提取单元用于从要展示的动态表情中提取具有指定帧序号的至少一帧静态图像数据;表情数据展现单元用于利用所提取的静态图像数据展现所述动态表情。

可选的,所述指定帧序号包括:从网络获取的所述动态表情的下发帧序号、表情包中包括的所述动态表情的内置帧序号、或默认帧序号。

可选的,所述装置还包括表情指定帧序号单元,用于基于预设地址从网络获取所述动态表情的下发帧序号,作为指定帧序号;如果未能获取到所述动态图片的下发帧序号,则以表情包中包括的所述动态表情的内置帧序号作 为指定帧序号;如果未找到所述动态表情的内置帧序号,则以默认帧序号作为所述动态表情的指定帧序号。

可选的,所述装置还包括预览表情缓存单元和预览表情展现单元,其中:预览表情缓存单元用于根据提取的静态图像数据生成对应于所述动态表情的预览表情,并缓存生成的预览表情;预览表情展现单元用于在缓存中查找到要展示的动态表情所对应的预览表情时,利用所述预览表情展现所述动态表情。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包 括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1