CN109285197B - 一种gif图像处理方法和移动终端 - Google Patents
一种gif图像处理方法和移动终端 Download PDFInfo
- Publication number
- CN109285197B CN109285197B CN201810924404.8A CN201810924404A CN109285197B CN 109285197 B CN109285197 B CN 109285197B CN 201810924404 A CN201810924404 A CN 201810924404A CN 109285197 B CN109285197 B CN 109285197B
- Authority
- CN
- China
- Prior art keywords
- picture
- gif
- frame
- edited
- editing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Television Signal Processing For Recording (AREA)
- Editing Of Facsimile Originals (AREA)
- Processing Or Creating Images (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供了一种GIF图像处理方法和移动终端,应用于移动终端的方法,包括:获取待编辑GIF图像;将所述待编辑GIF图像转码为Byte数组;根据所述Byte数组,获取所述待编辑GIF图像的配置信息和对应的每帧GIF静态图片;记录用户对每帧所述GIF静态图片编辑生成的对应的编辑图片;根据所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像。本方案能够用户编辑GIF图像的灵活性。
Description
技术领域
本发明涉及图像处理技术领域,特别涉及一种GIF图像处理方法和移动终端。
背景技术
图像互换格式(Graphics Interchange Format,GIF)是一种可以存储多幅图片的文件格式。通过从GIF图像存储的多幅图像中循环逐幅读出图片并显示到屏幕上,可以构成一种简单循环播放的动画。
目前,随着移动互联网的发展和社交软件的广泛应用,人们对GIF图像的要求越来越高,越来越个性化。当用户想对现有GIF图像中的图片进行调整时,则需要用户利用PC端才能对其编辑。
通过上述描述可见,用户每次编辑GIF图像都需要利用PC端才能实现,导致编辑GIF图像的灵活性差。
发明内容
本发明实施例提供了一种GIF图像处理方法和移动终端,能够提高编辑GIF图像的灵活性。
第一方面,本发明实施例提供了一种GIF图像处理方法,应用于移动终端,包括:
获取待编辑GIF图像;
将所述待编辑GIF图像转码为Byte数组;
根据所述Byte数组,获取所述待编辑GIF图像的配置信息和对应的每帧GIF静态图片;
记录用户对每帧所述GIF静态图片编辑生成的对应的编辑图片;
根据所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像。
优选地,所述Byte数组,包括:至少两个解码Byte数组块;
则,
所述将所述待编辑GIF图像转码为Byte数组,包括:
将所述待编辑GIF图像转码为输入流;
将所述输入流转码为至少两个所述解码Byte数组块,其中,每个所述Byte数组块对应所述待编辑GIF图像的一帧GIF静态图片;
所述根据所述Byte数组,获取所述待编辑GIF图像的配置信息和对应的每帧GIF静态图片,包括:
从所述解码Byte数组块的GifHeader中获取所述待编辑GIF图像的配置信息;
依次将每个所述解码Byte数组块转码为对应的解码Bitmap对象形成所述GIF静态图片。
优选地,在所述将所述输入流转码为至少两个所述解码Byte数组块之后,在所述依次将每个所述解码Byte数组块转码为对应的解码Bitmap对象形成所述GIF静态图片之前,进一步包括:
记录每个所述解码Byte数组块对应的标识位置;
所述依次将每个所述Byte数组块转码为对应的解码Bitmap对象形成所述GIF静态图片,包括:
依次从每个所述标识位置对应的所述解码Byte数组块中读取出一帧所述GIF静态图片的数据;
将读取到的所述数据转码为对应的解码Bitmap对象形成所述GIF静态图片。
优选地,在所述记录用户对每帧所述GIF静态图片编辑生成的对应的编辑图片之前,进一步包括:
确定未处理集合,从所述未处理结合中确定目标图片,其中,所述未处理集合中包括每帧GIF静态图片;
接收用户输入的调整请求;
根据所述调整请求,将所述目标图片通过view控件展示给所述用户;
所述记录用户对每帧所述GIF静态图片编辑生成的对应的编辑图片,包括:
记录所述用户通过触控所述目标图片产生的编辑信息,其中,所述编辑信息,包括:缩放数据和位移数据;
裁剪被触控后的所述目标图片在所述view控件的覆盖件内的图形,生成所述目标图片对应的编辑图片;
针对所述未处理结合中除所述目标图片外的每帧GIF静态图片,执行:
按照所述编辑信息,调整所述GIF静态图片;
裁剪被调整的所述GIF静态图片在所述覆盖件内的图形,生成所述GIF静态图片对应的编辑图片。
优选地,在所述记录用户对每帧所述GIF静态图片编辑生成的对应的编辑图片之前,进一步包括:
记录每帧所述GIF静态图片的转码顺序;
接收用户输入的编辑请求;
按照所述编辑请求,将所述转码顺序中的第一帧GIF静态图片作为当前图片,执行:
S0:将所述当前图片加入view控件中,并通过所述view控件展示给所述用户;
所述记录用户对每帧所述静态图片编辑生成的对应的编辑图片,包括:
S1:裁剪所述用户将所述当前图片调整至所述view控件覆盖件内的图形,生成编辑图片;
S2:确定所述当前图片是否为所述转码顺序中的最后一帧静态图片,如果是,执行所述根据所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像,否则,执行S3;
S3:将所述转码顺序中所述当前图片的下一帧所述静态图片作为当前图片,返回S0。
优选地,所述配置信息,包括:所述待编辑GIF图像对应的GIF静态图片的帧数、排列顺序和帧间隔时间;
所述根据所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像,包括:
按照所述排列顺序,排列每帧所述GIF静态图片对应的所述编辑图片;
设置每两帧所述编辑图片的间隔时间为所述帧间隔时间;
将设置后的每个所述编辑图片转换为对应的编码Byte数组块;
在所述编码Byte数组块的GifHeader中添加所述配置信息,合成新GIF图像。
第二方面,本发明实施例提供了一种移动终端,包括:
获取单元,用于获取待编辑GIF图像;根据转码单元转码的所述Byte数组,获取所述待编辑GIF图像的配置信息和对应的每帧GIF静态图片;
所述转码单元,用于将所述获取单元获取的所述待编辑GIF图像转码为Byte数组;将所述输入流转码为至少两帧静态图片;
编辑单元,用于记录用户对所述转码单元转码的每帧所述GIF静态图片编辑生成的对应的编辑图片;根据所述获取单元获取的所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像。
优选地,所述Byte数组,包括:至少两个解码Byte数组块;
所述转码单元,用于将所述待编辑GIF图像转码为输入流;将所述输入流转码为至少两个所述解码Byte数组块,其中,每个所述Byte数组块对应所述待编辑GIF图像的一帧GIF静态图片;依次将每个所述解码Byte数组块转码为对应的解码Bitmap对象形成所述GIF静态图片;
所述获取单元,用于从所述解码Byte数组块的GifHeader中获取所述待编辑GIF图像的配置信息;
优选地,所述转码单元,用于记录每个所述解码Byte数组块对应的标识位置;依次从每个所述标识位置对应的所述解码Byte数组块中读取出一帧所述GIF静态图片的数据;将读取到的所述数据转码为对应的解码Bitmap对象形成所述GIF静态图片。
优选地,所述编辑单元,用于确定未处理集合,从所述未处理结合中确定目标图片,其中,所述未处理集合中包括每帧GIF静态图片;根据所述获取单元获取的所述调整请求,将所述目标图片通过view控件展示给所述用户;记录所述用户通过触控所述目标图片产生的编辑信息,其中,所述编辑信息,包括:缩放数据和位移数据;裁剪被触控后的所述目标图片在所述view控件的覆盖件内的图形,生成所述目标图片对应的编辑图片;针对所述未处理结合中除所述目标图片外的每帧GIF静态图片,执行:按照所述编辑信息,调整所述GIF静态图片;裁剪被调整的所述GIF静态图片在所述覆盖件内的图形,生成所述GIF静态图片对应的编辑图片;
所述获取单元,进一步用于接收用户输入的调整请求。
优选地,所述编辑单元,用于记录每帧所述静态图片的转码顺序;按照所述编辑请求,将所述转码顺序中的第一帧GIF静态图片作为当前图片,执行:
S0:将所述当前图片加入view控件中,并通过所述view控件展示给所述用户;
所述记录用户对每帧所述静态图片编辑生成的对应的编辑图片,包括:
S1:裁剪所述用户将所述当前图片调整至所述view控件覆盖件内的图形,生成编辑图片;
S2:确定所述当前图片是否为所述转码顺序中的最后一帧静态图片,如果是,执行所述根据所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像,否则,执行S3;
S3:将所述转码顺序中所述当前图片的下一帧所述静态图片作为当前图片,返回S0;
所述获取单元,进一步用于接收用户输入的编辑请求。
优选地,所述配置信息,包括:所述待编辑GIF图像对应的GIF静态图片的帧数、排列顺序和帧间隔时间;
所述编辑单元,按照所述排列顺序,排列每帧所述GIF静态图片对应的所述编辑图片;设置每两帧所述编辑图片的间隔时间为所述帧间隔时间;将设置后的每个所述编辑图片转换为对应的编码Byte数组块;在所述编码Byte数组块的GifHeader中添加所述配置信息,合成新GIF图像。
在本发明实施例中,通过移动终端获取待编辑GIF图像,可以使得移动终端对待编辑GIF图像进行逆向分解和帧处理,获取到待编辑GIF图像对应的配置信息和每帧GIF静态图片,再记录用户对每帧GIF静态图片的编辑操作所生成的编辑图片,可以对记录的每帧编辑图片进行编码操作,进而合成新GIF图像。而无需用户通过PC端编辑GIF图像,从而能够提高用户编辑GIF图像的灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种GIF图像处理方法的流程图;
图2是本发明一实施例提供的另一种GIF图像处理方法的流程图;
图3是本发明一实施例提供的一种移动终端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种GIF图像处理方法,应用于移动终端,包括:
步骤101:获取待编辑GIF图像;
步骤102:将所述待编辑GIF图像转码为Byte数组;
步骤103:根据所述Byte数组,获取所述待编辑GIF图像的配置信息和对应的每帧GIF静态图片;
步骤104:记录用户对每帧所述GIF静态图片编辑生成的对应的编辑图片;
步骤105:根据所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像。
在本发明实施例中,通过移动终端获取待编辑GIF图像,可以使得移动终端对待编辑GIF图像进行逆向分解和帧处理,获取到待编辑GIF图像对应的配置信息和每帧GIF静态图片,再记录用户对每帧GIF静态图片的编辑操作所生成的编辑图片,可以对记录的每帧编辑图片进行编码操作,进而合成新GIF图像。而无需用户通过PC端编辑GIF图像,从而能够提高用户编辑GIF图像的灵活性。
在本发明一实施例中,所述Byte数组,包括:至少两个解码Byte数组块;
则,
所述将所述待编辑GIF图像转码为Byte数组,包括:
将所述待编辑GIF图像转码为输入流;
将所述输入流转码为至少两个所述解码Byte数组块,其中,每个所述Byte数组块对应所述待编辑GIF图像的一帧GIF静态图片;
所述根据所述Byte数组,获取所述待编辑GIF图像的配置信息和对应的每帧GIF静态图片,包括:
从所述解码Byte数组块的GifHeader中获取所述待编辑GIF图像的配置信息;
依次将每个所述解码Byte数组块转码为对应的解码Bitmap对象形成所述GIF静态图片。
在本发明实施例中,在将待编辑GIF图像分解为多帧GIF静态图片时,需要先将待编辑GIF图像转码为输入流读取到移动终端的内存中,再将内存中的输入流转换为Byte数组,从Byte数组的GifHeader中获取待编辑GIF图像的配置信息,再将Byte数组的每个解码Byte数组块转码为对应的解码Bitmap对象,即可形成待编辑GIF图像对应的各个GIF静态图片,即可使得用户根据需求对每个GIF静态图片进行编辑操作。
在本发明一实施例中,在所述将所述输入流转码为至少两个所述解码Byte数组块之后,在所述依次将每个所述解码Byte数组块转码为对应的解码Bitmap对象形成所述GIF静态图片之前,进一步包括:
记录每个所述解码Byte数组块对应的标识位置;
所述依次将每个所述Byte数组块转码为对应的解码Bitmap对象形成所述GIF静态图片,包括:
依次从每个所述标识位置对应的所述解码Byte数组块中读取出一帧所述GIF静态图片的数据;
将读取到的所述数据转码为对应的解码Bitmap对象形成所述GIF静态图片。
在本发明实施例中,在将待编辑GIF图像转码为Byte数组块后,需要记录每个Byte数组块的标识位置,以使按照标识位置从Byte数组块中读取每帧GIF静态图片的数据,再将每帧数据转码为对应的Bitmap格式的对象,即可形成GIF静态图片,再将各个GIF静态图片保存至移动终端的本地硬盘,供用户编辑。
为了满足的不同编辑需求,在本发明实施例提供了两种方式供用户对GIF静态图片编辑,具体包括:
方式一:将待编辑GIF图像中的第一帧GIF静态图片或者任意一帧GIF静态图片作为目标图片展示给用户,通过记录用户对目标图片的编辑操作,并对剩余的每一帧GIF静态图片进行同样编辑处理,即可生成各个编辑图片。
方式二:依次将待编辑GIF图像的每一帧GIF静态图片展示给用户,以使用户依次对每帧GIF静态图片进行编辑。
下面针对上述两种对GIF静态图片的编辑方式进行详细说明:
针对方式一:在本发明一实施例中,在所述记录用户对每帧所述GIF静态图片编辑生成的对应的编辑图片之前,进一步包括:
确定未处理集合,从所述未处理结合中确定目标图片,其中,所述未处理集合中包括每帧GIF静态图片;
接收用户输入的调整请求;
根据所述调整请求,将所述目标图片通过view控件展示给所述用户;
所述记录用户对每帧所述GIF静态图片编辑生成的对应的编辑图片,包括:
记录所述用户通过触控所述目标图片产生的编辑信息,其中,所述编辑信息,包括:缩放数据和位移数据;
裁剪被触控后的所述目标图片在所述view控件的覆盖件内的图形,生成所述目标图片对应的编辑图片;
针对所述未处理结合中除所述目标图片外的每帧GIF静态图片,执行:
按照所述编辑信息,调整所述GIF静态图片;
裁剪被调整的所述GIF静态图片在所述覆盖件内的图形,生成所述GIF静态图片对应的编辑图片。
在本发明实施例中,在记录对每帧GIF静态图片的编辑操作时,可以从各个GIF静态图片中确定目标图片,该目标图片可以是待编辑GIF图像的第一帧GIF静态图片,也可以是任意一帧GIF静态图片,将目标图片通过view控件展示给用户,用户用手势触控view控件对目标图片进行缩放和位移,以使在view控件的覆盖件内展示,通过裁剪覆盖件内的图形,即可生成目标图片对应的编辑图片,再通过记录用户触控目标图片所产生的缩放数据和位移数据,即可按照记录的缩放数据和位移数据,对剩余的每帧GIF静态图片进行编辑,并裁剪覆盖件内编辑后的图片,生成对应的编辑图片,完成对每帧GIF静态图片的编辑操作。综上可见,通过记录用户对目标图片的操作所产生的缩放数据和位移数据,可以利用记录的数据对剩余的每帧GIF静态图片进行自动处理,而无需用户再重复上述步骤,简化用户编辑GIF静态图片的流程,使得编辑GIF静态图片更方便快捷,从而实现提高用户体验的目的。
针对方式二:在本发明一实施例中,在所述记录用户对每帧所述GIF静态图片编辑生成的对应的编辑图片之前,进一步包括:
记录每帧所述GIF静态图片的转码顺序;
接收用户输入的编辑请求;
按照所述编辑请求,将所述转码顺序中的第一帧GIF静态图片作为当前图片,执行:
S0:将所述当前图片加入view控件中,并通过所述view控件展示给所述用户;
所述记录用户对每帧所述静态图片编辑生成的对应的编辑图片,包括:
S1:裁剪所述用户将所述当前图片调整至所述view控件覆盖件内的图形,生成编辑图片;
S2:确定所述当前图片是否为所述转码顺序中的最后一帧静态图片,如果是,执行所述根据所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像,否则,执行S3;
S3:将所述转码顺序中所述当前图片的下一帧所述静态图片作为当前图片,返回S0。
在本发明实施例中,通过记录每帧GIF静态图片的转码顺序,可以将转码顺序的第一帧GIF静态图片展示给用户,在用户对第一帧GIF静态图片编辑操作后,可以按照转码顺序将下一帧GIF静态图片展示给用户,以使用户分别对每帧GIF静态图片操作,编辑所需的图片。
方式一提供的对GIF静态图片的编辑方式,只需要用户对第一帧GIF静态图片或任意一帧GIF静态图片进行编辑操作,通过记录用户的编辑操作,即可对剩余的每帧GIF静态图片执行相同的编辑操作,而无需用户再依次编辑每帧GIF静态图片。而方式二提供的对GIF静态图片的编辑方式,用户可以根据需求依次对每帧GIF静态图片进行编辑,针对每帧GIF静态图片,用户通过触控view控件内的GIF静态图片,以使在view控件的覆盖件内显示出所要裁剪的图片,完成GIF静态图片的编辑。
在本发明一实施例中,所述配置信息,包括:所述待编辑GIF图像对应的GIF静态图片的帧数、排列顺序和帧间隔时间;
所述根据所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像,包括:
按照所述排列顺序,排列每帧所述GIF静态图片对应的所述编辑图片;
设置每两帧所述编辑图片的间隔时间为所述帧间隔时间;
将设置后的每个所述编辑图片转换为对应的编码Byte数组块;
将每个所述编码Bitmap对象转换为对应的编码Byte数组块;
在所述编码Byte数组块的GifHeader中添加所述配置信息,合成新GIF图像。
在本发明实施例中,在获取到通过用户编辑操作后的编辑图片时,需要对各个编辑图片进行编码,即将Bitmap格式的每帧编辑图片转换为对应的Byte数组块,形成Byte数组,再将待编辑GIF图像的配置信息添加到Byte数组的GifHeader即可合成新GIF图像,完成对GIF图像的编辑操作。
下面结合上述方式一,对本发明实施例提供的一种GIF图像处理方法,坐进一步详细说明,如图2所示,该方法可以包括以下步骤:
步骤201:获取待编辑GIF图像。
步骤202:将待编辑GIF图像转码为输入流。
具体地,在对待编辑GIF图像进行解码时,需要将待编辑图像转码为输入流至移动终端的内存中。
步骤203:将输入流转码为至少两个解码Byte数组块,其中,每个Byte数组块对应待编辑GIF图像的一帧GIF静态图片。
具体地,通过将内存中的输入流转码为至少两个解码Byte数组块,形成解码Byte数组,以使待编辑GIF图像的每帧GIF静态图片对应一个解码Byte数组块。
步骤204:记录每个解码Byte数组块对应的标识位置。
具体地,在将输入流转换为解码Byte数组后,需要记录解码Byte数组的每一个解码Byte数组块的标识位置,以使按照标识位置读取每帧GIF静态图片的数据。
步骤205:从解码Byte数组块的GifHeader中获取待编辑GIF图像的配置信息,其中,配置信息,包括:待编辑GIF图像对应的GIF静态图片的帧数、排列顺序和帧间隔时间。
具体地,在将输入流转换为解码Byte数组块后,需要从解码Byte数组块的GifHeader获取待编辑GIF图像的配置信息,以使根据配置信息对用户编辑的图片合成新GIF图像。
配置信息可以包括:每帧GIF静态图片的长度、宽度、帧间隔时间、GIF静态图片的帧数、以及GIF静态图片排列顺序。
步骤206:依次从每个标识位置对应的解码Byte数组块中读取出一帧GIF静态图片的数据。
具体地,在将输入流转码为解码Byte数组块后,需要按照每个解码Byte数组块的标识位置读取出每个解码Byte数组块中的GIF静态图片的数据。
步骤207:将读取到的数据转码为对应的解码Bitmap对象形成GIF静态图片。
具体地,为了避免移动终端的内存不足导致内存溢出问题,需要将每帧GIF静态图片的数据转码为Bitmap格式的对象,形成Bitmap数组,并通过输出流保存到移动终端的本地硬盘中。
步骤208:确定未处理集合,从未处理结合中确定目标图片,其中,未处理集合中包括每帧GIF静态图片。
步骤209:接收用户输入的调整请求。
步骤210:根据调整请求,将目标图片通过view控件展示给用户。
具体地,用户如需对各个GIF静态图片编辑,可以输入调整请求,以使移动终端从包括各个GIF静态图片的未处理结合中,确定待编辑GIF图像的第一帧GIF静态图片或任意一帧GIF静态图片作为目标图片,将该目标图片加入到展示给用户。
步骤211:记录用户通过触控目标图片产生的编辑信息,其中,编辑信息,包括:缩放数据和位移数据。
具体地,用户可以根据需求,用手势操控view控件内的目标图片,即对目标图片进行缩放、位移,以使将操控后的目标图片调整至view控件的覆盖件内,移动终端通过即可记录用户操控所形成的编辑信息,即记录用户对目标图片的缩放数据、位移数据。
步骤212:裁剪被触控后的目标图片在view控件的覆盖件内的图形,生成目标图片对应的编辑图片。
具体地,用户在确定对目标图片的操作后,移动终端可利用Canvas控件裁剪覆盖件内的图形,形成目标图片对应的编辑图片,完成对目标图片的编辑。
步骤213:针对未处理结合中除目标图片外的每帧GIF静态图片,按照所述编辑信息,调整GIF静态图片。
具体地,在目标图片编辑完毕后,无需用户再对其他帧GIF静态图片进行编辑操作,而是按照用户编辑目标图片时的编辑信息依次调整每帧GIF静态图片,以使在确定每帧GIF静态图片在view控件的覆盖件内的图形。
需要说明的是,对每帧GIF静态图片的编辑操作,均按照编辑信息调整,再对调整后的GIF静态图片进行裁剪,再执行下一帧GIF静态图片。
步骤214:裁剪被调整的GIF静态图片在覆盖件内的图形,生成GIF静态图片对应的编辑图片。
具体地,在按照编辑信息调整好GIF静态图片后,即可裁剪覆盖件内的图形生成GIF静态图片对应的编辑图片,避免用户重复每帧GIF静态图片编辑操作,从而可以简化用户编辑GIF图像的步骤,提高用户编辑体验。
步骤215:按照排列顺序,排列每帧GIF静态图片对应的编辑图片。
具体地,在合成新GIF图像时,需要先对编辑的编辑图片进行排序,即按照待编辑GIF图像配置信息中的排列顺序排列每个编辑图片,以使确保编辑后的每帧GIF静态图片的排列顺序未改变。
步骤216:设置每两帧编辑图片的间隔时间为帧间隔时间。
具体地,按照待编辑GIF图像的帧间隔时间,设置每两帧编辑图片的间隔时间,可以保证编辑后的图片切换时长与未编辑前的时长一致。
步骤217:将设置后的每个编辑图片转换为对应的编码Byte数组块。
具体地,确定编辑图片的间隔时间后,即可对Bitmap格式的各个编辑图片转码,形成对应的编码Byte数组块。
步骤218:在编码Byte数组块的GifHeader中添加配置信息,合成新GIF图像。
具体地,在对Byte数组块的GifHeader中添加待编辑GIF的配置信息即可合成新GIF图像。
在本发明实施例中,本方案提供的一种GIF图像处理方法是基于Android平台的GIF图像处理方法,通过在Android平台解码、裁剪和编码,对待编辑GIF图像逆向分解和帧处理,即,获取每帧GIF静态图片,再对每帧GIF静态图片进行裁剪,获取对应的编辑图片,对各个编辑图片进行编码即可获取到新GIF图像,完成GIF图像的编辑,实现对GIF图像的截取操作,用户更加方便地在Android移动端自定义截取GIF图像操作,而无需用户通过PC端编辑,从而可以提高编辑GIF图像的灵活性。
如图3所示,本发明实施例提供了一种移动终端,包括:
获取单元301,用于获取待编辑GIF图像;根据转码单元302转码的所述Byte数组,获取所述待编辑GIF图像的配置信息和对应的每帧GIF静态图片;
所述转码单元302,用于将所述获取单元301获取的所述待编辑GIF图像转码为Byte数组;将所述输入流转码为至少两帧静态图片;
编辑单元303,用于记录用户对所述转码单元302转码的每帧所述GIF静态图片编辑生成的对应的编辑图片;根据所述获取单元301获取的所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像。
在本发明实施例中,通过获取单元获取待编辑GIF图像,可以使得转码单元对待编辑GIF图像进行逆向分解和帧处理,获取到待编辑GIF图像对应的配置信息和每帧GIF静态图片,获取单元再记录用户对每帧GIF静态图片的编辑操作所生成的编辑图片,可以使得编辑单元对记录的每帧编辑图片进行编码操作,进而合成新GIF图像。而无需用户通过PC端编辑GIF图像,从而能够提高用户编辑GIF图像的灵活性。
在本发明一实施例中,所述Byte数组,包括:至少两个解码Byte数组块;
所述转码单元,用于将所述待编辑GIF图像转码为输入流;将所述输入流转码为至少两个所述解码Byte数组块,其中,每个所述Byte数组块对应所述待编辑GIF图像的一帧GIF静态图片;依次将每个所述解码Byte数组块转码为对应的解码Bitmap对象形成所述GIF静态图片;
所述获取单元,用于从所述解码Byte数组块的GifHeader中获取所述待编辑GIF图像的配置信息;
在本发明一实施例中,所述转码单元,用于记录每个所述解码Byte数组块对应的标识位置;依次从每个所述标识位置对应的所述解码Byte数组块中读取出一帧所述GIF静态图片的数据;将读取到的所述数据转码为对应的解码Bitmap对象形成所述GIF静态图片。
在本发明一实施例中,所述编辑单元,用于确定未处理集合,从所述未处理结合中确定目标图片,其中,所述未处理集合中包括每帧GIF静态图片;根据所述获取单元获取的所述调整请求,将所述目标图片通过view控件展示给所述用户;记录所述用户通过触控所述目标图片产生的编辑信息,其中,所述编辑信息,包括:缩放数据和位移数据;裁剪被触控后的所述目标图片在所述view控件的覆盖件内的图形,生成所述目标图片对应的编辑图片;针对所述未处理结合中除所述目标图片外的每帧GIF静态图片,执行:按照所述编辑信息,调整所述GIF静态图片;裁剪被调整的所述GIF静态图片在所述覆盖件内的图形,生成所述GIF静态图片对应的编辑图片;
所述获取单元,进一步用于接收用户输入的调整请求。
在本发明一实施例中,所述编辑单元,用于记录每帧所述静态图片的转码顺序;按照所述编辑请求,将所述转码顺序中的第一帧GIF静态图片作为当前图片,执行:
S0:将所述当前图片加入view控件中,并通过所述view控件展示给所述用户;
所述记录用户对每帧所述静态图片编辑生成的对应的编辑图片,包括:
S1:裁剪所述用户将所述当前图片调整至所述view控件覆盖件内的图形,生成编辑图片;
S2:确定所述当前图片是否为所述转码顺序中的最后一帧静态图片,如果是,执行所述根据所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像,否则,执行S3;
S3:将所述转码顺序中所述当前图片的下一帧所述静态图片作为当前图片,返回S0;
所述获取单元,进一步用于接收用户输入的编辑请求。
在本发明一实施例中,所述配置信息,包括:所述待编辑GIF图像对应的GIF静态图片的帧数、排列顺序和帧间隔时间;
所述编辑单元,按照所述排列顺序,排列每帧所述GIF静态图片对应的所述编辑图片;设置每两帧所述编辑图片的间隔时间为所述帧间隔时间;将设置后的每个所述编辑图片转换为对应的编码Byte数组块;在所述编码Byte数组块的GifHeader中添加所述配置信息,合成新GIF图像。
本发明各个实施例至少具有如下有益效果:
1、在本发明一实施例中,通过移动终端获取待编辑GIF图像,可以使得移动终端对待编辑GIF图像进行逆向分解和帧处理,获取到待编辑GIF图像对应的配置信息和每帧GIF静态图片,再记录用户对每帧GIF静态图片的编辑操作所生成的编辑图片,可以对记录的每帧编辑图片进行编码操作,进而合成新GIF图像。而无需用户通过PC端编辑GIF图像,从而能够提高用户编辑GIF图像的灵活性。
2、在本发明一实施例中,在将待编辑GIF图像分解为多帧GIF静态图片时,需要先将待编辑GIF图像转码为输入流读取到移动终端的内存中,再将内存中的输入流转换为Byte数组,从Byte数组的GifHeader中获取待编辑GIF图像的配置信息,再将Byte数组的每个解码Byte数组块转码为对应的解码Bitmap对象,即可形成待编辑GIF图像对应的各个GIF静态图片,即可使得用户根据需求对每个GIF静态图片进行编辑操作。
3、在本发明一实施例中,在将待编辑GIF图像转码为Byte数组块后,需要记录每个Byte数组块的标识位置,以使按照标识位置从Byte数组块中读取每帧GIF静态图片的数据,再将每帧数据转码为对应的Bitmap格式的对象,即可形成GIF静态图片,再将各个GIF静态图片保存至移动终端的本地硬盘,供用户编辑。
4、在本发明一实施例中,在记录对每帧GIF静态图片的编辑操作时,可以从各个GIF静态图片中确定目标图片,该目标图片可以是待编辑GIF图像的第一帧GIF静态图片,也可以是任意一帧GIF静态图片,将目标图片通过view控件展示给用户,用户用手势触控view控件对目标图片进行缩放和位移,以使在view控件的覆盖件内展示,通过裁剪覆盖件内的图形,即可生成目标图片对应的编辑图片,再通过记录用户触控目标图片所产生的缩放数据和位移数据,即可按照记录的缩放数据和位移数据,对剩余的每帧GIF静态图片进行编辑,并裁剪覆盖件内编辑后的图片,生成对应的编辑图片,完成对每帧GIF静态图片的编辑操作。综上可见,通过记录用户对目标图片的操作所产生的缩放数据和位移数据,可以利用记录的数据对剩余的每帧GIF静态图片进行自动处理,而无需用户再重复上述步骤,简化用户编辑GIF静态图片的流程,使得编辑GIF静态图片更方便快捷,从而实现提高用户体验的目的。
5、在本发明一实施例中,通过记录每帧GIF静态图片的转码顺序,可以将转码顺序的第一帧GIF静态图片展示给用户,在用户对第一帧GIF静态图片编辑操作后,可以按照转码顺序将下一帧GIF静态图片展示给用户,以使用户分别对每帧GIF静态图片操作,编辑所需的图片。
6、在本发明一实施例中,在获取到通过用户编辑操作后的编辑图片时,需要对各个编辑图片进行编码,即将Bitmap格式的每帧编辑图片转换为对应的Byte数组块,形成Byte数组,再将待编辑GIF图像的配置信息添加到Byte数组的GifHeader即可合成新GIF图像,完成对GIF图像的编辑操作。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃····〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种GIF图像处理方法,其特征在于,应用于移动终端,包括:
获取待编辑GIF图像;
将所述待编辑GIF图像转码为Byte数组;
根据所述Byte数组,获取所述待编辑GIF图像的配置信息和对应的每帧GIF静态图片;
记录用户对每帧所述GIF静态图片编辑生成的对应的编辑图片;
根据所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像;
其中,在所述记录用户对每帧所述GIF静态图片编辑生成的对应的编辑图片之前,进一步包括:确定未处理集合,从所述未处理集合中确定目标图片,其中,所述未处理集合中包括每帧GIF静态图片;接收用户输入的调整请求;根据所述调整请求,将所述目标图片通过view控件展示给所述用户;
所述记录用户对每帧所述GIF静态图片编辑生成的对应的编辑图片,包括:记录所述用户通过触控所述目标图片产生的编辑信息,其中,所述编辑信息,包括:缩放数据和位移数据;裁剪被触控后的所述目标图片在所述view控件的覆盖件内的图形,生成所述目标图片对应的编辑图片;
针对所述未处理集合中除所述目标图片外的每帧GIF静态图片,执行:按照所述编辑信息,调整所述GIF静态图片;裁剪被调整的所述GIF静态图片在所述覆盖件内的图形,生成所述GIF静态图片对应的编辑图片。
2.根据权利要求1所述的方法,其特征在于,
所述Byte数组,包括:至少两个解码Byte数组块;
则,
所述将所述待编辑GIF图像转码为Byte数组,包括:
将所述待编辑GIF图像转码为输入流;
将所述输入流转码为至少两个所述解码Byte数组块,其中,每个所述Byte数组块对应所述待编辑GIF图像的一帧GIF静态图片;
所述根据所述Byte数组,获取所述待编辑GIF图像的配置信息和对应的每帧GIF静态图片,包括:
从所述解码Byte数组块的GifHeader中获取所述待编辑GIF图像的配置信息;
依次将每个所述解码Byte数组块转码为对应的解码Bitmap对象形成所述GIF静态图片。
3.根据权利要求2所述的方法,其特征在于,
在所述将所述输入流转码为至少两个所述解码Byte数组块之后,在所述依次将每个所述解码Byte数组块转码为对应的解码Bitmap对象形成所述GIF静态图片之前,进一步包括:
记录每个所述解码Byte数组块对应的标识位置;
所述依次将每个所述Byte数组块转码为对应的解码Bitmap对象形成所述GIF静态图片,包括:
依次从每个所述标识位置对应的所述解码Byte数组块中读取出一帧所述GIF静态图片的数据;
将读取到的所述数据转码为对应的解码Bitmap对象形成所述GIF静态图片。
4.根据权利要求1所述的方法,其特征在于,
在所述记录用户对每帧所述GIF静态图片编辑生成的对应的编辑图片之前,进一步包括:
记录每帧所述GIF静态图片的转码顺序;
接收用户输入的编辑请求;
按照所述编辑请求,将所述转码顺序中的第一帧GIF静态图片作为当前图片,执行:
S0:将所述当前图片加入view控件中,并通过所述view控件展示给所述用户;
所述记录用户对每帧所述静态图片编辑生成的对应的编辑图片,包括:
S1:裁剪所述用户将所述当前图片调整至所述view控件覆盖件内的图形,生成编辑图片;
S2:确定所述当前图片是否为所述转码顺序中的最后一帧静态图片,如果是,执行所述根据所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像,否则,执行S3;
S3:将所述转码顺序中所述当前图片的下一帧所述静态图片作为当前图片,返回S0。
5.根据权利要求1至4中任一所述的方法,其特征在于,
所述配置信息,包括:所述待编辑GIF图像对应的GIF静态图片的帧数、排列顺序和帧间隔时间;
所述根据所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像,包括:
按照所述排列顺序,排列每帧所述GIF静态图片对应的所述编辑图片;
设置每两帧所述编辑图片的间隔时间为所述帧间隔时间;
将设置后的每个所述编辑图片转换为对应的编码Byte数组块;
在所述编码Byte数组块的GifHeader中添加所述配置信息,合成新GIF图像。
6.一种移动终端,其特征在于,包括:
获取单元,用于获取待编辑GIF图像;根据转码单元转码的Byte数组,获取所述待编辑GIF图像的配置信息和对应的每帧GIF静态图片;
所述转码单元,用于将所述获取单元获取的所述待编辑GIF图像转码为Byte数组;将输入流转码为至少两帧静态图片;
编辑单元,用于记录用户对所述转码单元转码的每帧所述GIF静态图片编辑生成的对应的编辑图片;根据所述获取单元获取的所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像;
其中,所述编辑单元,用于确定未处理集合,从所述未处理集合中确定目标图片,其中,所述未处理集合中包括每帧GIF静态图片;根据所述获取单元获取的调整请求,将所述目标图片通过view控件展示给所述用户;记录所述用户通过触控所述目标图片产生的编辑信息,其中,所述编辑信息,包括:缩放数据和位移数据;裁剪被触控后的所述目标图片在所述view控件的覆盖件内的图形,生成所述目标图片对应的编辑图片;针对所述未处理集合中除所述目标图片外的每帧GIF静态图片,执行:按照所述编辑信息,调整所述GIF静态图片;裁剪被调整的所述GIF静态图片在所述覆盖件内的图形,生成所述GIF静态图片对应的编辑图片;
所述获取单元,进一步用于接收用户输入的调整请求。
7.根据权利要求6所述的移动终端,其特征在于,
所述Byte数组,包括:至少两个解码Byte数组块;
所述转码单元,用于将所述待编辑GIF图像转码为输入流;将所述输入流转码为至少两个所述解码Byte数组块,其中,每个所述Byte数组块对应所述待编辑GIF图像的一帧GIF静态图片;依次将每个所述解码Byte数组块转码为对应的解码Bitmap对象形成所述GIF静态图片;
所述获取单元,用于从所述解码Byte数组块的GifHeader中获取所述待编辑GIF图像的配置信息。
8.根据权利要求7所述的移动终端,其特征在于,
所述转码单元,用于记录每个所述解码Byte数组块对应的标识位置;依次从每个所述标识位置对应的所述解码Byte数组块中读取出一帧所述GIF静态图片的数据;将读取到的所述数据转码为对应的解码Bitmap对象形成所述GIF静态图片。
9.根据权利要求6所述的移动终端,其特征在于,
所述编辑单元,用于记录每帧所述静态图片的转码顺序;按照编辑请求,将所述转码顺序中的第一帧GIF静态图片作为当前图片,执行:
S0:将所述当前图片加入view控件中,并通过所述view控件展示给所述用户;
所述记录用户对每帧所述静态图片编辑生成的对应的编辑图片,包括:
S1:裁剪所述用户将所述当前图片调整至所述view控件覆盖件内的图形,生成编辑图片;
S2:确定所述当前图片是否为所述转码顺序中的最后一帧静态图片,如果是,执行所述根据所述配置信息,对每帧所述编辑图片进行编码合成新GIF图像,否则,执行S3;
S3:将所述转码顺序中所述当前图片的下一帧所述静态图片作为当前图片,返回S0;
所述获取单元,进一步用于接收用户输入的编辑请求。
10.根据权利要求6至9中任一所述的移动终端,其特征在于,
所述配置信息,包括:所述待编辑GIF图像对应的GIF静态图片的帧数、排列顺序和帧间隔时间;
所述编辑单元,按照所述排列顺序,排列每帧所述GIF静态图片对应的所述编辑图片;设置每两帧所述编辑图片的间隔时间为所述帧间隔时间;将设置后的每个所述编辑图片转换为对应的编码Byte数组块;在所述编码Byte数组块的GifHeader中添加所述配置信息,合成新GIF图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810924404.8A CN109285197B (zh) | 2018-08-14 | 2018-08-14 | 一种gif图像处理方法和移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810924404.8A CN109285197B (zh) | 2018-08-14 | 2018-08-14 | 一种gif图像处理方法和移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109285197A CN109285197A (zh) | 2019-01-29 |
CN109285197B true CN109285197B (zh) | 2023-05-12 |
Family
ID=65183069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810924404.8A Active CN109285197B (zh) | 2018-08-14 | 2018-08-14 | 一种gif图像处理方法和移动终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109285197B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326086B (zh) * | 2021-05-18 | 2022-08-23 | 翱捷科技股份有限公司 | 基于lvgl的gif图片显示方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1741064A4 (en) * | 2004-03-23 | 2010-10-06 | Google Inc | DIGITAL CARTOGRAPHIC SYSTEM |
ATE521938T1 (de) * | 2005-03-14 | 2011-09-15 | Research In Motion Ltd | System und verfahren zur entwicklung von komponentbasierten anwendungen |
CN100507950C (zh) * | 2006-12-12 | 2009-07-01 | 北京中星微电子有限公司 | 数字摄像装置的视频动画背景处理方法和系统 |
CN106383880B (zh) * | 2016-09-13 | 2020-01-24 | 广州视睿电子科技有限公司 | 一种gif文件的播放方法及系统 |
CN108363977B (zh) * | 2018-02-11 | 2020-08-04 | 四川虹美智能科技有限公司 | 一种人体卧姿状态识别方法及装置 |
-
2018
- 2018-08-14 CN CN201810924404.8A patent/CN109285197B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109285197A (zh) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111935504B (zh) | 视频制作方法、装置、设备及存储介质 | |
EP1460848B1 (en) | Apparatus and method for converting multimedia contents | |
KR100775176B1 (ko) | 동영상 정보를 썸네일로 재생하는 방법 및 이를 이용한단말기 | |
US8577204B2 (en) | System and methods for remote manipulation of video over a network | |
CN107147939A (zh) | 用于调整视频直播封面的方法和装置 | |
KR101952260B1 (ko) | 다수의 동영상 썸네일을 동시에 표시하기 위한 영상 재생 장치 및 방법 | |
WO2020248948A1 (zh) | 动画文件处理方法、装置、计算机可读存储介质和计算机设备 | |
JP2006101521A (ja) | 入力メディアオブジェクトの視覚的表現を決定する方法、コンピュータプログラム及びデータ処理システム | |
CN111899155A (zh) | 视频处理方法、装置、计算机设备及存储介质 | |
JP2006135939A (ja) | 入力メディアオブジェクトをエンコードする方法、コンピュータプログラム及びデータ処理システム | |
JP2006155580A (ja) | メディアオブジェクトを生成する方法、コンピュータプログラム及びデータ処理システム | |
KR20090024091A (ko) | 비디오 파일에 대한 썸네일을 생성하는 방법 및 장치 | |
US8818163B2 (en) | Motion picture playing method, motion picture playing apparatus and recording medium | |
CN112070863A (zh) | 动画文件处理方法、装置、计算机可读存储介质和计算机设备 | |
CN108495174B (zh) | 一种h5页面效果生成视频文件的方法及系统 | |
CN113099288A (zh) | 视频制作方法及装置 | |
CN104091608A (zh) | 一种基于ios设备的视频编辑方法及装置 | |
CN109285197B (zh) | 一种gif图像处理方法和移动终端 | |
KR100606080B1 (ko) | 휴대용단말을 이용한 애니메이션 생성 장치 및 방법 | |
CN113905254A (zh) | 视频合成方法、装置、系统与可读存储介质 | |
JP2005142836A (ja) | 電子透かし埋め込みプログラム及び情報処理装置 | |
JP2007201935A (ja) | 画像処理装置の制御方法及び画像処理装置 | |
KR20040054115A (ko) | 이동 통신 단말기의 섬네일 이미지 생성 및 브라우징 방법 | |
CN114979764B (zh) | 视频生成方法、装置、计算机设备及存储介质 | |
CN110383830B (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 |