CN101026772A - 一种动画文件读取方法 - Google Patents
一种动画文件读取方法 Download PDFInfo
- Publication number
- CN101026772A CN101026772A CNA2006100077437A CN200610007743A CN101026772A CN 101026772 A CN101026772 A CN 101026772A CN A2006100077437 A CNA2006100077437 A CN A2006100077437A CN 200610007743 A CN200610007743 A CN 200610007743A CN 101026772 A CN101026772 A CN 101026772A
- Authority
- CN
- China
- Prior art keywords
- frame
- animation file
- file
- indication information
- color format
- 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.)
- Pending
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种动画文件读取方法,包括步骤:A.读取动画文件中各帧的图像块,以获取每帧图像块中的颜色格式指示信息;B.按照每帧的颜色格式指示信息,确定显示动画文件中各帧所采用的颜色格式。应用本发明后,通过在各帧图像块中分别设置颜色格式,读取的每帧颜色格式可以为任意类型,并且能够根据需要来调整每帧的颜色格式,能够显著地提高动画文件的颜色质量,并且动画文件的表现形式更加丰富。另外,动画文件播放时间精度也获得了极大提高。
Description
技术领域
本发明涉及动画处理技术领域,更具体地说,涉及一种动画文件读取方法。
背景技术
医学已证明,人类具有“视觉暂留”的特性。也就是说,人的眼睛看到一幅画或一个物体后,在1/24秒内不会消失。利用这一原理,在一幅画还没有消失前播放出下一幅画,就会给人造成一种流畅的视觉变化效果,电影和电视正是基于这一原理。但是,如果以每秒低于24幅画面的速度拍摄播放,就会出现停顿现象。因此,电影采用了每秒24幅画面的速度拍摄播放,电视采用了每秒25幅(PAL制)或30幅(NTSC制)画面的速度拍摄播放。
动画是指连续播放一系列静态图片,每张静态图片显示特定时间后切换到下一张静态图片,从而给观察者带来图画连续变化的视觉效果。动画的基本原理与电影、电视一样,都是视觉原理。动画中的每张图片称为一帧,帧率为动画每秒播放的帧数。比如,帧率24表示每秒播放24张图片,也就是每秒播放24帧。
目前常见的动画文件存储方式主要有两种。一种是将每张静态图片存成一个文件,另外存储一个文件说明每张图片显示多长时间后切换至下张图片,在播放时按照顺序读取每个文件。另一种存储方式是将所有图片数据和播放时间存放在一个文件中,播放时从该文件中读出所有帧的图片信息。
具体地,目前常见的图像存储格式有BMP文件格式、TGA文件格式和GIF文件格式等,其中GIF文件格式广泛用于动画文件处理中。在GIF文件格式中,用一个文件存储动画中所有图片的信息,包括每张图的播放时间。
图1为现有技术中GIF文件格式的结构示意图。如图1所示,GIF文件包括GIF文件头、各帧的图像块以及GIF结尾标志。其中GIF文件头包括GIF署名、版本号、逻辑屏幕标识符、全局颜色列表等信息;每帧的图像块包括图像标识符、图像局部颜色列表以及基于颜色列表的图像数据。
然而,在GIF文件中,由于使用全局颜色列表和图像局部颜色列表来存储颜色索引值,所以最多只能表现256种颜色,颜色质量并不高,而且不能根据需要来调整颜色格式,因此在需要色彩很丰富的场所GIF文件就非常不适用。而且,GIF文件在文件头中的逻辑屏幕标志符存放动画的宽度和高度信息,并不能灵活设置每帧图片的宽度和高度。另外,GIF文件格式中,每帧的播放时间只能是10毫秒的整数倍,而10毫秒的播放时间精度已经越来不能满足当前的需求,尤其不能适应当前高速发展的电子游戏领域的要求。
发明内容
有鉴于此,本发明的主要目的是提出一种动画文件读取方法,以提高动画的颜色质量。
为达到上述目的,本发明的技术方案是这样实现的:
一种动画文件读取方法,该方法包括以下步骤:
A、读取动画文件中各帧的图像块,以获取每帧图像块中的颜色格式指示信息;
B、按照每帧的颜色格式指示信息,确定显示所述动画文件中各帧所采用的颜色格式。
所述的颜色格式指示信息为256色指示信息、6万色指示信息、1671万色指示信息、42亿色指示信息中的任意一种。
步骤A中进一步获取每帧图像块中的高度指示信息,步骤B进一步按照每帧的高度指示信息,确定显示所述动画文件中各帧所采用的高度。
步骤A中进一步获取每帧图像块中的宽度指示信息,步骤B进一步按照每帧的宽度指示信息,确定显示所述动画文件中各帧所采用的宽度。
步骤A中进一步获取每帧图像块中的帧显示时间信息,步骤B进一步按照每帧的帧显示时间信息,确定显示所述动画文件中各帧所采用的时间。
所述帧显示时间为1毫秒的整数倍。
步骤A中进一步获取每帧图像块中的每行占用存储空间数,步骤B进一步按照每帧的每行占用存储空间数,确定每行读取的动画文件的存储数据。
该方法进一步包括,在步骤B后按照每帧的颜色格式指示信息显示所述动画文件。
该方法包括预先读取动画文件的文件头,并从文件头中获取动画文件的帧数,该方法进一步包括,在步骤B后,按照每帧的颜色格式指示信息以及动画文件的帧数显示该动画文件。
该方法包括预先读取动画文件的文件头,并从文件头中获取每帧的帧显示时间信息,步骤B进一步按照每帧的帧显示时间信息,确定显示所述动画文件中各帧所采用的时间,然后按照每帧的颜色格式指示信息以及每帧的帧显示时间信息显示所述动画文件。
从上述技术方案中可以看出,在本发明中,首先读取动画文件中各帧的图像块,以获取每帧图像块中的颜色格式指示信息;然后按照每帧的颜色格式指示信息,确定显示动画文件中各帧所采用的颜色格式。由此可见,应用本发明后,动画文件中各帧的颜色格式不再固定为单一的256色,而是可以在各帧图像块中分别设置颜色格式,所以每帧的颜色格式可以为任意类型,并且能够根据需要来调整颜色格式,从而显著地提高了动画的颜色质量。
另外,在本发明中,由于能够获取每帧图像块中的高度指示信息和/或宽度指示信息,从而能够确定灵活显示动画文件中各帧的高度和/或宽度。而且,由于能够获取每帧图像块中每帧图像块中的帧显示时间信息,能够在时间上灵活显示动画文件中各帧,实现了可变帧率。因此,应用本发明以后,动画文件的表现形式显然更加丰富。
同时,在本发明中,帧显示时间为1毫秒的整数倍,远超过GIF文件的10毫秒精度,因此本发明的动画文件播放时间精度也获得了极大地提高。另外,由于可以单独设置每一帧的播放时间,这样当动画需要播放一个静态场景时,不需要制作多帧相同的图片,只需要把该帧图片的播放时间设置得较长即可,从而节省了工作量并且能够显著地缩小动画文件大小。
附图说明
图1为现有技术中GIF文件的结构示意图。
图2为根据本发明实施例的动画文件的示范性结构示意图。
图3为根据本发明实施例的动画文件读取方法的示范性流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明的主要思想是针对现有GIF文件的不足,在动画文件各帧的图像块中设置颜色格式指示信息,从而在读取动画文件的过程中,能够按照每帧的颜色格式指示信息确定动画文件中各帧所采用的颜色格式,从而能够根据需要来调整颜色格式,并显著地提高动画的颜色质量。
图2为根据本发明实施例的动画文件的示范性结构示意图。如图2所示,该动画文件包括文件头以及各帧的图像块。文件头一般位于动画文件的最前面,用来描述文件中包括的帧数、每帧的时间间隔,以及每帧的大小等信息。
具体地,文件头中可以包括动画文件的格式、版本号、帧数、每帧的时间间隔、每帧的大小、每帧的显示时间等信息。表1为根据本发明实施例的动画文件的文件头的示意表,其中该动画有2帧,每帧的时间间隔为1毫秒,第一帧存储需要3616字节,第二帧存储需要1816字节,第一帧播放45毫秒,第二帧播放150毫秒,并且文件头中预留有4个字节。可选地,当不关心播放时间时,也可以在文件头中不记录每帧的播放时间。
表1为根据本发明实施例的动画文件的文件头的示意表。
字节 | 内容 | 说明 |
0-3 | 格式 | 标明该文件的具体格式。 |
4-7 | 0 | 现在暂时没有使用,可以填0 |
8-11 | 0 | 版本号 |
12-15 | 2 | 该动画有2帧 |
16-19 | 1 | 此处1表示下面28-35有播放时间的数据,如果填0就表示没有数据 |
20-23 | 3616 | 第一帧存储需要3616字节 |
24-27 | 1816 | 第二帧存储需要1816字节 |
28-31 | 45 | 第一帧播放45毫秒 |
32-35 | 150 | 第二帧播放150毫秒 |
表1
可以通过各种方式来定义文件头,比如通过各种面对对象的编程语言等。例如,假设一张动画文件有10帧,那么可以定义文件头:
char szName[4]; //4个字节标志该文件的类型
UINT unFlag; //以后扩展用,现在没使用,填0
UINT unVersion; //版本号,用来控制该文件格式改进后的兼容性
UINT unFrameNumber; //该动画有多少张图片组成
UINT unHaveDelay; //是否有每张图片的播放时间数据
UINT unSize[10]; //每张图片存储的信息有多大,单位是字节
UINT underlay[10]; //每张图片显示多少时间,单位是毫秒
具体地,每帧的图像块中包括该帧的颜色格式指示信息,用于标明该帧的颜色格式,可选的颜色格式有256色、6万色、1671万色、42亿色等。优选地,每帧的图像块中进一步包括高度指示信息,用于标明该帧的图像高度;每帧的图像块中还可以进一步包括宽度指示信息,用于标明该帧的图像宽度;每帧的图像块还可以进一步包括每行占用存储空间数,用于标明每行读取的动画文件的存储数据。显然,每帧的图像块中还应该包括存放的颜色数据。
表2为根据本发明实施例的图像块的结构示意表。由表2可知,在该实施例中,该帧图片宽度为30像素、高度为30像素,该帧图片每行占用存储空间120字节,并且使用32位色。
字节 | 内容 | 说明 |
0-3 | 30 | 该帧图片宽度30像素 |
4-7 | 30 | 该帧图片高度30像素 |
8-11 | 120 | 该帧图片每行占存储空间120字节 |
12-15 | 1 | 该帧图片使用32位色 |
注:下面的3600字节表示每个像素的颜色 | ||
16-19 | 0x70FF0000 | 第1个点的颜色 |
…… | 后面其他点的颜色值 | |
3612-3615 | 0xFF000000 | 最后一个点的颜色 |
表2
同样,可以通过各种方式来定义图像块,比如通过各种面对对象的编程语言等。例如:
int w; //图像宽度
int h; //图像高度
int pitch; //每行图像数据需要的字节数
int attrib; //颜色质量,用来标明这张图片的是256色、6万、1671万还是42亿色
unsigned char data[];//从这里开始,连续存放每个点的颜色数据,长度为h*pitch
在本发明中,每帧图片的颜色质量可以是不固定的。可以在图像块的开始位置对颜色质量予以保存,即上面的整数“attrib”。可选地,当attrib等于0时,表示该图片使用256色;当attrib等于1时,表示使用42亿色,等等。当需要颜色质量很高的时候,可以将attrib设置为1,表示该图片使用42亿色,则后面的图像数据存放的便是清晰的图片数据。当图片只需要256种颜色时,则将attrib字段设置为0。
以上详细说明了每帧图片可以使用不同的颜色质量,然而本发明并不仅限于固定的几种颜色质量。由于attrib是整数,当有新的图片质量需要支持时,只需要增加一个以前没有的值予以对应即可。比如:假如需要使用一帧黑白图片,则可以新增加一个attrib值5,在读取动画文件时,如果发现attrib值为5,则可以获知后面存放的数据为黑白图片。
以上详细描述了本发明的动画文件格式及其设置方法,下面说明如何读取本发明的动画文件。
图3为根据本发明实施例的动画文件读取方法的示范性流程示意图。如图3所示,该方法包括:
步骤301:读取动画文件中各帧的图像块,以获取每帧图像块中的颜色格式指示信息。
在这里,在读取动画文件的过程中,获取保存在各帧图像块中的颜色格式指示信息。此处还可以预先读取动画文件的文件头,以预先获取保存在文件头中的帧数、每帧的时间间隔,以及每帧的大小等信息。而且,颜色格式指示信息为256色指示信息、6万色指示信息、1671万色指示信息、42亿色指示信息中的任意一种,其中各帧的颜色格式指示信息可以不完全相同,也可以完全相同,从而满足根据需要设置颜色格式的需求。
步骤302:按照每帧的颜色格式指示信息,确定显示所述动画文件中各帧所采用的颜色格式。
当获取每帧的颜色格式指示信息后,即将其确定为显示动画文件中各帧所采用的颜色格式,然后可以根据颜色格式指示信息对各帧进行显示。
以上过程中,步骤301中可以进一步获取每帧图像块中的高度指示信息,步骤302中可以进一步按照每帧的高度指示信息,确定显示动画文件中各帧所采用的高度,并且动画文件中各帧的高度指示信息可以完全相同,也可以不完全相同,从而能够灵活设置各帧的显示高度。
以上过程中,步骤301中可以进一步获取每帧图像块中的宽度指示信息,步骤302中可以进一步按照每帧的宽度指示信息,确定显示动画文件中各帧所采用的宽度,并且动画文件中各帧的宽度指示信息可以完全相同,也可以不完全相同,从而能够灵活设置各帧的显示宽度。
以上过程中,步骤301中可以进一步获取每帧图像块中的帧显示时间信息,步骤302中可以进一步按照每帧的帧显示时间信息,确定显示动画文件中各帧所采用的时间,并且动画文件中各帧的帧显示时间信息可以完全相同,也可以不完全相同,从而能够灵活设置各帧的显示时间。在这里,帧显示时间优选为1毫秒的整数倍。
以上过程中,步骤301中可以进一步获取每帧图像块中的每行占用存储空间数,步骤302中可以进一步按照每帧的每行占用存储空间数,确定每行读取的动画文件的存储数据。
以上过程中,可以在步骤302后按照每帧的颜色格式指示信息显示动画文件。
以上过程中,可以在步骤301之前预先读取动画文件的文件头,并从文件头中获取各帧图片的播放时间间隔,然后步骤302后,按照每帧的颜色格式指示信息以及各帧图片的播放时间间隔显示该动画文件。
以上过程中,可以在步骤301之前预先读取动画文件的文件头,并从文件头中获取每帧的帧显示时间信息,步骤302中进一步按照每帧的帧显示时间信息,确定显示动画文件中各帧所采用的时间,然后按照每帧的颜色格式指示信息以及每帧的帧显示时间信息显示所述动画文件。
综上所述,在本发明中,首先,动画文件用到的所有图片和信息存放在一个文件中,非常便于方便管理;而且,动画中的每张图片可以根据对颜色质量要求的不同,合理存储,在需要清晰效果的地方存储颜色质量高、占用空间大的图片,在不需要太清晰的地方存放颜色质量低、占用空间少的图片,从而可以减小整个文件大小;另外,由于帧率可变,所以能够减小文件存储的大小,非常利于网上传输,并且帧率可变化让动画设计者创作时可以更加灵活。
本发明可以通过多种形式应用到各种动画文件处理系统以及计算机系统中。比如可以应用到诸如个人计算机、个人数据助理(PDA)、膝上型电脑等计算设备中,或者也可以应用到任意类型的网络服务器中,同时还可以应用到具有储存在机器可读数据介质上的程序代码工具的计算机软件产品中,该软件可以运行于计算机或数字信号处理器上。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1、一种动画文件读取方法,其特征在于,该方法包括以下步骤:
A、读取动画文件中各帧的图像块,以获取每帧图像块中的颜色格式指示信息;
B、按照每帧的颜色格式指示信息,确定显示所述动画文件中各帧所采用的颜色格式。
2、根据权利要求1所述的动画文件读取方法,其特征在于,所述的颜色格式指示信息为256色指示信息、6万色指示信息、1671万色指示信息、42亿色指示信息中的任意一种。
3、根据权利要求1所述的动画文件读取方法,其特征在于,步骤A中进一步获取每帧图像块中的高度指示信息,步骤B进一步按照每帧的高度指示信息,确定显示所述动画文件中各帧所采用的高度。
4、根据权利要求1所述的动画文件读取方法,其特征在于,步骤A中进一步获取每帧图像块中的宽度指示信息,步骤B进一步按照每帧的宽度指示信息,确定显示所述动画文件中各帧所采用的宽度。
5、根据权利要求1所述的动画文件读取方法,其特征在于,步骤A中进一步获取每帧图像块中的帧显示时间信息,步骤B进一步按照每帧的帧显示时间信息,确定显示所述动画文件中各帧所采用的时间。
6、根据权利要求5所述的动画文件读取方法,其特征在于,所述帧显示时间为1毫秒的整数倍。
7、根据权利要求1所述的动画文件读取方法,其特征在于,步骤A中进一步获取每帧图像块中的每行占用存储空间数,步骤B进一步按照每帧的每行占用存储空间数,确定每行读取的动画文件的存储数据。
8、根据权利要求1-7中任一项所述的动画文件读取方法,其特征在于,该方法进一步包括,在步骤B后按照每帧的颜色格式指示信息显示所述动画文件。
9、根据权利要求1所述的动画文件读取方法,其特征在于,该方法包括预先读取动画文件的文件头,并从文件头中获取动画文件的帧数,该方法进一步包括,在步骤B后,按照每帧的颜色格式指示信息以及动画文件的帧数显示该动画文件。
10、根据权利要求1所述的动画文件读取方法,其特征在于,该方法包括预先读取动画文件的文件头,并从文件头中获取每帧的帧显示时间信息,步骤B进一步按照每帧的帧显示时间信息,确定显示所述动画文件中各帧所采用的时间,然后按照每帧的颜色格式指示信息以及每帧的帧显示时间信息显示所述动画文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006100077437A CN101026772A (zh) | 2006-02-20 | 2006-02-20 | 一种动画文件读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006100077437A CN101026772A (zh) | 2006-02-20 | 2006-02-20 | 一种动画文件读取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101026772A true CN101026772A (zh) | 2007-08-29 |
Family
ID=38744601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006100077437A Pending CN101026772A (zh) | 2006-02-20 | 2006-02-20 | 一种动画文件读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101026772A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045444A (zh) * | 2010-11-19 | 2011-05-04 | 中国电信股份有限公司 | 手机及其动漫画实现方法、播放方法和播放器 |
CN101615298B (zh) * | 2009-08-12 | 2011-09-28 | 腾讯科技(深圳)有限公司 | 一种动画播放的方法和装置 |
CN105657428A (zh) * | 2016-01-25 | 2016-06-08 | 成都国铁电气设备有限公司 | 一种适用于接触网的红外图像压缩方法及系统 |
CN110189388A (zh) * | 2019-05-28 | 2019-08-30 | 上海哔哩哔哩科技有限公司 | 动画检测方法、可读存储介质及计算机设备 |
-
2006
- 2006-02-20 CN CNA2006100077437A patent/CN101026772A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615298B (zh) * | 2009-08-12 | 2011-09-28 | 腾讯科技(深圳)有限公司 | 一种动画播放的方法和装置 |
CN102045444A (zh) * | 2010-11-19 | 2011-05-04 | 中国电信股份有限公司 | 手机及其动漫画实现方法、播放方法和播放器 |
CN105657428A (zh) * | 2016-01-25 | 2016-06-08 | 成都国铁电气设备有限公司 | 一种适用于接触网的红外图像压缩方法及系统 |
CN110189388A (zh) * | 2019-05-28 | 2019-08-30 | 上海哔哩哔哩科技有限公司 | 动画检测方法、可读存储介质及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101587431B (zh) | 一种可以跨屏实现多屏播放视频的方法 | |
CN103559713B (zh) | 一种提供增强现实的方法及终端 | |
CN104469179A (zh) | 一种将动态图片结合到手机视频中的方法 | |
CN101916163B (zh) | 一种在时空变换下保持协同渐变的全景视频互动播放的方法 | |
JPS62242281A (ja) | デジタル映像発生器 | |
CN105100658A (zh) | 多屏显示控制方法和控制系统 | |
CN100466720C (zh) | 视频合成设备及视频合成方法 | |
JP2002116743A (ja) | 液晶表示装置の駆動方法 | |
CN102566952B (zh) | 应用于嵌入式数字娱乐点播系统的显示系统和方法 | |
CN106020758B (zh) | 一种荧幕拼接显示系统及方法 | |
CN103702110B (zh) | 一种多路视频信号质量监测设备 | |
CN109831662A (zh) | Ar眼镜屏幕的实时画面投射方法、装置及控制器和介质 | |
CN108235055A (zh) | Ar场景中透明视频实现方法及设备 | |
CN106713942A (zh) | 视频处理方法和装置 | |
US11810524B2 (en) | Virtual reality display device and control method thereof | |
CN101026772A (zh) | 一种动画文件读取方法 | |
CN107318008A (zh) | 全景视频播放方法及播放装置 | |
CN105808184A (zh) | 显示安卓2d应用图像的方法、装置及一种头戴设备 | |
CN103152536A (zh) | 一种可展示广告的数字电视终端 | |
CN113923354A (zh) | 基于多帧图像的视频处理方法、设备及虚拟背景拍摄系统 | |
CN101075344B (zh) | 一种对基于索引色的图像格式进行图像合并的方法 | |
KR20140077757A (ko) | 디지털 사이니지 출력 방법 | |
DE69726737D1 (de) | Verfahren zur überlagerung von kinematographischen bildern mit hohem realitätseffekt und herkömmlichen kinematographischen bildern auf dem selben streifen kinematographischen films | |
CN114638904A (zh) | 一种基于色彩过渡实现液晶拼接屏lcd画面补偿的色差系统及方法 | |
CN1828718A (zh) | 全屏幕画面的实时撷取装置及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20070829 |