本发明涉及图像处理技术领域,特别是涉及一种动画处理方法和装置。
背景技术:
随着图像处理技术的发展,动画产业也越来越成熟。传统的动画产业中,在美工制作出动画文件后,需要将动画文件中的矢量图转换成位图,再将位图使用到场景的动画制作中。而传统的位图转换需要手动识别矢量图,并将矢量图转换手动保存为位图,手动转换的速度较慢,从而使得在场景中制作动画的效率低下。
技术实现要素:
基于此,有必要针对场景中制作动画的效率低下的问题,提供一种动画处理方法和装置。
一种动画处理方法,包括:
加载动画文件;
解析所述动画文件,获取动画信息和用于生成图像的图像数据;
当所述图像数据用于生成矢量图时,根据所述图像数据建立矢量图对象,并建立与所述矢量图对象对应的位图对象;
拷贝所述矢量图对象中的像素到所述位图对象中;
将所述位图对象保存为位图;
根据所述动画信息和保存的位图在动画场景中展示动画。
在其中一个实施例中,所述解析所述动画文件,获取动画信息和用于生成图像的图像数据包括:
遍历解析所述动画文件的每一帧;所述每一帧中包括图形标签、显示标签、移除标签和单帧结束标签;
当解析到图形标签时,提取所述图形标签中的图像数据;
当解析到显示标签时,提取所述显示标签中的图像显示信息并记录在动画信息中;
当解析到移除标签时,提取所述移除标签中的图像移除信息并记录在动画信息中;
当解析到单帧结束标签时,进行下一帧的解析,直至将所述动画文件解析完毕。
在其中一个实施例中,所述当所述图像数据用于生成矢量图时,根据所述图像数据建立矢量图对象,并建立与所述矢量图对象对应的位图对象之前,还包括:
判断所述图像数据中是否存在位图标识,若存在,则判定所述图像数据用于生成位图,若不存在,则判定所述图像数据用于生成矢量图。
在其中一个实施例中,所述根据所述图像数据建立矢量图对象包括:
提取图像数据中矢量图的顶点信息和填充信息;
根据所述顶点信息绘制矢量图对象的框架;
根据所述填充信息在所述矢量图对象的框架中填充所述矢量图对象的内容以生成所述矢量图对象。
在其中一个实施例中,所述根据所述动画信息和保存的位图在动画场景中展示动画包括:
根据所述动画信息生成动画配置文件;
提取所述保存的位图,根据动画配置文件将所述保存的位图在动画场景中展示动画。
上述动画处理方法,对动画文件进行解析,获取动画文件中的动画信息和用于生成图像的图像数据,当图像数据是用于生成矢量图时,则根据图像数据绘制矢量图对象,通过拷贝矢量图对象中像素的方法建立位图对象,将位图对象转换成位图并保存,根据动画信息和所保存的位图在动画场景展示动画。这样,在动画场景中实现了动画文件中的动画效果,提高了将矢量图转换成位图的速度,可以根据位图在场景中实现动画文件的动画效果,从而提高了动画场景中动画制作的效率。
一种动画处理装置,包括:
加载模块,用于加载动画文件;
解析模块,用于解析所述动画文件,获取动画信息和用于生成图像的图像数据;
识别模块,用于当所述图像数据用于生成矢量图时,根据所述图像数据建立矢量图对象,并建立与所述矢量图对象对应的位图对象;拷贝所述矢量图对象中的像素到所述位图对象中;
保存模块,用于将所述位图对象保存为位图;
动画生成及输出模块,用于根据所述动画信息和保存的位图在动画场景中展示动画。
在其中一个实施例中,所述解析模块还用于遍历解析所述动画文件的每一帧;所述每一帧中包括图形标签、显示标签、移除标签和单帧结束标签;当解析到图形标签时,提取所述图形标签中的图像数据;当解析到显示标签时,提取所述显示标签中的图像显示信息并记录在动画信息中;当解析到移除标签时,提取所述移除标签中的图像移除信息并记录在动画信息中;当解析到单帧结束标签时,进行下一帧的解析,直至将所述动画文件解析完毕。
在其中一个实施例中,所述识别模块还用于判断所述图像数据中是否存在位图标识,若存在,则判定所述图像数据用于生成位图,若不存在,则判定所述图像数据用于生成矢量图。
在其中一个实施例中,所述识别模块还用于提取图像数据中矢量图的顶点信息和填充信息;根据所述顶点信息绘制矢量图对象的框架;根据所述填充信息在所述矢量图对象的框架中填充所述矢量图对象的内容以生成所述矢量图对象。
在其中一个实施例中,还包括:
配置文件生成模块,用于根据所述动画信息生成动画配置文件;
所述动画生成及输出模块还用于提取所述保存的位图,根据动画配置文件将所述保存的位图在动画场景中展示动画。
上述动画处理装置,对动画文件进行解析,获取动画文件中的动画信息和用于生成图像的图像数据,当图像数据是用于生成矢量图时,则根据图像数据绘制矢量图对象,通过拷贝矢量图对象中像素的方法建立位图对象,将位图对象转换成位图并保存,根据动画信息和所保存的位图在动画场景展示动画。这样,在动画场景中实现了动画文件中的动画效果,提高了将矢量图转换成位图的速度,可以根据位图在场景中实现动画文件的动画效果,从而提高了场景中动画制作的效率。
附图说明
图1为一个实施例中动画处理方法的流程示意图;
图2为一个实施例中建立矢量图对象步骤的流程示意图;
图3为一个实施例中在动画场景中展示动画步骤的流程示意图;
图4为一个实施例中动画处理方法的流程示意图;
图5为一个实施例中动画处理装置的结构框图;
图6为另一个实施例中动画处理装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,在一个实施例中,提供一种动画处理方法,该方法可应用在台式计算机或服务器中,台式计算机或服务器上运行有动画处理程序,通过该动画处理程序来实施该动画处理方法。该方法具体包括如下步骤:
步骤102,加载动画文件。
具体地,动画文件是指利用动画制作软件所制作出来以实现某种动画效果的文件。动画文件的格式具体可以是swf(shockwaveformat,冲击波格式)文件。当台式计算机检测到加载动画文件的指令时,对所选取的动画文件进行加载。
步骤104,解析动画文件,获取动画信息和用于生成图像的图像数据。
具体地,在台式计算机加载动画文件之后,开始对动画文件进行解析,通过解析提取动画文件中的动画信息和用于生成图像的图像数据。动画文件中包括位图和矢量图。位图亦称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。矢量图也称为面向对象的图像或绘图图像,在数学上定义为一系列由线连接的点。用于生成图像的图像数据按照所生成图像的种类,具体可以分为用于生成位图的图像数据和用于生成矢量图的图像数据两种。动画信息是表示动画文件中图像在动画中的位置信息。
在一个实施例中,步骤104包括:遍历解析动画文件的每一帧;每一帧中包括图形标签、显示标签、移除标签和单帧结束标签;当解析到图形标签时,提取图形标签中的图像数据;当解析到显示标签时,提取显示标签中的图像显示信息并记录在动画信息中;当解析到移除标签时,提取所述移除标签中的图像移除信息并记录在动画信息中;当解析到单帧结束标签时,进行下一帧的解析,直至将动画文件解析完毕。
具体地,台式计算机在解析动画文件时,获取动画文件信息,动画文件信息具体可以包括帧频、总帧数、宽和高等信息,并记录在动画信息中。台式计算机根据总帧数按照一定顺序对动画文件中的每一帧进行解析,每一帧中包括图形标签、显示标签、移除标签和单帧结束标签等标签。在图形标签中包括用于生成图像的图像数据。
显示标签中包含显示标记和图形标签中图像数据所生成图像的显示信息,当解析到显示标记时,记录显示信息。显示标记可以是数字、字符或关键字等。显示信息具体可以包括图像标识、图像在动画中的显示层级、图像位置参数、图像旋转参数、图像倾斜参数、颜色参数和图像遮罩时所影响的层级等。其中图像位置参数、图像旋转参数和图像倾斜参数记录到矩阵中,矩阵具体可以是3*3的矩阵。移除标签中包括移除标记和在显示图像信息时所需要移除层级的信息,当解析到移除标记时,记录移除层级的信息。移除标记可以是数字、字符或关键字等。单帧结束标签中包括有单帧结束标记,当解析到单帧结束标记时,将先前解析记录的显示信息和移除信息按照记录解析顺序存储在数组中,之后 则开始解析下一帧。单帧结束标签可以是数字、字符或关键字等。
步骤106,当图像数据用于生成矢量图时,根据图像数据建立矢量图对象,并建立与矢量图对象对应的位图对象。
具体地,通过判断图像数据中是否存在矢量图特征信息或者位图特征信息来确定该图像数据是否是用于生成矢量图。如果图像数据中不存在矢量图特征信息或存在位图特征信息,则判定图像数据是用于生成位图,则直接将位图保存;如果图像数据中存在矢量图特征信息或不存在位图特征信息,则判定图像数据是用于生成矢量图,则根据图像数据建立矢量图对象,并建立与矢量图对象对应的位图对象。矢量图对象和位图对象是用于将矢量图转换为位图的中间变量。特征信息具体可以是数字或字符。比如,用1表示矢量图,用0表示位图。
在一个实施例中,在提取到图像标签中的图像数据后,台式计算机判断图像数据中是否存在位图标识,位图标识是用于区别位图的唯一标识。而矢量图没有标识。如果经过判断,图像数据中存在位图标识,则判定图像数据用于生成位图;如果图像数据中不存在位图标识,则判定图像数据用于生成矢量图,需要对将矢量图转换成位图。
步骤108,拷贝矢量图对象中的像素到位图对象中。
具体地,台式计算机使用图像数据建立了矢量图对象之后,将矢量图对象中的像素进行拷贝,并将拷贝到的像素粘贴到矢量图对象对应的位图对象中,用以根据该位图对象生成位图。
步骤110,将位图对象保存为位图。
具体地,台式计算机将拷贝了矢量图对象像素的位图对象转换为相应的位图,并为位图分配位图标识,将带有位图标识的位图转换为相应格式的文件保存到特定的目录下。在将位图转换为相应格式的文件时,可以根据位图标识对文件进行命名。文件格式可以是png、jpeg或bmp等格式。
步骤112,根据动画信息和保存的位图在动画场景中展示动画。
具体地,台式计算机提取所有保存的位图或者位图文件,根据动画信息在动画场景中还原动画文件,以在动画场景中实现动画文件中的动画效果,并在 动画场景中展示动画。动画场景是动画角色活动和表演的场合和情景。动画场景具体可以是游戏动画场景、动画电影中的动画场景和动画系列片中的动画场景中的任意一种。
本实施例中,对动画文件进行解析,获取动画文件中的动画信息和用于生成图像的图像数据,通过判断图像数据是用于生成矢量图的,则根据图像数据绘制矢量图对象,通过拷贝矢量图对象中像素的方法建立位图对象,将位图对象转换成位图并保存,根据动画信息和所保存的位图在动画场景展示动画。这样,在动画场景中实现了动画文件中的动画效果,提高了将矢量图转换成位图的速度,可以根据位图在场景中实现动画文件的动画效果,从而提高了场景中动画制作的效率。
如图2所示,在一个实施例中,步骤104具体包括以下步骤:
步骤202,提取图像数据中矢量图的顶点信息和填充信息。
具体地,在判定图像数据是用于生成矢量图时,台式计算机则从图像数据中提取矢量图的顶点信息和填充信息。矢量图是将一系列点连接起来形成的框架和框架中所填充内容所形成,这些点就是矢量图的顶点。填充信息就是框架中所填充内容的信息。
步骤204,根据顶点信息绘制矢量图对象的框架。
具体地,顶点信息具体可以是顶点的位置信息,台式计算机根据顶点信息将顶点绘制出来,再将绘制出来的顶点用线连接,将顶点用线连接之后,形成了矢量图对象的框架。
步骤206,根据填充信息在矢量图对象的框架中填充矢量图对象的内容以生成矢量图对象。
具体地,填充信息中包括矢量图对象的框架中内容的颜色信息。台式计算机利用填充信息在矢量图对象的框架中绘制矢量图对象的内容,在绘制完矢量图的内容之后,形成了完成的矢量对象。
本实施例中,通过建立矢量图对象将矢量图的内容绘制出来,避免在图像转换过程中改变矢量图的内容,通过建立矢量对象提高了图像转换的准确性。
如图3所示,在一个实施例中,步骤112包括以下步骤:
步骤302,根据动画信息生成动画配置文件。
具体地,台式计算机提取在解析动画文件时所记录的动画信息,包括动画文件的信息、每一帧对应的图像的显示信息和移除信息等,根据所记录动画信息生成动画配置文件。动画是有多张连续的图片组成的,而多张连续的图片是根据每一帧对应的图像拼接形成。动画配置文件具体包括拼图信息配置文件和动画信息配置文件。拼图配置文件是记录图像在图片中的位置信息。动画信息配置文件是记录多张连续的图片的顺序。先根据动画信息生成拼图信息配置文件,再根据拼图信息配置文件形成动画信息配置文件。
步骤304,提取保存的位图,根据动画配置文件将保存的位图在动画场景中展示动画。
具体地,台式计算机提取保存的所有位图,先根据拼图信息配置文件将位图拼接生成多张图片,在根据动画信息配置文件中图片的顺序展示图片形成动画,并将形成的动画在动画场景中进行展示。
本实施例中,根据获取到动画文件中的动画信息生成动画配置文件,可以根据动画配置文件在动画场景中还原动画文件中的动画效果,提高了在动画场景中还原动画文件中的动画效果的准确率。
如图4所示,在一个实施例中,提供一种动画处理方法,具体包括如下步骤:
步骤402,加载动画文件,获取动画文件信息并记录到动画信息中。
对动画文件进行解析,以获取动画文件信息并记录到动画信息中。
具体地,对动画文件解析时,解析动画文件的数据,读取其中的帧频、总帧数、宽、高等信息,并对动画文件进行逐帧解析以解析每帧动画的标签,当在动画文件帧中解析到图形标签时,执行步骤404;当解析到显示标签和移除标签时,执行步骤412;当解析到单帧结束标签时,执行步骤414。
步骤404,解析动画文件帧中的图形标签,并提取图形标签中的图像数据。
步骤406,判断图像数据是否用于生成矢量图;若是,执行步骤408;若否,则判定图像数据用于生成位图,执行步骤410。
步骤408,根据图像数据建立矢量图对象,并建立与矢量图对象对应的位图 对象,拷贝矢量图对象中的像素到位图对象中以生成位图。
步骤410,将位图保存。
具体地,当判断图形标签中的图像数据是用于生成位图的,则无需对位图进行转换,直接保存位图;当判断图像标签中的图像数据是用于生成矢量图的,在将矢量图转换成位图后,将转换的位图保存,以待动画文件中所有矢量图转换成位图后,根据保存的位图还原动画。
步骤412,解析动画文件帧中的显示标签和移除标签,并提取显示标签中的图像显示信息和移除标签中的图像移除信息并记录到动画信息中。
具体地,在解析标签时,当解析到显示标记时,所解析的标签是显示标签;当解析到移除标记时,所解析的标签时移除标签。显示标签或移除标记具体可以是数字、字符和关键字中至少一种。
步骤414,解析动画文件帧中的单帧结束标签。
具体地,在解析标签时,当解析到结束标记时,所解析的标签是单帧结束标签。结束标记具体可以是数字、字符和关键字中至少一种。
步骤416,判断动画文件是否解析完毕。若是,则执行步骤418;若否,则执行步骤404、步骤412及步骤414中的至少一个。
当判断动画文件尚未解析完毕时,则执行步骤404、步骤412及步骤414中的至少一个步骤。
步骤418,根据动画信息生成动画配置文件。
步骤420,提取保存的位图,根据动画配置文件将保存的位图在动画场景中展示动画。
本实施例中,对动画文件进行加载并获取动画文件的存储到动画信息中,在对动画文件进行逐帧解析,具体是对帧中的标签进行解析,通过判断图形标签中的图像数据是否用于生成矢量图,并将矢量图转换成位图,保证将动画文件中所有矢量图转换成位图,提高了矢量图的转换准确性;通过解析得到显示标签和移除标签中图像显示信息和图像移除信息,并记录到动画信息中,通过动画信息可以确定位图在动画中的位置,提高了还原动画的质量;当解析到单帧结束标签时,通过判断动画文件是否解析完毕来确定是否需要对下一帧进行 解析,以保证对动画文件的完整解析;通过判断确定动画文件解析完毕后,根据动画信息生成动画配置文件,根据动画配置文件将所有位图配置到动画场景中,提高了在动画场景中还原动画文件中动画效果的准确度,提高了动画制作的效率。
如图5所示,在一个实施例中,提供一种动画处理装置500,该装置包括:加载模块502、解析模块504、识别模块506、保存模块508、动画生成及输出模块510。
加载模块502,用于加载动画文件。
解析模块504,用于解析动画文件,获取动画信息和用于生成图像的图像数据。
识别模块506,用于判断图像数据是否用于生成矢量图;若是,根据图像数据建立矢量图对象,并建立与矢量图对象对应的位图对象;拷贝矢量图对象中的像素到位图对象中。
保存模块508,用于将位图对象保存为位图。
动画生成及输出模块510,用于根据动画信息和保存的位图在动画场景中展示动画。
本实施例中,对动画文件进行解析,获取动画文件中的动画信息和用于生成图像的图像数据,通过判断图像数据是用于生成矢量图的,则根据图像数据绘制矢量图对象,通过拷贝矢量图对象中像素的方法建立位图对象,将位图对象转换成位图并保存,根据动画信息和所保存的位图在动画场景展示动画。这样,在动画场景中实现了动画文件中的动画效果,提高了将矢量图转换成位图的速度,可以根据位图在场景中实现动画文件的动画效果,从而提高了场景中动画制作的效率。
在一个实施例中,解析模块504还用于遍历解析动画文件的每一帧;每一帧中包括图形标签、显示标签、移除标签和单帧结束标签;当解析到图形标签时,提取所述图形标签中的图像数据,执行所述判断所述图形数据是否用于生成矢量图的步骤;当解析到显示标签和移除标签时,提取图像显示信息和图像 移除信息并记录在动画信息中;当解析到单帧结束标签时,进行下一帧的解析。
本实施例中,通过解析每一帧,获取到每一帧所对应图像的动画信息,在还原动画文件的动画效果时,可以根据每一帧进行还原,提高了还原动画文件中动画效果的准确率。
在一个实施例中,识别模块506还用于判断图像数据中是否存在位图标识,若存在,则判定图像数据用于生成位图,若不存在,则判定图像数据用于生成矢量图。
本实施例中,通过图像数据中是否存在位图标识来判定图像数据生成的是否是矢量图,并将矢量图转换为位图,避免了对所有图像数据所生成的图像进行转换,提高了转换速度,避免浪费转换时所消耗的运算资源。
在一个实施例中,识别模块506还用于提取图像数据中矢量图的顶点信息和填充信息;根据顶点信息绘制矢量图对象的框架;根据填充信息在矢量图对象的框架中填充矢量图对象的内容以生成矢量图对象。
本实施例中,通过顶点信息和填充信息准确的绘制出于矢量图对应的矢量对象,并根据矢量对象转换位图,提高了矢量图转换成位图的准确性,避免由与图像转换而使图像内容改变的情况。
如图6所示,在一个实施例中,动画处理装置500还包括:配置文件生成模块512。
配置文件生成模块512,用于根据动画信息生成动画配置文件。
动画生成及输出模块510还用于提取保存的位图,根据动画配置文件将保存的位图在动画场景中展示动画。
本实施例中,根据获取到动画文件中的动画信息生成动画配置文件,可以根据动画配置文件在动画场景中还原动画文件中的动画效果,提高了在动画场景中还原动画文件中的动画效果的准确率。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细, 但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。