具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,本发明的具体实施例提供了一种动态图片的生成方法,应用于终端,该方法包括:
步骤101,根据终端的显示内容,截取多张全屏图像。
其中,在本发明的具体实施例中,上述显示内容包括正在播放的动态图像(例如图像互换格式(GIF,Graphics Interchange Format)图像),进而确保后续能够生成动态图片。
具体的,在本发明的具体实施例中,上述步骤101的具体实现方式可以为:在预设录制时间内,根据预设采样周期对终端的显示内容进行截屏操作,获取多张全屏图像。其中,截屏的到的全屏图像中包含动态图像的图像帧。在此作为一个示例,由于一般动态图像的播放时间不长,因此为满足大部分应用程序上的动态图像的播放时长要求,上述预设录制时间可以为20秒(s);类似的,由于一般动态图像的帧速率较低,同时通常条件下,人眼的识别连贯图像的速度是24帧/秒,那帧间隔大约为40ms(1000毫秒/24帧),因此上述预设采样周期可以为5ms,需要说明的是,若上述预设采样周期为5ms,既能完全满足实际需求,又能满足中端截屏的性能要求。
且在本发明的具体实施例中,当终端的显示内容包括正在播放的动态图像时,可通过输入动态图片生成指令的方式,触发终端截取多张全屏图像。具体的,可通过按压设置在终端***的快捷栏上的生成动态图片的快捷操作按钮的方式,输入动态图片生成指令。此外,上述终端可以为智能手机、平板电脑等设备。
步骤102,从全屏图像中识别出动态区域,并根据动态区域,从多张全屏图像中分离出多张动态图像帧。
其中,在本发明的具体实施例中,从全屏图像中识别出动态区域的具体实现方式可以为:首先从多张全屏图像中选择出预设数量的全屏图像;然后针对选择出的每张全屏图像,分别检测全屏图像中的动态图像的边缘;最后根据预设数量的全屏图像中的动态图像的边缘,确定动态区域。
具体的,在本发明的具体实施例中,可通过图像一阶梯度算法,检测出全屏图像中的动态图像的边缘,继而根据每个动态图像的边缘,获取到每个动态图像在预设坐标轴上的最大值与最小值,确定出矩形的4个顶点,并依此确定出每个动态图像对应的矩形框,最终将面积最大的矩形框对应的区域作为动态区域。其中,上述预设坐标轴包括相互垂直的两个坐标轴,例如与终端的显示方向平行的第一坐标轴,以及与第一坐标轴垂直的第二坐标轴。
其中,在本发明的具体实施例中,当识别出动态区域后,便可根据动态区域,从多张全屏图像中分离出多张动态图像帧,即,可根据动态区域,从每张全屏图像中分离出一张动态图像帧,例如从如图2A所示的包含有动态图像帧2的全屏图像1中分离出如图2B所示的动态图像帧2,其中动态图像帧2的内容包括一人的头部,全屏图像1中除动态图像帧2以外的其他区域上包括有状态栏等信息,例如返回按钮、电池电量、信号强度等。
步骤103,使用多张动态图像帧,生成动态图片。
可见,在本发明的具体实施例中,通过根据终端的显示内容,截取多张全屏图像,并从全屏图像中识别出动态区域,进而根据动态区域,从多张全屏图像中分离出多张动态图像帧,最终使用多张动态图像帧,生成动态图片,能够快速、便捷的生成动态图片,且不依赖于终端的下载功能,提升用户体验的效果。
其中,在本发明的具体实施例中,如图3所示,上述步骤103的具体实现方式包括如下步骤:
步骤301,根据动态图片包含的动态图像帧的数量,确定动态图片的播放周期时长。
其中,在本发明的具体实施例中,终端的显示内容包括的动态图像会一直循环播放,可能在预设录制时间内播放很多次。因此需要确定首尾两帧图像,并据此确定出动态图片包含的动态图像帧的数量,进而确定动态图片的播放周期时长,避免最终生成的动态图片存在相同的画面。
具体的,在本发明的具体实施例中,上述步骤301的具体实现方式可以为:首先按照多张动态图像帧对应的全屏图像的截取时间的先后顺序,对多张动态图像帧进行排序;然后将多张动态图像帧中排在第一位的第一动态图像帧作为动态图片的首帧,并根据排序后的多张动态图像帧,确定动态图片的尾帧;紧接着根据首帧和尾帧,确定动态图片包含的动态图像帧的数量;最后计算动态图片包含的动态图像帧的数量与预设采样周期的乘积,并将得到的结果作为动态图片的播放周期时长。
步骤302,根据播放周期时长和动态图片能够容纳的图像帧的数量,获取动态图片的图像帧的时间间隔。
其中,在本发明的具体实施例中,上述步骤302的具体实现方式可以为:首先将动态图片的第一预设大小与单个图像帧的第二预设大小的比值作为动态图片能够容纳的图像帧的数量;然后将播放周期时长与动态图片能够容纳的图像帧的数量的比值作为动态图片的图片帧的时间间隔。
在此需要说明的是,上述第一预设大小为动态图片的大小,例如,如果上述动态图片是为便于通过微信等软件发送给其他好友的动态图片,那么上述第一预设大小可以为500千字节(KB),相应的,单个图像帧的第二预设大小可以为5KB。需要进一步说明的是,通常条件下,人眼的识别连贯图像的速度是24帧/秒,那帧间隔大约为40ms(1000毫秒/24帧),因此最大的时间间隔不超过40ms。
步骤303,根据时间间隔,从多张动态图像帧中确定出目标动态图像帧。
其中,在本发明的具体实施例中,上述步骤303的具体实现方式可以为:首先按照多张动态图像帧对应的全屏图像的截取时间的先后顺序,对多张动态图像帧进行排序;然后以多张动态图像帧中排在第一位的第一动态图像帧为起点、时间间隔为步长,从排序后的多张动态图像帧中抽取动态图像帧;最后将第一动态图像帧以及抽取出的动态图像帧作为目标动态图像帧。
在此以一简单示例阐述抽取动态图像帧的过程,假设时间间隔为10ms,则从排序后的多张动态图像帧中依次抽取第11ms、第21ms、第31ms及后续每相隔10ms的动态图像帧。
步骤304,使用目标动态图像帧,生成动态图片。
其中,在本发明的具体实施例中,当生成动态图片后,便能通过微信的聊天软件将生成的动态图片发送给其他好友,提升用户体验。
其中,在本发明的具体实施例中,上述步骤304的具体实现方式可以为:若目标动态图像帧的大小大于单个图像帧的第二预设大小,则将目标动态图像帧压缩至第二预设大小,得到压缩后的目标动态图像帧,并使用压缩后的目标动态图像帧,生成动态图片。
在此需要说明的是,对于每个目标动态图像帧,只要其大小大于单个图像帧的第二预设大小,便需要将该目标动态图像帧压缩至第二预设大小,以确保后续能正常使用生成的动态图片。
且需要进一步说明的是,在使用目标动态图像帧生成动态图片时,应按照目标动态图像帧的先后顺序(即按照首帧至尾帧的顺序)生成动态图片,进而确保最后生辰的动态图片为预期的动态图片,提升用户体验。
此外,在本发明的具体实施例中,为更加清楚上述方法,在此对根据排序后的多张动态图像帧,确定动态图片的尾帧的具体实现方式进行详细阐述。
其中,由于普通的动态图片帧间隔时间比较大,使得获取到的多张动态图像帧中存在与第一动态图像帧相同的动态图像帧。因此,在本发明的具体实施例中,可通过比对像素值的方式找出与第一动态图像帧相同的动态图像帧,并将该动态图像帧的前一个动态图像帧作为动态图片的尾帧。
具体的,在本发明的具体实施中,上述根据排序后的多张动态图像帧,确定动态图片的尾帧的具体实现方式可以为:从排序后的多张动态图像帧中位于第一动态图像帧后的每个动态图像帧中,依次获取位于预设位置的多个第二像素点的像素值,判断第二像素点的像素值是否分别与位于第一动态图像帧的预设位置的多个第一像素的像素值相同,当第二像素点的像素值分别与位于第一动态图像帧的预设位置的多个第一像素的像素值相同时,将与第二像素值对应的动态图像帧的前一个动态图像帧,作为动态图片的尾帧。其中,当第二像素点的像素值分别与位于第一动态图像帧的预设位置的多个第一像素的像素值相同时,终端便确定与该第二像素值对应的动态图像帧与第一动态图像帧相同。
其中,在本发明的具体实施例中,可将上述动态区域分成M行×N列,即将动态区域分成M×N个像素点,使得基于此,能获取每张动态图像帧的M×N个像素点的像素值(对于位于第一动态图像帧后的每个动态图像帧而言,便为上述多个第二像素点的像素值;对于第一动态图像帧而言,便为上述多个第一像素的像素值),进而快速、准确的找出与第一动态图像帧相同的动态图像帧。其中,作为一个示例,上述M可以为20,N可以为10。
在此,需要说明的是,为确保能生成预期的动态图片,提升用户体验,当第二像素点的像素值分别与位于第一动态图像帧的预设位置的多个第一像素的像素值相同时,可生成一个从第一动态图像帧至与该第二像素值对应的动态图像帧的前一个动态图像帧的动画预览效果,并提示用户是否结束录制,若用户指示结束录制的话,便直接将该第二像素值对应的动态图像帧的前一个动态图像帧,作为动态图片的尾帧;而若用户指示继续录制的话,便需要找到下一个与第一动态图像帧相同的动态图像帧,直到用户指示结束录制,并将与第一动态图像帧相同的动态图像帧的前一个动态图像帧,作为动态图片的尾帧。
由此可见,在本发明的具体实施例中,通过根据终端的显示内容,截取多张全屏图像,并从全屏图像中识别出动态区域,进而根据动态区域,从多张全屏图像中分离出多张动态图像帧,紧接着根据动态图片包含的动态图像帧的数量,确定动态图片的播放周期时长,并根据播放周期时长和动态图片能够容纳的图像帧的数量,获取动态图片的图像帧的时间间隔;最终根据时间间隔,从多张动态图像帧中确定出目标动态图像帧,并使用目标动态图像帧,生成动态图片,能够快速、便捷的生成动态图片,且不依赖于终端的下载功能,提升用户体验的效果。
如图4A至图4B所示,本发明的具体实施例还提供了一种终端,该终端400包括:
截取模块401,用于根据终端的显示内容,截取多张全屏图像;
识别模块402,用于从全屏图像中识别出动态区域,并根据动态区域,从多张全屏图像中分离出多张动态图像帧;
生成模块403,用于使用多张动态图像帧,生成动态图片。
其中,上述终端400可以为智能手机、平板电脑等设备。
可选的,截取模块401,具体用于在预设录制时间内,根据预设采样周期对终端的显示内容进行截屏操作,获取多张全屏图像。
可选的,识别模块402包括:
选择子模块,用于从多张全屏图像中选择出预设数量的全屏图像;
检测子模块,用于针对选择出的每张全屏图像,分别检测全屏图像中的动态图像的边缘;
第一确定子模块,用于根据预设数量的全屏图像中的动态图像的边缘,确定动态区域。
可选的,生成模块403包括:
第二确定子模块4031,用于根据动态图片包含的动态图像帧的数量,确定动态图片的播放周期时长;
获取子模块4032,用于根据播放周期时长和动态图片能够容纳的图像帧的数量,获取动态图片的图像帧的时间间隔;
第三确定子模块4033,用于根据时间间隔,从多张动态图像帧中确定出目标动态图像帧;
生成子模块4034,用于使用目标动态图像帧,生成动态图片。
可选的,第二确定子模块4031包括:
第一排序单元,用于按照多张动态图像帧对应的全屏图像的截取时间的先后顺序,对多张动态图像帧进行排序;
第一确定单元,用于将多张动态图像帧中排在第一位的第一动态图像帧作为动态图片的首帧;
第二确定单元,用于根据排序后的多张动态图像帧,确定动态图片的尾帧;
第三确定单元,用于根据首帧和尾帧,确定动态图片包含的动态图像帧的数量;
计算单元,用于计算动态图片包含的动态图像帧的数量与预设采样周期的乘积,将得到的结果作为动态图片的播放周期时长。
可选的,第二确定单元包括:
判断子单元,用于从排序后的多张动态图像帧中位于第一动态图像帧后的每个动态图像帧中,依次获取位于预设位置的多个第二像素点的像素值,判断第二像素点的像素值是否分别与位于第一动态图像帧的预设位置的多个第一像素的像素值相同;
确定子单元,用于当第二像素点的像素值分别与位于第一动态图像帧的预设位置的多个第一像素的像素值相同时,将与第二像素值对应的动态图像帧的前一个动态图像帧,作为动态图片的尾帧。
可选的,获取子模块4032包括:
第四确定单元,用于将动态图片的第一预设大小与单个图像帧的第二预设大小的比值作为动态图片能够容纳的图像帧的数量;
第五确定单元,用于将播放周期时长与动态图片能够容纳的图像帧的数量的比值作为动态图片的图片帧的时间间隔。
可选的,第三确定子模块4033包括:
第二排序单元,用于按照多张动态图像帧对应的全屏图像的截取时间的先后顺序,对多张动态图像帧进行排序;
抽取单元,用于以多张动态图像帧中排在第一位的第一动态图像帧为起点、时间间隔为步长,从排序后的多张动态图像帧中抽取动态图像帧;
第六确定单元,用于将第一动态图像帧以及抽取出的动态图像帧作为目标动态图像帧。
可选的,生成子模块4034包括:
压缩单元,用于若目标动态图像帧的大小大于单个图像帧的第二预设大小,则将目标动态图像帧压缩至第二预设大小,得到压缩后的目标动态图像帧;
生成单元,用于使用压缩后的目标动态图像帧,生成动态图片。
在本发明的实施例中,终端通过根据终端的显示内容,截取多张全屏图像,并从全屏图像中识别出动态区域,进而根据动态区域,从多张全屏图像中分离出多张动态图像帧,最终使用多张动态图像帧,生成动态图片,能够快速、便捷的生成动态图片,且不依赖于终端的下载功能,提升用户体验的效果。
需要说明的是,本发明具体实施例提供的终端是应用上述方法的终端,即上述方法的所有实施例均适用于该终端,且均能达到相同或相似的有益效果。
如图5所示,本发明的具体实施例还提供了一种终端,该终端500包括:至少一个处理器501、存储器502、至少一个网络接口504和其他用户接口503。终端500中的各个组件通过总线***505耦合在一起。可理解,总线***505用于实现这些组件之间的连接通信。总线***505除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线***505。
其中,用户接口503可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的***和方法的存储器502旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器502存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作***5021和应用程序5022。
其中,操作***5021,包含各种***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序5022,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序5022中。
在本发明实施例中,通过调用存储器502存储的程序或指令,具体的,可以是应用程序5022中存储的程序或指令,处理器501,用于实现如下功能:根据终端的显示内容,截取多张全屏图像;从全屏图像中识别出动态区域,并根据动态区域,从多张全屏图像中分离出多张动态图像帧;使用多张动态图像帧,生成动态图片。
上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,处理器501还用于:在预设录制时间内,根据预设采样周期对终端的显示内容进行截屏操作,获取多张全屏图像。
可选地,处理器501还用于:从多张全屏图像中选择出预设数量的全屏图像;针对选择出的每张全屏图像,分别检测全屏图像中的动态图像的边缘;根据预设数量的全屏图像中的动态图像的边缘,确定动态区域。
可选地,处理器501还用于:根据动态图片包含的动态图像帧的数量,确定动态图片的播放周期时长;根据播放周期时长和动态图片能够容纳的图像帧的数量,获取动态图片的图像帧的时间间隔;根据时间间隔,从多张动态图像帧中确定出目标动态图像帧;使用目标动态图像帧,生成动态图片。
可选地,处理器501还用于:按照多张动态图像帧对应的全屏图像的截取时间的先后顺序,对多张动态图像帧进行排序;将多张动态图像帧中排在第一位的第一动态图像帧作为动态图片的首帧;根据排序后的多张动态图像帧,确定动态图片的尾帧;根据首帧和尾帧,确定动态图片包含的动态图像帧的数量;计算动态图片包含的动态图像帧的数量与预设采样周期的乘积,将得到的结果作为动态图片的播放周期时长。
可选地,处理器501还用于:从排序后的多张动态图像帧中位于第一动态图像帧后的每个动态图像帧中,依次获取位于预设位置的多个第二像素点的像素值,判断第二像素点的像素值是否分别与位于第一动态图像帧的预设位置的多个第一像素的像素值相同;当第二像素点的像素值分别与位于第一动态图像帧的预设位置的多个第一像素的像素值相同时,将与第二像素值对应的动态图像帧的前一个动态图像帧,作为动态图片的尾帧。
可选地,处理器501还用于:将动态图片的第一预设大小与单个图像帧的第二预设大小的比值作为动态图片能够容纳的图像帧的数量;将播放周期时长与动态图片能够容纳的图像帧的数量的比值作为动态图片的图片帧的时间间隔。
可选地,处理器501还用于:按照多张动态图像帧对应的全屏图像的截取时间的先后顺序,对多张动态图像帧进行排序;以多张动态图像帧中排在第一位的第一动态图像帧为起点、时间间隔为步长,从排序后的多张动态图像帧中抽取动态图像帧;将第一动态图像帧以及抽取出的动态图像帧作为目标动态图像帧。
可选地,处理器501还用于:若目标动态图像帧的大小大于单个图像帧的第二预设大小,则将目标动态图像帧压缩至第二预设大小,得到压缩后的目标动态图像帧;使用压缩后的目标动态图像帧,生成动态图片。
终端500能够实现前述实施例中终端实现的各个过程,为避免重复,这里不再赘述。
在本发明的具体实施例中,终端通过根据终端的显示内容,截取多张全屏图像,并从全屏图像中识别出动态区域,进而根据动态区域,从多张全屏图像中分离出多张动态图像帧,最终使用多张动态图像帧,生成动态图片,能够快速、便捷的生成动态图片,且不依赖于终端的下载功能,提升用户体验的效果。
如图6所示,本发明的具体实施例提供了一种终端,该终端600可以为手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、或车载电脑等。
图6中的终端600包括射频(Radio Frequency,RF)电路610、存储器620、输入单元630、显示单元640、处理器660、音频电路670、WiFi(Wireless Fidelity)模块680和电源690。
其中,输入单元630可用于接收用户输入的数字或字符信息,以及产生与终端600的用户设置以及功能控制有关的信号输入。具体地,本发明实施例中,该输入单元630可以包括触控面板631。触控面板631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板631上的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给该处理器660,并能接收处理器660发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板631。除了触控面板631,输入单元630还可以包括其他输入设备632,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
其中,显示单元640可用于显示由用户输入的信息或提供给用户的信息以及终端600的各种菜单界面。显示单元640可包括显示面板641,可选的,可以采用LCD或有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板641。
应注意,触控面板631可以覆盖显示面板641,形成触摸显示屏,当该触摸显示屏检测到在其上或附近的触摸操作后,传送给处理器660以确定触摸事件的类型,随后处理器660根据触摸事件的类型在触摸显示屏上提供相应的视觉输出。
触摸显示屏包括应用程序界面显示区及常用控件显示区。该应用程序界面显示区及该常用控件显示区的排列方式并不限定,可以为上下排列、左右排列等可以区分两个显示区的排列方式。该应用程序界面显示区可以用于显示应用程序的界面。每一个界面可以包含至少一个应用程序的图标和/或widget桌面控件等界面元素。该应用程序界面显示区也可以为不包含任何内容的空界面。该常用控件显示区用于显示使用率较高的控件,例如,设置按钮、界面编号、滚动条、电话本图标等应用程序图标等。
其中处理器660是终端600的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在第一存储器621内的软件程序和/或模块,以及调用存储在第二存储器622内的数据,执行终端600的各种功能和处理数据,从而对终端600进行整体监控。可选的,处理器660可包括一个或多个处理单元。
在本发明实施例中,通过调用存储该第一存储器621内的软件程序和/或模块和/或该第二存储器622内的数据,处理器660,用于实现如下功能:根据终端的显示内容,截取多张全屏图像;从全屏图像中识别出动态区域,并根据动态区域,从多张全屏图像中分离出多张动态图像帧;使用多张动态图像帧,生成动态图片。
可选地,处理器660还用于:在预设录制时间内,根据预设采样周期对终端的显示内容进行截屏操作,获取多张全屏图像。
可选地,处理器660还用于:从多张全屏图像中选择出预设数量的全屏图像;针对选择出的每张全屏图像,分别检测全屏图像中的动态图像的边缘;根据预设数量的全屏图像中的动态图像的边缘,确定动态区域。
可选地,处理器660还用于:根据动态图片包含的动态图像帧的数量,确定动态图片的播放周期时长;根据播放周期时长和动态图片能够容纳的图像帧的数量,获取动态图片的图像帧的时间间隔;根据时间间隔,从多张动态图像帧中确定出目标动态图像帧;使用目标动态图像帧,生成动态图片。
可选地,处理器660还用于:按照多张动态图像帧对应的全屏图像的截取时间的先后顺序,对多张动态图像帧进行排序;将多张动态图像帧中排在第一位的第一动态图像帧作为动态图片的首帧;根据排序后的多张动态图像帧,确定动态图片的尾帧;根据首帧和尾帧,确定动态图片包含的动态图像帧的数量;计算动态图片包含的动态图像帧的数量与预设采样周期的乘积,将得到的结果作为动态图片的播放周期时长。
可选地,处理器660还用于:从排序后的多张动态图像帧中位于第一动态图像帧后的每个动态图像帧中,依次获取位于预设位置的多个第二像素点的像素值,判断第二像素点的像素值是否分别与位于第一动态图像帧的预设位置的多个第一像素的像素值相同;当第二像素点的像素值分别与位于第一动态图像帧的预设位置的多个第一像素的像素值相同时,将与第二像素值对应的动态图像帧的前一个动态图像帧,作为动态图片的尾帧。
可选地,处理器660还用于:将动态图片的第一预设大小与单个图像帧的第二预设大小的比值作为动态图片能够容纳的图像帧的数量;将播放周期时长与动态图片能够容纳的图像帧的数量的比值作为动态图片的图片帧的时间间隔。
可选地,处理器660还用于:按照多张动态图像帧对应的全屏图像的截取时间的先后顺序,对多张动态图像帧进行排序;以多张动态图像帧中排在第一位的第一动态图像帧为起点、时间间隔为步长,从排序后的多张动态图像帧中抽取动态图像帧;将第一动态图像帧以及抽取出的动态图像帧作为目标动态图像帧。
可选地,处理器660还用于:若目标动态图像帧的大小大于单个图像帧的第二预设大小,则将目标动态图像帧压缩至第二预设大小,得到压缩后的目标动态图像帧;使用压缩后的目标动态图像帧,生成动态图片。
可见,在本发明的具体实施例中,终端通过根据终端的显示内容,截取多张全屏图像,并从全屏图像中识别出动态区域,进而根据动态区域,从多张全屏图像中分离出多张动态图像帧,最终使用多张动态图像帧,生成动态图片,能够快速、便捷的生成动态图片,且不依赖于终端的下载功能,提升用户体验的效果。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。