文件压缩的方法及装置的制造方法

文档序号:8342480阅读:314来源:国知局
文件压缩的方法及装置的制造方法
【技术领域】
[0001] 本发明涉及数据处理领域,尤其涉及一种文件压缩的方法及装置。
【背景技术】
[0002] SWF(ShockWaveFlash)是一种支持矢量和点阵图形的动画文件格式,被广泛应 用于网页设计,动画制作等领域,SWF文件通常也被称为Flash文件。由于SWF文件包含图 像,声音和脚本等元素,因此其文件大小往往较大。在使用过程中出现SWF文件运行速度慢 的问题,例如页面载入过慢或游戏安装包解压时间过长等问题。
[0003] 现有技术中,在减小SWF的文件大小时,采用下述方式:Flash开发人员在创作SWF 时人工对SWF中的符号、图片进行替换,进而降低SWF的文件大小。例如:将SWF中的位图 替换为矢量图。由于矢量图占用的存储空间小于位图占用的存储空间,因此能够达到减小 SWF的文件大小。
[0004] 在实现上述文件压缩的过程中,发明人发现现有技术中至少存在如下问题:Flash 开发人员在对SWF中的图片进行逐一替换时,需要通过第三方软件对每一副图片进行转 码,并进行人工替换操作(用转码后的矢量图替换原有的位图),文件压缩效率低。当SWF中 的图片较多时,将花费大量的时间进行人工替换操作。

【发明内容】

