CN109922291B - Gif生成方法、装置、计算机设备及存储介质 - Google Patents

Gif生成方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN109922291B
CN109922291B CN201910048757.0A CN201910048757A CN109922291B CN 109922291 B CN109922291 B CN 109922291B CN 201910048757 A CN201910048757 A CN 201910048757A CN 109922291 B CN109922291 B CN 109922291B
Authority
CN
China
Prior art keywords
video
array
picture
gif
viewfinder
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
Application number
CN201910048757.0A
Other languages
English (en)
Other versions
CN109922291A (zh
Inventor
镐振鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910048757.0A priority Critical patent/CN109922291B/zh
Publication of CN109922291A publication Critical patent/CN109922291A/zh
Application granted granted Critical
Publication of CN109922291B publication Critical patent/CN109922291B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种GIF生成方法、装置、计算机设备及存储介质,在截取图片时,判断所述取景框中是否包含视频,以依据截屏图片中是否存在视频画面进行区分处理,开启定时器并以预设间隔时间按照用户自定义取景框的位置及大小执行截取屏幕操作并存储至数组中,直至判断取图结束;图片截取完成后根据需要选择添加水印,最后生成GIF,可避免出现截屏图片中视频部分为黑色的现象,从而满足用户根据需要截取相应内容作为GIF图像文件的需求。

Description

GIF生成方法、装置、计算机设备及存储介质
技术领域
本发明涉及数据处理领域,特别涉及一种GIF生成方法、装置、计算机设备及存储介质。
背景技术
图像互换格式(英文:Graphics Interchange Format,简称:GIF)是一种图像文件格式。通常,一个GIF文件可包括文件头(英文:File Header)、GIF数据流(英文:GIF DataStream)和文件终结器(英文:Trailer),其中,文件头可包含GIF文件署名(英文:Signature)和版本号(英文:Version);GIF数据流可包括控制块(英文:Control Block)和数据块(英文:Data Blocks),控制块用于控制数据块的播放行为,数据块可以存储多幅图像文件,若文件终结器用于表示文件结束。
用户在使用APP的过程中,可能会对App界面内某个部分内容很感兴趣,希望分享或保存,或者希望制作成表情包,视频GIF录制可截取当前播放的视频视图,直接将视频视图转换成多幅图像文件,并将所述多幅图像文件逐幅读取并播放,形成动画效果,可一定程度上满足用户的需求,但是进行GIF文件录制时由于手机系统不同,当采用现有的方案进行截屏并生成GIF时,部分手机系统由于权限设置,若截屏图片中包括视频,则截屏图片中视频所在位置为黑色,无法正常显示,更不能根据用户实际应用需求,选择自己想要的图像文件,并进行编辑处理。
发明内容
本发明的目的是提供一种GIF生成方法、装置、计算机设备及存储介质,用于解决现有技术存在的问题。
为实现上述目的,本发明提供一种GIF生成方法,包括以下步骤:
S1:创建并初始化取景器:收到用户创建GIF指令,创建并初始化取景器,所述取景器的取景框支持拖动和缩放;
S2:循环取图:根据用户指令判断是否需要取图,若需要取图,则判断所述取景框中是否包含视频:若取景框中无视频,则执行步骤A,若取景框中为纯视频,则执行步骤B,若取景框中包含部分视频,则执行步骤C,以开启定时器并以预设间隔时间按照步骤S1中用户自定义取景框的位置及大小执行截取屏幕操作并存储至数组中,直至判断取图结束;
所述步骤A包括以下内容:
S211:获取当前应用的window,由window以预设间隔时间获取当前的屏幕的视图,并存入数组A1中;
S212:确定取景框在屏幕中的位置和大小;
S213:根据S212确定的取景框位置和大小,对数组A1中的获取当前的屏幕的视图进行剪切,以获取取景框中的图片并存储至数组A中后,完成取图;
所述步骤B包括以下内容:
S221:获取当前应用的window,由window以预设间隔时间获取当前的屏幕的视图,每次取图时,记录对应的当前时间点Ta,并存储每次取图时对应的当前时间点Ta以形成数组Z1;同时获取视频当前播放时间点T1以及定时器开启总时长T;
S222:根据当前播放时间点T1、定时器开启总时长T从视频链接中下载定时器开启期间播放的视频V;
S223:根据当前播放时间点T1、数组Z1中所存储的取图时对应的当前时间点数据,确定视频V中对应的各取图时间点Tb,并存储形成视频V中对应的取图时间点Tb形成数组Z2;
S224:根据数组Z2中记录的取图时间,截取视频V对应的视频帧存入数组B1中;
S225:确定取景框在屏幕中的位置和大小;
S226:根据S225确定的取景框位置和大小,对所述数组B1中获得的视频帧进行剪切,以获取取景框中的图片并存储至数组B中,完成本次取图;
步骤C包括如下内容:
S231:按照预设时间间隔,同时执行步骤A与步骤B,以分别获取图片数组 A和图片数组B;
S232:确定取景框中的视频部分在取景框中的位置和大小;
S233:根据上述位置和大小将数组B中的图分别添加到数组A中的图片上,将合成后的新图片存入至数组C,完成取图;
S3:添加水印:根据用户指令判断是否需要添加水印,若判断需要添加水印,则对步骤S2所形成数组中的图片,在指定位置处添加指定水印,并将得到的新的图片存储至新数组中,且图片存储顺序与步骤S2中相同;若判断不需要添加水印,则转入S4;
S4:生成GIF,将步骤S2所形成数组或步骤S3所形成新数组中的图片取出并生成GIF。
作为一优选方案,所述取景器设置开始键及结束键,则所述步骤S2中,若开始键被触发则判断需要取图,直到开始键被释放或到定时器计时到达预设最长取图时间,则判断取图结束;若判决结束键被触发,则直接结束;
或,长按取景框时判断需要取图,松开取景框时判断取图结束。
作为一优选方案,所述步骤2中,依据视频播放器与取景框的在应用中的相对位置,判断所述取景框中是否包括视频,若视频播放器坐标与取景框坐标与完全不重合,判断所述取景框中无
视频;若所述视频播放器坐标涵盖所述取景框坐标或与所述取景框坐标重合,则判断为纯视频;若部分重合或所述取景框坐标涵盖所述视频播放器坐标,则判断所述取景框中包含部分视频。
作为一优选方案,所述步骤S3中,所述水印添加包括以下步骤:
S31:读取用户指令,判断指定添加的水印内容;
S32:读取用户指令,判断指定添加水印的位置;
S33:将选定的水印内容绘制到S2所形成数组中各图片的指定位置上,以得到新的图片;
S34:将步骤S33中所得到的新图片存入至新数组中,且图片顺序与S2中相一致。
作为一优选方案,所述步骤S4中,所述GIF生成包括以下步骤:
S41:取出步骤S2所形成的数组或步骤S3所形成的新数组中的图片;
S42:创建本地存储,本地存储路径映射为URL;
S43:初始化GIF生成器;
S44:从URL中上传图片并导入到GIF生成器中;
S45:添加完后生成GIF。
作为一优选方案,所述步骤S4中,所述S43与所述S44之间还包括GIF属性配置的步骤。
进一步的,所述GIF属性为GIF背景色、是否重复播放中的一种或多种组合。
为实现上述目的,本发明还提供一种GIF生成装置,其包括:
取景器创建模块,适于根据用户指令创建并初始化取景器;
循环取图模块:适于根据用户指令判断是否需要取图,包括视频判断子模块、纯视频截图子模块、无视频截图子模块以及部分视频截图子模块,若需要取图,则所述视频判断子模块判断所述取景框中是否包含视频:若取景框中无视频,则驱动无视频截图子模块工作,若取景框中为纯视频,则驱动纯视频截图子模块工作,若取景框中包含部分视频,则驱动所述部分视频截图子模块,以开启定时器并以预设间隔时间按照所述取景器创建模块中用户自定义取景框的位置及大小执行截取屏幕操作并存储至数组中,直至判断取图结束;
水印添加模块,适于根据用户指令判断是否需要添加水印,若判断需要添加水印,则对循环取图模块中所形成数组中的图片,在指定位置处添加指定水印,并将得到的新的图片存储至数组中,且图片存储顺序与循环取图模块中相同;若判断不需要添加水印,则转入GIF生成模块;
GIF生成模块:适于将循环取图模块中所形成数组或水印添加模块中所形成新数组中的图片取出并生成GIF。
其中,循环取图模块包括视频判断子模块、纯视频截图子模块、无视频截图子模块以及部分视频截图子模块,其中,无视频截图子模块用于取景框中不含视频时的定时器循环取图;纯视频截图子模块用于取景框中为纯视频时的定时器循环取图;部分视频截图子模块用于取景框中包含视频时的定时器循环取图;视频判断子模块与所述纯视频截图子模块、无视频截图子模块以及部分视频截图子模块与所述视频判断子模块通信连接,用于判断取景框中是否包含视频,若判断取景框中无视频,则驱动无视频截图子模块运作;若判断取景框中为纯视频,则驱动纯视频截图子模块运作:若判断取景框中包含部分视频,则驱动无视频截图子模块、纯视频截图子模块以及部分视频截图子模块共同运作。
进一步的,所述无视频截图子模块包括第一截图单元、第一取景框位置确定单元以及第一图片剪切及存储单元;所述第一截图单元用于获取当前应用的 window,由window以预设间隔时间获取当前的屏幕的视图,并存入数组A1 中;所述第一取景框位置确定单元用于确定取景框在屏幕中的位置和大小;所述第一图片剪切及存储单元用于根据第一取景框位置确定单元确定的取景框位置和大小,对数组A1中的获取当前的屏幕的视图进行剪切,以获取取景框中的图片并存储至数组A中后,完成取图;
进一步的,纯视频截图子模块进一步包括第二截图单元、视频下载单元、时间点转换单元、图片转换单元、第二取景框位置确定单元以及第二图片剪切及存储单元。第二截图单元用于获取当前应用的window,由window获取当前的屏幕的视图,截取视图、记录每次取图时对应的当前时间点Ta,并存储每次取图时对应的当前时间点Ta形成数组Z1;同时获取视频当前播放时间点T1 以及定时器开启总时长T;视频下载单元用于根据当前播放时间点T1、定时器开启总时长T从视频链接中下载定时器开启期间播放的视频V;时间点转换单元用于根据当前播放时间点T1、数组Z1中所存储的取图时对应的当前时间点数据,确定视频V中对应的各取图时间点Tb,并存储形成视频V中对应的取图时间点Tb形成数组Z2;图片转换单元用于根据数组Z2中记录的取图时间,截取视频V对应的视频帧存入数组B1中;第二取景框位置确定单元用于计算取景框在屏幕中的位置和大小;第二图片剪切及存储单元用于根据S225确定的取景框位置和大小,剪切S224中的视频帧得到取景框中的图片并存储至数组B 中。
进一步的,部分视频截图子模块包括驱动单元、第三取景框位置确定单元以及第三图片剪切及存储单元:驱动单元用于按照预设时间间隔,驱动无视频截图子模块以及纯视频截图子模块同时工作,以分别得到图片数组A和图片数组B;第三取景框位置确定单元用于计算取景框中的视频部分在取景框中的位置和大小;第三图片剪切及存储单元用于根据第三取景框位置确定单元确定位置和大小将数组B中的图分别添加到数组A中的图片上合成新的图片存入数组形成数组C。
优选的,水印添加模块包括水印确定子模块,水印位置确定子模块、水印绘制子模块以及图片存储子模块;上述水印确定子模块用于确定待添加水印内容,水印位置用于确定待添加水印内容在图片中的具体位置;水印绘制子模块确定子模块用于将水印内容绘制水印位置确定子模块确定的各图片的指定位置上;图片存储子模块用于所得到的新图片存入至新数组中。
优选的,GIF生成模块包括:图片取出及存储子模块、GIF属性配置子模块以及GIF生成子模块:
图片取出及存储子模块,用于取出循环取图模块所形成的数组或水印添加模块所形成新数组中的图片,并创建本地存储,本地存储路径映射为URL;
初始化子模块,用于GIF生成器的初始化;
GIF属性配置子模块用于配置GIF属性;
GIF生成子模块,用于从URL中上传图片并导入到GIF生成器中,并在添加完后生成GIF。
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的GIF生成方法、装置、计算机设备及存储介质,根据用户指令,通过取景框,定时循环截取屏幕中用户所需要的图像,形成待处理GIF图像文件,其中,在进行屏幕截取时,对截屏图片中是否存在视频画面,区分处理,以避免出现截屏图片中视频部分为黑色的现象,从而满足用户根据需要截取相应内容作为GIF图像文件的需求。具体而言,当判断取景框中不包含视频时,直接由当前应用的window以预设间隔时间获取当前的屏幕的视图,并存入数组A1,然后依据取景框在屏幕中的位置和大小对数组A1中获得的视频帧进行剪切,以获取取景框中的图片并存储至数组A中,完成本次取图并生成gif文件;当判断取景框中为纯视频,记录每次取图时对应的当前时间点Ta,将当前时间点Ta转换为视频V中对应的取图时间点Tb,其中视频V为从视频链接中下载定时器开启期间播放的视频,然后根据各取图时间点Tb,截取视频V对应的视频帧存入数组B1中,最后依据取景框在屏幕中的位置和大小对数组B1中获得的视频帧进行剪切,以获取取景框中的图片并存储至数组B中,完成本次取图并生成gif文件;S212:确定取景框在屏幕中的位置和大小;当判断取景框中包含部分视频时,同时执行上述步骤,获得数组A与数组B后,根据取景框位置和大小将数组B中的图分别添加到数组A中的图片上合成新的图片存入数组形成数组C,完成取图并根据需要生成GIF文件。
同时其对待处理GIF图像文件、待添加水印(如字幕、图片等)的组合处理,获得既携带待处理GIF图像文件内容、又携带添加水印(如字幕、图片等) 处理后的GIF图像文件,此外,在生成GIF的过程中,还可根据用户需要,对 GIF属性进行配置(如GIF背景色、是否重复播放),以形成GIF文件,如此设置,可根据用户实际应用需求,方便快捷的实现对图像文件进行编辑处理。
附图说明
图1为本发明GIF生成方法实施例一的流程图;
图2为图1所示实施例中,步骤A的工作流程示意图;
图3为图1所示实施例中,步骤B的工作流程示意图;
图4为图1所示实施例中,步骤C的工作流程示意图;
图5为本发明GIF生成装置实施例一的程序模块示意图;
图6为本发明GIF生成装置实施例一的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的GIF生成方法、装置、计算机设备及存储介质,适用于图像处理领域,根据用户指令,通过取景框,定时循环截取屏幕中用户所需要的图像,形成待处理GIF图像文件,其中,在进行屏幕截取时,对截屏图片中是否存在视频画面,区分处理,以避免出现截屏图片中视频部分为黑色的现象,从而满足用户根据需要截取相应内容作为GIF图像文件的需求。此外,截取屏幕中指定位置与指定大小的图片生成GIF,而非对整个屏幕进行录制,且在生成 GIF的过程中,还可对选定的图片进行编辑操作,增强了用户操作的自由性与方便度。
实施例一
请参阅图1,本实施例的一种GIF生成方法中,包括以下步骤:
S1:创建并初始化取景器:收到用户创建GIF指令,创建并初始化取景器,所述取景器的取景框支持拖动和缩放;
本步骤中,当收到用户创建GIF指令,取景器视图在屏幕上透明或半透明显示(方便用户可以看到取景框下面的应用视图),取景器的取景框边缘有颜色以提示取景框位置和大小(取景框外观可自定义如颜色),取景框上添加手势,可以拖动和改变大小,取景器出现后,用户根据需要,通过及改变取景框的大小,以将自己需要的画面放在取景框中;
此外,为方便用户发送取图指令,步骤S1中,取景器还设置开始键及结束键,则步骤S2中,若开始键被触发则判断需要取图,直到开始键被释放或到定时器计时到达预设最长取图时间,则判断取图结束;若判决结束键被触发,则直接结束;或长按取景框时判断需要取图,松开取景框则判断取图结束,当然,取图指令的发出可以通过但不限于上述方式产生。
S2:循环取图:根据用户指令判断是否需要取图,若需要取图,则判断所述取景框中是否包含视频:若取景框中无视频,则执行步骤A,若取景框中为纯视频,则执行步骤B,若取景框中包含部分视频,则执行步骤C,以开启定时器并以预设间隔时间按照步骤S1中用户自定义取景框的位置及大小执行截取屏幕操作并存储至数组中,直至判断取图结束;
取景框位置设置后,用户可以点击开始键或长按取景框开始取图,本步骤中,当判断用户需要取图时,以预设间隔时间(如默认0.1秒)开始取图,当用户松开开始键或者取景框时,判断取图结束,在此过程中,为防止应用占用内存过大,导致应用无法正常使用的发生,定时器开启最大时长设置(如:10s),如果用户取图时间超过这个默认值,则自动结束取图。
现有的部分手机系统,如ios手机系统,直接截取带有视频的屏幕并生成GIF 时,由于系统权限原因,则该视频在截图图片中直接为黑色,无法显示,为解决上述问题,故步骤S2中,当确需要进行取图时,在进行截取屏幕操作前,首先判断取景框中是否包含视频的步骤,并根据当前取景框中是否包括视频执行不同的取图操作。
作为一优选方案,可依据视频播放器与取景框的在应用中的相对位置,判断所述取景框中是否包括视频,若视频播放器坐标与取景框坐标与完全不重合,判断所述取景框中无视频;若所述视频播放器坐标涵盖所述取景框坐标或与所述取景框坐标重合,则判断为纯视频;若部分重合或所述取景框坐标涵盖所述视频播放器坐标,则判断所述取景框中包含部分视频。
具体而言,若取景框中无视频,则执行步骤A,开启定时器循环取图,以预设间隔时间按照步骤S1中用户自定义取景框的位置及大小执行截取屏幕操作并存储至数组A中,直至判断取图结束。
如图2所示,步骤A包括以下内容,
S211:获取当前应用的window,由window以预设间隔时间获取当前的屏幕的视图,并存入数组A1中;
S212:确定取景框在屏幕中的位置和大小;
S213:根据S212确定的取景框位置和大小,对数组A1中的获取当前的屏幕的视图进行剪切,以获取取景框中的图片并存储至数组A中后,完成取图;
如图3所示,若取景框中为纯视频,则执行步骤B,开启定时器循环取图,以预设间隔时间按照步骤S1中用户自定义取景框的位置及大小执行截取屏幕操作并存储至数组B中,直至判断取图结束,所述步骤B包括以下内容:
S221:获取当前应用的window,由window以预设间隔时间获取当前的屏幕的视图,每次取图时,记录对应的当前时间点Ta,并存储每次取图时对应的当前时间点Ta以形成数组Z1;同时获取视频当前播放时间点T1以及定时器开启总时长T;
S222:根据当前播放时间点T1、定时器开启总时长T从视频链接中下载定时器开启期间播放的视频V;
S223:根据当前播放时间点T1、数组Z1中所存储的取图时对应的当前时间点数据,确定视频V中对应的各取图时间点Tb,并存储形成视频V中对应的取图时间点Tb形成数组Z2;
S224:根据数组Z2中记录的取图时间,截取视频V对应的视频帧存入数组B1中;
S225:确定取景框在屏幕中的位置和大小;
S226:根据S225确定的取景框位置和大小,对所述数组B1中获得的视频帧进行剪切,以获取取景框中的图片并存储至数组B中,完成本次取图;
步骤B中,通过对合法获取的视频V按照转换后的取图时间点,截取相应视频帧,然后在进行剪切处理,即可获得所需的图片,然后根据需要生成GIF文件,可有效解决视频文件无法显示的问题,且不会侵犯视频版权。
如图4所示,若取景框中包含部分视频,则执行步骤C,开启定时器循环取图,以预设间隔时间按照步骤S1中用户自定义取景框的位置及大小执行截取屏幕操作并存储至数组C中,直至判断取图结束,步骤C包括如下内容:
S231:按照预设时间间隔,同时执行步骤A与步骤B,以分别获取图片数组 A和图片数组B;
S232:确定取景框中的视频部分在取景框中的位置和大小;
S233:根据上述位置和大小将数组B中的图分别添加到数组A中的图片上合成新的图片存入数组形成数组C,完成取图;
上述步骤S212、S213、S225、S226、S232以及S233中,通过计算取景框在应用的位置,获取取景框的坐标,从而获取到取景框汇总的图片在应用图片中的所在位置,然后通过调用系统自带API进行剪切应用图片即可。
S3:添加水印:根据用户指令判断是否需要添加水印,若判断需要添加水印,则对步骤S2所形成数组中的图片,在指定位置处添加指定水印,并将得到的新的图片存储至数组中,且图片存储顺序与S2中相同;若判断不需要添加水印,则转入S4;
本步骤中,可根据用户需要对S2数组里的每个图进行编辑,每张图都在同样的位置添加同样的水印,水印可以是自定义的任何形状,任何内容的图片,或用户手动输入的文字,将这些处理过的图存储到新的数组里。
水印添加具体包括以下步骤:
S31:读取用户指令,判断指定添加的水印内容;
S32:读取用户指令,判断指定添加水印的位置;
S33:将选定的水印内容绘制到S2所形成数组中各图片的指定位置上,以得到新的图片;
S34:将步骤S33中所得到的新图片存入至新数组中,且图片顺序与S2中相一致。
S4:生成GIF,将S3所形成数组中的图片取出并生成GIF。
所述GIF生成包括以下步骤:
S41:取出S3中最终形成的数组中的图片;
S42:创建本地存储,本地存储路径映射为URL;
S43:在URL上初始化GIF生成器;
S44:配置GIF属性;
S45:循环将数组里的图片添加到GIF生成器里;
S46:添加完后生成GIF。
本步骤中,S44为可选步骤,在生成gif过程中可以对该gif图的属性进行设置,如颜色,是否可以重复播放等。
本发明所示的一种GIF生成方法,其设置取景器,用户可根据个人需要,选择当前屏幕(不局限于视频)生成GIF文件,且根据需要通过设置取景器的位置及大小,选定当前屏幕中的任意部分的内容(而非整个屏幕)生成GIF文件,满足用户的定制化需求,此外,在生成GIF过程中,用户还可对自己所选择的内容进行编辑,如添加水印、设置GIF属性,进一步满足用户的使用需求。
实施例二
请继续参阅图5,本发明示出了一种GIF生成装置,以实施例一为基础,用以实现实施例一的GIF生成方法,其包括的各程序模块的功能:在本实施例中,GIF生成装置10可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述GIF生成方法。本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述GIF生成装置在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
取景器创建模块11,适于根据用户指令创建并初始化取景器;
循环取图模块12:适于根据用户指令判断是否需要取图,包括视频判断子模块、纯视频截图子模块、无视频截图子模块以及部分视频截图子模块,若需要取图,则所述视频判断子模块判断所述取景框中是否包含视频:若取景框中无视频,则驱动无视频截图子模块工作,若取景框中为纯视频,则驱动纯视频截图子模块工作,若取景框中包含部分视频,则驱动所述部分视频截图子模块,以开启定时器并以预设间隔时间按照所述取景器创建模块中用户自定义取景框的位置及大小执行截取屏幕操作并存储至数组中,直至判断取图结束;
水印添加模块13,适于根据用户指令判断是否需要添加水印,若判断需要添加水印,则对循环取图模块中所形成数组中的图片,在指定位置处添加指定水印,并将得到的新的图片存储至数组中,且图片存储顺序与循环取图模块中相同;若判断不需要添加水印,则转入GIF生成模块;
GIF生成模块14:适于将水印添加模块中所形成数组中的图片取出并生成 GIF。
其中,循环取图模块12包括视频判断子模块、纯视频截图子模块、无视频截图子模块以及部分视频截图子模块,所述纯视频截图子模块、无视频截图子模块以及部分视频截图子模块与所述视频判断子模块通信连接,以根据所述视频判断子模块判断配合工作。
无视频截图子模块用于取景框中不含视频时的定时器循环取图;纯视频截图子模块用于取景框中为纯视频时的定时器循环取图;部分视频截图子模块用于取景框中包含视频时的定时器循环取图;视频判断子模块用于判断取景框中是否包含视频,若判断取景框中无视频,则驱动无视频截图子模块运作;若判断取景框中为纯视频,则驱动纯视频截图子模块运作:若判断取景框中包含部分视频,则驱动无视频截图子模块、纯视频截图子模块以及部分视频截图子模块共同运作。
无视频截图子模块包括第一截图单元、第一取景框位置确定单元以及第一图片剪切及存储单元;第一截图单元用于获取当前应用的window,由window 以预设间隔时间获取当前的屏幕的视图,并存入数组A1中;第一取景框位置确定单元用于确定取景框在屏幕中的位置和大小;第一图片剪切及存储单元用于根据第一取景框位置确定单元确定的取景框位置和大小,对数组A1中的获取当前的屏幕的视图进行剪切,以获取取景框中的图片并存储至数组A中后,完成取图。
纯视频截图子模块进一步包括第二截图单元、视频下载单元、时间点转换单元、图片转换单元、第二取景框位置确定单元以及第二图片剪切及存储单元。
第二截图单元用于获取当前应用的window,由window获取当前的屏幕的视图,截取视图;记录每次取图时对应的当前时间点Ta,并存储每次取图时对应的当前时间点Ta形成数组Z1;同时获取视频当前播放时间点T1以及定时器开启总时长T;
视频下载单元用于根据当前播放时间点T1、定时器开启总时长T从视频链接中下载定时器开启期间播放的视频V;
时间点转换单元用于根据当前播放时间点T1、数组Z1中所存储的取图时对应的当前时间点数据,确定视频V中对应的各取图时间点Tb,并存储形成视频V中对应的取图时间点Tb形成数组Z2;
图片转换单元用于根据数组Z2中记录的取图时间,截取视频V对应的视频帧存入数组B1中;
第二取景框位置确定单元用于计算取景框在屏幕中的位置和大小;
第二图片剪切及存储单元用于根据S225确定的取景框位置和大小,剪切 S224中的视频帧得到取景框中的图片并存储至数组B中。
部分视频截图子模块包括驱动单元、第三取景框位置确定单元以及第三图片剪切及存储单元:
驱动单元用于按照预设时间间隔,驱动无视频截图子模块以及纯视频截图子模块同时工作,以分别得到图片数组A和图片数组B;
第三取景框位置确定单元用于计算取景框中的视频部分在取景框中的位置和大小;
第三图片剪切及存储单元用于根据第三取景框位置确定单元确定位置和大小将数组B中的图分别添加到数组A中的图片上合成新的图片存入数组形成数组C。
水印添加模块13包括水印确定子模块,水印位置确定子模块、水印绘制子模块以及图片存储子模块;上述水印确定子模块用于确定待添加水印内容,水印位置用于确定待添加水印内容在图片中的具体位置;水印绘制子模块确定子模块用于将水印内容绘制水印位置确定子模块确定的各图片的指定位置上;图片存储子模块用于所得到的新图片存入至新数组中。
GIF生成模块14包括:图片取出及存储子模块、GIF属性配置子模块以及 GIF生成子模块:
图片取出及存储子模块取出水印添加模块中最终形成的数组中的图片,并创建本地存储,本地存储路径映射为URL,以及GIF生成器的初始化;
GIF属性配置子模块用于配置GIF属性;
GIF生成子模块用于循环将数组里的图片添加到GIF生成器里,并在添加完后生成GIF。
实施例三
本发明还提供一种计算机设备(即终端设备20),如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图6所示。需要指出的是,图6仅示出了具有组件21-22的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器 (EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是终端设备20的内部存储单元,例如该计算机设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备20 的外部存储设备,例如该终端设备20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card) 等。当然,存储器21还可以既包括终端设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于终端设备20的操作系统和各类应用软件,例如实施例一的GIF生成装置10的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit, CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制终端设备20的总体操作。本实施例中,处理器22用于运行存储器 21中存储的程序代码或者处理数据,例如运行GIF生成装置10,以实现实施例一的GIF生成方法。
实施例四
本发明还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储GIF生成装置10,被处理器执行时实现实施例一的GIF生成方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种GIF生成方法,其特征在于,包括以下步骤:
S1:创建并初始化取景器:收到用户创建GIF指令,创建并初始化取景器,所述取景器的取景框支持拖动和缩放;
S2:循环取图:根据用户指令判断是否需要取图,若需要取图,则判断所述取景框中是否包含视频:若取景框中无视频,则执行步骤A,若取景框中为纯视频,则执行步骤B,若取景框中包含部分视频,则执行步骤C,以开启定时器并以预设间隔时间按照步骤S1中用户自定义取景框的位置及大小执行截取屏幕操作并存储至数组中,直至判断取图结束;
所述步骤A包括以下内容:
S211:获取当前应用的window,由window以预设间隔时间获取当前的屏幕的视图,并存入数组A1中;
S212:确定取景框在屏幕中的位置和大小;
S213:根据S212确定的取景框位置和大小,对数组A1中获取的当前屏幕的视图进行剪切,以获取取景框中的图片并存储至数组A中后,完成取图;
所述步骤B包括以下内容:
S221:获取当前应用的window,由window以预设间隔时间获取当前的屏幕的视图,每次取图时,记录对应的当前时间点Ta,并存储每次取图时对应的当前时间点Ta以形成数组Z1,同时获取视频当前播放时间点T1以及定时器开启总时长T;
S222:根据当前播放时间点T1、定时器开启总时长T从视频链接中下载定时器开启期间播放的视频V;
S223:根据当前播放时间点T1、数组Z1中所存储的取图时对应的当前时间点数据,确定视频V中对应的各取图时间点Tb,并存储形成视频V中对应的取图时间点Tb形成数组Z2;
S224:根据数组Z2中记录的取图时间,截取视频V对应的视频帧存入数组B1中;
S225:确定取景框在屏幕中的位置和大小;
S226:根据步骤S225确定的取景框位置和大小,对所述数组B1中获得的视频帧进行剪切,以获取取景框中的图片并存储至数组B中,完成本次取图;
步骤C包括如下内容:
S231:按照预设时间间隔,同时执行步骤A与步骤B,以分别获取数组A和数组B;
S232:确定取景框中的视频部分在取景框中的位置和大小;
S233:根据上述位置和大小将数组B中的图分别添加到数组A中的图片上,将合成后的新图片存入至数组C,完成取图;
S3:添加水印:根据用户指令判断是否需要添加水印,若判断需要添加水印,则对步骤S2所形成数组中的图片,在指定位置处添加指定水印,并将得到的新的图片存储至新数组中,且图片存储顺序与S2中相同;若判断不需要添加水印,则转入S4;
S4:生成GIF,将步骤S2所形成数组或步骤S3所形成新数组中的图片取出并生成GIF;
所述步骤S4中,所述生成GIF包括以下步骤:
S41:取出步骤S2所形成的数组或步骤S3所形成的新数组中的图片;
S42:创建本地存储,本地存储路径映射为URL;
S43:初始化GIF生成器;
S44:从URL中上传图片并导入到GIF生成器中;
S45:添加完后生成GIF。
2.根据权利要求1所述的GIF生成方法,其特征在于,所述取景器设置开始键及结束键,则所述步骤S2中,若开始键被触发则判断需要取图,直到开始键被释放或到定时器计时到达预设最长取图时间,则判断取图结束;若判决结束键被触发,则直接结束;
或,长按取景框时判断需要取图,松开取景框时判断取图结束。
3.根据权利要求1所述的GIF生成方法,其特征在于,所述步骤 S2 中,依据视频播放器与取景框在应用中的相对位置,判断所述取景框中是否包括视频,若视频播放器坐标与取景框坐标完全不重合,判断所述取景框中无视频;若所述视频播放器坐标涵盖所述取景框坐标或与所述取景框坐标重合,则判断为纯视频;若部分重合或所述取景框坐标涵盖所述视频播放器坐标,则判断所述取景框中包含部分视频。
4.根据权利要求1所述的GIF生成方法,其特征在于,所述步骤S3中,所述水印添加包括以下步骤:
S31:读取用户指令,判断指定添加的水印内容;
S32:读取用户指令,判断指定添加水印的位置;
S33:将选定的水印内容绘制到步骤S2所形成数组中各图片的指定位置上,以得到新的图片;
S34:将步骤S33中所得到的新图片存入至新数组中,且图片顺序与步骤S2中相一致。
5.根据权利要求1所述的GIF生成方法,其特征在于,所述步骤S4中,所述步骤S43与所述步骤S44之间还包括GIF属性配置的步骤。
6.根据权利要求5所述的GIF生成方法,其特征在于,所述GIF属性为GIF背景色、是否重复播放中的一种或多种组合。
7.一种GIF生成装置,其特征在于,其包括:
取景器创建模块,适于根据用户指令创建并初始化取景器,所述取景器的取景框支持拖动和缩放;
循环取图模块:适于根据用户指令判断是否需要取图,包括视频判断子模块、纯视频截图子模块、无视频截图子模块以及部分视频截图子模块,若需要取图,则所述视频判断子模块判断所述取景框中是否包含视频:若取景框中无视频,则驱动无视频截图子模块工作,若取景框中为纯视频,则驱动纯视频截图子模块工作,若取景框中包含部分视频,则驱动所述部分视频截图子模块,以开启定时器并以预设间隔时间按照所述取景器创建模块中用户自定义取景框的位置及大小执行截取屏幕操作并存储至数组中,直至判断取图结束;
所述无视频截图子模块包括第一截图单元、第一取景框位置确定单元以及第一图片剪切及存储单元;
所述第一截图单元用于获取当前应用的window,由window以预设间隔时间获取当前的屏幕的视图,并存入数组A1中;
所述第一取景框位置确定单元用于确定取景框在屏幕中的位置和大小;
所述第一图片剪切及存储单元用于根据第一取景框位置确定单元确定的取景框位置和大小,对数组A1中的获取当前的屏幕的视图进行剪切,以获取取景框中的图片并存储至数组A中后,完成取图;
所述纯视频截图子模块包括第二截图单元、视频下载单元、时间点转换单元、图片转换单元、第二取景框位置确定单元以及第二图片剪切及存储单元;
所述第二截图单元用于获取当前应用的window,由window获取当前的屏幕的视图,截取视图,记录每次取图时对应的当前时间点Ta,并存储每次取图时对应的当前时间点Ta形成数组Z1;同时获取视频当前播放时间点T1以及定时器开启总时长T;
所述视频下载单元用于根据当前播放时间点T1、定时器开启总时长T从视频链接中下载定时器开启期间播放的视频V;
所述时间点转换单元用于根据当前播放时间点T1、数组Z1中所存储的取图时对应的当前时间点数据,确定视频V中对应的各取图时间点Tb,并存储形成视频V中对应的取图时间点Tb形成数组Z2;
所述图片转换单元用于根据数组Z2中记录的取图时间,截取视频V对应的视频帧存入数组B1中;
所述第二取景框位置确定单元用于确定取景框在屏幕中的位置和大小;
所述第二图片剪切及存储单元用于根据所述第二取景框位置确定单元确定的取景框位置和大小,对所述数组B1中获得的视频帧进行剪切,以获取取景框中的图片并存储至数组B中,完成本次取图;
所述部分视频截图子模块包括驱动单元、第三取景框位置确定单元以及第三图片剪切及存储单元:
所述驱动单元用于按照预设时间间隔,驱动无视频截图子模块以及纯视频截图子模块同时工作,以分别得到数组A和数组B;
所述第三取景框位置确定单元用于确定取景框中的视频部分在取景框中的位置和大小;
所述第三图片剪切及存储单元用于根据第三取景框位置确定单元确定位置和大小将数组B中的图分别添加到数组A中的图片上,将合成后的新图片存入至数组C中,完成取图;
水印添加模块,适于根据用户指令判断是否需要添加水印,若判断需要添加水印,则对循环取图模块中所形成数组中的图片,在指定位置处添加指定水印,并将得到的新的图片存储至新数组中,且图片存储顺序与循环取图模块所形成数组相同;若判断不需要添加水印,则转入GIF生成模块;
GIF生成模块:适于将循环取图模块中所形成的数组或水印添加模块中所形成新数组中的图片取出并生成GIF,所述GIF生成模块包括:
图片取出及存储子模块,用于取出循环取图模块所形成的数组或水印添加模块所形成新数组中的图片,并创建本地存储,本地存储路径映射为URL;
初始化子模块,用于GIF生成器的初始化;
GIF生成子模块,用于从URL中上传图片并导入到GIF生成器中,并在添加完后生成GIF。
8.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至6任一项所述方法的步骤。
CN201910048757.0A 2019-01-18 2019-01-18 Gif生成方法、装置、计算机设备及存储介质 Active CN109922291B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910048757.0A CN109922291B (zh) 2019-01-18 2019-01-18 Gif生成方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910048757.0A CN109922291B (zh) 2019-01-18 2019-01-18 Gif生成方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN109922291A CN109922291A (zh) 2019-06-21
CN109922291B true CN109922291B (zh) 2022-10-21

Family

ID=66960533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910048757.0A Active CN109922291B (zh) 2019-01-18 2019-01-18 Gif生成方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN109922291B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017107426A1 (zh) * 2015-12-25 2017-06-29 百度在线网络技术(北京)有限公司 图像处理方法、装置、设备及非易失性计算机存储介质
CN107229401A (zh) * 2017-04-18 2017-10-03 硕诺科技(深圳)有限公司 一种移动终端长截屏方法
CN108416825A (zh) * 2017-07-25 2018-08-17 平安科技(深圳)有限公司 动态图的生成装置、方法及计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017107426A1 (zh) * 2015-12-25 2017-06-29 百度在线网络技术(北京)有限公司 图像处理方法、装置、设备及非易失性计算机存储介质
CN107229401A (zh) * 2017-04-18 2017-10-03 硕诺科技(深圳)有限公司 一种移动终端长截屏方法
CN108416825A (zh) * 2017-07-25 2018-08-17 平安科技(深圳)有限公司 动态图的生成装置、方法及计算机可读存储介质

Also Published As

Publication number Publication date
CN109922291A (zh) 2019-06-21

Similar Documents

Publication Publication Date Title
CN108377334B (zh) 短视频拍摄方法、装置及电子终端
US11218739B2 (en) Live video broadcast method, live broadcast device and storage medium
US10425679B2 (en) Method and device for displaying information on video image
US10832086B2 (en) Target object presentation method and apparatus
CN108024079B (zh) 录屏方法、装置、终端及存储介质
CN111612873B (zh) Gif图片生成方法、装置及电子设备
EP3883256A1 (en) Live stream processing method in webrtc and stream pushing client
CN108989830A (zh) 一种直播方法、装置、电子设备及存储介质
CN111491174A (zh) 虚拟礼物获取及展示方法、装置、设备及存储介质
US10929460B2 (en) Method and apparatus for storing resource and electronic device
CN111970532A (zh) 视频播放方法、装置及设备
CN110968391A (zh) 一种截图方法、装置、终端设备及存储介质
CN111163358A (zh) Gif图像生成方法、装置、服务器及存储介质
US8244005B2 (en) Electronic apparatus and image display method
CN111565337A (zh) 图像处理方法、装置和电子设备
CN109862295B (zh) Gif生成方法、装置、计算机设备及存储介质
US10460490B2 (en) Method, terminal, and computer storage medium for processing pictures in batches according to preset rules
CN107564084B (zh) 一种动图合成方法、装置及存储设备
WO2019015411A1 (zh) 录屏方法、装置及电子设备
CN109922291B (zh) Gif生成方法、装置、计算机设备及存储介质
US20140111678A1 (en) Method and system for capturing, storing and displaying animated photographs
CN107995538B (zh) 视频批注方法及系统
CN113794831B (zh) 视频拍摄方法、装置、电子设备及介质
CN109089150B (zh) 图像处理方法及电子设备
CN114449334A (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