[0005] 本发明提供的一种文件压缩的方法及装置,能够解决人工压缩SWF时,文件压缩 效率低的问题。
[0006] -方面,本发明提供了一种文件压缩的方法,所述方法包括:
[0007] 从SWF文件的各标签中,提取图像数据;
[0008] 对每个图像数据分别进行压缩;
[0009] 将压缩后的图像数据存储到各图像数据对应的各标签中。
[0010] 另一方面,本发明还提供了一种文件压缩的装置,所述装置包括:
[0011] 提取单元,用于从SWF文件的各标签中,提取图像数据;
[0012] 压缩单元,用于对提取单元提取的每个图像数据分别进行压缩;
[0013] 存储单元,用于将压缩单元压缩后的图像数据存储到各图像数据对应的各标签 中。
[0014] 本发明提供的文件压缩的方法及装置,能够从SWF文件的各标签中,提取图像数 据;对每个图像数据分别进行压缩;将压缩后的图像数据存储到各图像数据对应的各标签 中。现有技术采用人工提取,效率低。本发明中,能够在SWF的标签中自动的提取出图像数 据,在对图像数据进行压缩之后,自动将图像数据回存到标签中,进而达到对SWF文件进行 数据压缩的效果,提高SWF文件的压缩效率。
【附图说明】
[0015] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0016] 图1为本发明实施例中第一个文件压缩的方法的流程图;
[0017] 图2为本发明实施例中第二个文件压缩的方法的流程图;
[0018] 图3为本发明实施例中SWF文件的数据格式的示意图;
[0019] 图4为本发明实施例中第三个文件压缩的方法的流程图;
[0020] 图5为本发明实施例中第四个文件压缩的方法的流程图;
[0021] 图6为本发明实施例中第五个文件压缩的方法的流程图;
[0022] 图7为本发明实施例中第六个文件压缩的方法的流程图;
[0023] 图8为本发明实施例中一个文件压缩的装置的结构示意图;
[0024] 图9为本发明实施例中另一个文件压缩的装置的结构示意图。
【具体实施方式】
[0025] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0026] 本发明实施例提供了一种文件压缩的方法,如图1所示,所述方法应用于电子设 备中,所述电子设备用于运行和维护SWF文件,所述方法包括:
[0027] 步骤101、从SWF文件的各标签中,提取图像数据。
[0028]SWF文件具有多个标签,每个标签中均可包含有图像数据。图像数据包括JPEG图 像和RGB位图。
[0029] 步骤102、对每个图像数据分别进行压缩。
[0030] 压缩方式可采用现有的压缩方式,例如JPEG压缩算法、zlib压缩算法。
[0031] 步骤103、将压缩后的图像数据存储到各图像数据对应的各标签中。
[0032] 如果步骤101从标签A中提取了图像数据,在步骤102对图像数据进行压缩之后, 步骤103中,将压缩后的图像数据"回填"到标签A中。
[0033] 本发明实施例提供的文件压缩的方法,能够从SWF文件的各标签中,提取图像数 据;对每个图像数据分别进行压缩;将压缩后的图像数据存储到各图像数据对应的各标签 中。现有技术采用人工提取,效率低。本发明中,能够在SWF的标签中自动的提取出图像数 据,在对图像数据进行压缩之后,自动将图像数据回存到标签中,进而达到对SWF文件进行 数据压缩的效果,提高SWF文件的压缩效率。
[0034] 本发明实施例还提供了一种文件压缩的方法,作为对图1所示方法的进一步说 明,如图2所示,在步骤101、从SWF文件的各标签中,提取图像数据。之前,所述方法还包 括:
[0035] 步骤201、读取SWF文件头中的压缩算法。
[0036]SWF文件的数据格式有两种,如图3所示,一种由文件头、文件属性标签和若干数 据标签组成,另一种由文件头和若干数据标签组成,所述数据标签用于表示SWF的数据内 容。文件头前8个字节的数据格式如表1所示,其中,FWS为无压缩,CWS为采用zlib压缩, ZWS为采用LZMA压缩,版本为SWF文件的版本,SWF文件的版本越高对运行SWF文件的应用 程序的版本要求越高。标识用于标识SWF所采用的压缩算法。通过读取文件头中的标识, 能够得到SWF所采用的压缩算法。
[0037]表1
【主权项】
1. 一种文件压缩的方法,其特征在于,所述方法包括: 从SWF文件的各标签中,提取图像数据; 对每个图像数据分别进行压缩; 将压缩后的图像数据存储到各图像数据对应的各标签中。
2. 根据权利要求1所述的方法,其特征在于,在所述从SWF文件的各标签中,提取图像 数据的步骤之前,所述方法还包括: 读取SWF文件头中的压缩算法; 根据所述压缩算法所对应的解压算法对SWF文件进行解压,得到SWF文件头和至少一 个标签。
3. 根据权利要求2所述的方法,其特征在于,在所述将压缩后的图像数据存储到各图 像数据对应的各标签中的步骤之后,所述方法还包括: 从至少一种预设压缩算法中选取一种压缩算法; 根据选取的压缩算法对SWF文件除去文件头前8个字节的内容进行压缩; 将所述SWF文件头中记载的压缩算法,修改为选取的压缩算法; 根据所述选取的压缩算法更改所述SWF文件头中的版本号。
4. 根据权利要求1所述的方法,其特征在于,所述从SWF文件的各标签中,提取图像数 据的步骤,包括: 读取所述SWF中的各标签的标签头; 根据所述标签头中表示的标签长度,确定图像数据的起始位置; 从所述起始位置提取图像数据。
5. 根据权利要求4所述的方法,其特征在于,所述对每个图像数据分别进行压缩的步 骤,包括: 读取所述标签头中表示的标签类型; 根据所述标签类型确定图像数据的压缩算法; 根据确定的压缩算法对所述图像数据进行压缩。
6. 根据权利要求5所述的步骤,其特征在于,在所述根据确定的压缩算法对所述图像 数据进行压缩的步骤之前,所述方法还包括: 如果所述图像数据的数据格式为RGB图像,则将所述RGB图像转换为JPEG图像; 所述根据确定的压缩算法对所述图像数据进行压缩的步骤,包括: 根据转换后的JPEG图像确定压缩算法; 根据确定的压缩算法对转换后的JPEG图像进行压缩。
7. -种文件压缩的装置,其特征在于,所述装置包括: 提取单元,用于从SWF文件的各标签中,提取图像数据; 压缩单元,用于对提取单元提取的每个图像数据分别进行压缩; 存储单元,用于将压缩单元压缩后的图像数据存储到各图像数据对应的各标签中。
8. 根据权利要求7所述的装置,其特征在于,所述装置还包括: 读取单元,用于读取SWF文件头中的压缩算法; 解压单元,用于根据所述读取单元读取的所述压缩算法所对应的解压算法对SWF文件 进行解压,得到SWF文件头和至少一个标签。
9. 根据权利要求8所述的装置,其特征在于,所述装置还包括: 选取单元,用于从至少一种预设压缩算法中选取一种压缩算法; 压缩单元,用于根据所述选取单元选取的压缩算法对SWF文件除去文件头前8个字节 的内容进行压缩; 修改单元,用于将所述SWF文件头中记载的压缩算法,修改为所述选取单元选取的压 缩算法; 所述修改单元还用于根据所述选取的压缩算法更改所述SWF文件头中的版本号。
10. 根据权利要求7所述的装置,其特征在于,所述提取单元还用于: 读取所述SWF中的各标签的标签头; 根据所述标签头中表示的标签长度,确定图像数据的起始位置; 从所述起始位置提取图像数据。
11. 根据权利要求10所述的装置,其特征在于,所述压缩单元还用于: 读取所述提取单元提取的所述标签头中表示的标签类型; 根据所述标签类型确定图像数据的压缩算法; 根据确定的压缩算法对所述图像数据进行压缩。
12. 根据权利要求11所述的步骤,其特征在于,所述装置还包括: 转换单元,用于当所述提取单元提取的所述图像数据的数据格式为RGB图像时,将所 述RGB图像转换为JPEG图像; 所述压缩单元还用于: 根据转换后的JPEG图像确定压缩算法; 根据确定的压缩算法对转换后的肝EG图像进行压缩。
【专利摘要】本发明公开了一种文件压缩的方法及装置,涉及数据处理领域。能够解决人工压缩SWF时,文件压缩效率低的问题。所述方法包括:从SWF文件的各标签中,提取图像数据;对每个图像数据分别进行压缩;将压缩后的图像数据存储到各图像数据对应的各标签中。本发明主要应用于SWF文件优化的过程中。
【IPC分类】H03M7-30
【公开号】CN104660267
【申请号】CN201310589506
【发明人】王军, 黄飞跃, 吴永坚, 倪辉
【申请人】腾讯科技(上海)有限公司
【公开日】2015年5月27日
【申请日】2013年11月20日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1