CN100452879C - 一种不同类型文件之间的转换方法 - Google Patents

一种不同类型文件之间的转换方法 Download PDF

Info

Publication number
CN100452879C
CN100452879C CNB200510115492XA CN200510115492A CN100452879C CN 100452879 C CN100452879 C CN 100452879C CN B200510115492X A CNB200510115492X A CN B200510115492XA CN 200510115492 A CN200510115492 A CN 200510115492A CN 100452879 C CN100452879 C CN 100452879C
Authority
CN
China
Prior art keywords
frame
file
palette
transparent color
gif
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
CNB200510115492XA
Other languages
English (en)
Other versions
CN1960488A (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.)
Tencent Technology Shenzhen Co Ltd
Lucent Technologies Shenzhen Co Ltd
Original Assignee
Tencent 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CNB200510115492XA priority Critical patent/CN100452879C/zh
Publication of CN1960488A publication Critical patent/CN1960488A/zh
Application granted granted Critical
Publication of CN100452879C publication Critical patent/CN100452879C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本发明公开一种不同类型文件之间的转换方法,该方法包括判断GIF文件当前帧的调色板中是否存在透明色,如果是,将GIF文件的当前帧复制到SWF文件的对应帧中,同时对应于GIF文件当前帧的调色板中的透明色,将SWF文件对应帧的调色板中的对应颜色设置为透明色;否则,将GIF文件的当前帧复制到SWF文件的对应帧中。该方法能够确保在不同类型文件对透明色处理方式不同的情况下,转换后依然不丢失透明色信息,从而保证转换后的文件显示效果更好。

Description

一种不同类型文件之间的转换方法
技术领域
本发明涉及计算机动画制作技术,尤其涉及一种不同类型文件之间的转换方法。
背景技术
在早期的计算机动画制作中,图像交互格式(GIF,Graphics InterchangeFormat)文件是主要的实现形式。如今,随着因特网的飞速发展,Flash技术开始慢慢地替代GIF格式的文件,成为制作网页多媒体动画最强有力的工具。Flash是由美国MACROMEDIA公司推出的一款多媒体动画制作软件。它是一种交互式动画设计工具,用它可以将音乐、声效、动画方便地融合在一起,制作出高品质的动画效果。
利用Flash技术可以制作出一种后缀名为SWF(Shockwave Format)的动画,这种格式的动画图像能够用比较小的体积来表现丰富的多媒体形式。在图像的传输方面,不必等到文件全部下载才能观看,而是可以边下载边观看,因此特别适合网络传输,特别是在传输速率不佳的情况下,也能取得较好的效果。事实也证明了这一点,SWF动画如今已被大量应用于Web网页进行多媒体演示与交互性设计。此外,SWF动画是基于矢量技术制作的,因此不管将画面放大和缩小多少倍,画面不会因此而有任何损害,并且也节省了动画文件的大小,在网络带宽有限的情况下提高网络传输的速度。总之,SWF格式的作品以其高清晰度的画质和小巧的体积,受到了越来越多网页设计者的青睐,也越来越成为网页动画和网页图片设计制作的主流,已成为网上动画的事实标准。
基于这种情况,常常需要将早期动画制作的GIF文件转换为Flash技术下的SWF文件。
GIF动画文件是通过多个不同内容的帧连续播放而形成的,其每一帧的内容都是一幅位图,由点阵信息构成。另外,每帧图像都对应一个调色板,调色板的颜色数不大于256种颜色,即GIF文件中每帧动画最多只有256种颜色,每种颜色都采用24位的RGB表示(R:Red,占8位;G:Green,占8位;B:Blue,占8位)。GIF文件支持透明色,如果GIF文件中的某一帧动画包含了透明色,则在调色板中透明色将占用一种颜色,即如果GIF文件中的某一帧包含了透明色,则该帧的颜色数最多是255种,将其中1种分配给透明色,该透明色用透明色索引AlphaPalette表示,它可以看作是256种颜色中的一种特殊颜色,不同的是它并不是由R、G、B的值表示的。
然而,在Flash动画的SWF文件中,虽然每帧动画也是由一个位图点阵和一个最多256种颜色的调色板组成,但不同的是SWF支持Alpha透明通道,即每种颜色采用32位的RGBA表示(R:Red,占8位;G:Green,占8位;B:Blue,占8位;A:Alpha,占8位),A表示透明通道Alpha的透明度,当A为0时,表示完全透明;当A为255时,表示完全不透明。这样,在SWF文件的某一帧中有透明色时,对应的A为0,而R、G、B值可以是任何值;在缺省的状态下,SWF文件中A为255,是完全不透明,由R、G、B的值来表示对应的颜色。
因此,当GIF文件转换为SWF文件时,除了将GIF文件中每一帧的位图信息直接拷贝到SWF文件的对应帧中外,还需要对每帧的调色板进行转换,将GIF基于RGB的调色板转换为SWF基于RGBA的调色板。目前采用的主要方法是将GIF文件某一帧的调色板中的R、G、B值直接拷贝到SWF文件对应帧的调色板中。由于GIF文件和SWF文件对透明色的处理方式不一样,并且SWF文件默认透明通道Alpha的值为255,所以GIF文件的透明色信息在直接拷贝过程中丢失,转换后的SWF文件中会因为丢失原来GIF文件中的透明色信息而使其动画显示效果不好。
发明内容
有鉴于此,本发明的目的在于提供一种不同类型文件之间的转换方法,通过该方法能够获取待转换文件的透明色信息,并将其转换到对应文件中,从而解决现有技术中转换后透明色信息丢失的问题。
为了实现上述目的,本发明提供一种不同类型文件之间的转换方法,该方法具体包括如下步骤:
A、判断GIF文件当前帧的调色板中是否存在透明色,如果是,执行步骤B;否则,执行步骤C;
B、将GIF文件的当前帧复制到SWF文件的对应帧中,同时对应于GIF文件当前帧的调色板中的透明色,将SWF文件对应帧的调色板中的对应颜色设置为透明色,然后将GIF文件的下一帧作为当前帧,返回执行步骤A;
C、将GIF文件的当前帧复制到SWF文件的对应帧中,将GIF文件的下一帧作为当前帧,返回执行步骤A。
步骤A中所述判断GIF文件当前帧的调色板中是否存在透明色为:
判断GIF文件当前帧的调色板中是否存在透明色索引;
步骤B包括:
将GIF文件该帧中的R、G、B值复制到SWF文件对应帧的调色板中,同时对应于GIF文件该帧调色板中的透明色索引,将SWF文件对应帧的调色板中对应的Alpha值置为0,然后将GIF文件的下一帧作为当前帧,返回执行步骤A;
步骤C包括:
将GIF文件当前帧的调色板中的所有R、G、B值拷贝到SWF文件对应帧的调色板中,同时将SWF文件该帧中的所有Alpha值置为255,然后将GIF文件的下一帧作为当前帧,返回执行步骤A。
所述判断GIF文件当前帧的调色板中是否存在透明色索引可以是:
判断GIF文件当前帧中的透明色索引是否为0至GIF文件该帧的颜色数减一中的数。
所述步骤C中,将SWF文件对应帧的调色板中的Alpha值置为0可以进一步包括:
将SWF文件对应帧的调色板中的R、G、B值都置为0。
从以上技术方案可以看到,本发明提供的一种不同类型文件之间的转换方法,能够在两种文件对透明色处理方式不一样的情况下,仍然将待转换文件中的透明色信息转换到对应文件中去,避免转换后的文件丢失原文件中的透明色信息,从而使转换后文件的动画显示效果更好。
附图说明
图1是将GIF文件的透明色转换到SWF文件中的操作方法流程图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明是以将GIF文件转换为SWF文件为例对透明色转换进行说明的。在将GIF文件转换为SWF文件的过程中,除了要对每帧的位图信息进行转换之外,还需要对每帧的调色板进行转换。现有技术中由于GIF文件和SWF文件对透明色的处理方式不同,所以转换后的SWF文件会丢失原GIF文件中的透明色信息,本发明通过如下的技术处理对透明色进行转换。
为了方便描述,为GIF文件中某帧调色板的每种颜色建立关于GifPalette[i].r、GifPalette[i].g和GifPalette[i].b的列表,以用R、G、B的值来分别表示每种颜色,并假设GIF文件该帧中的颜色数为GifColorCount(不大于256),其中i取从0到GifColorCount-1的数,于是可以看作是在调色板的列表中第i种颜色就由GifPalette[i].r、GifPalette[i].g和GifPalette[i].b所代表的颜色混合而成的。另外,在GIF文件的该帧调色板中如果有透明色,还会存在透明色索引AlphaPalette[i],透明色索引AlphaPalette所表示的透明色可能是第0种颜色到第GifColorCount-1种颜色中的任何一个。
在创建SWF文件的对应帧时,在SWF文件的该对应帧中同样存在关于SwfPalette[i].r、SwfPalette[i].g、SwfPalette[i].b和SwfPalette[i].a列表的调色板,以用R、G、B、A的值来分别表示每种颜色。假设SWF文件的该帧中的颜色数为SwfColorCount,其中i取从0到SwfColorCount-1的数,于是在SWF文件的调色板列表中,第i种颜色是由SwfPalette[i].r、SwfPalette[i].g、SwfPalette[i].b和SwfPalette[i].a所代表的颜色混合而成的。缺省的情况下SwfPalette[i].a的值是255,该种颜色由SwfPalette[i].r、SwfPalette[i].g和SwfPalette[i].b的值表示;当SwfPalette[i].a为0时,无论SwfPalette[i].r、SwfPalette[i].g、SwfPalette[i].b的值是多少,都表示该种颜色是透明色。
在本实施例中,当GIF文件某一帧中的透明色索引AlphaPalette为i,i是0~GifColorCount-1中的值时,表示在GIF文件该帧的调色板中,第i种颜色是透明色,则转换过程中,令SWF文件对应帧中的第i种颜色是透明色,于是令表示透明度的SwfPalette[i].a为0,即可将GIF文件中的透明色转换到SWF文件中;当AlphaPalette为-1时,则说明GIF文件该帧的调色板中没有透明色,则只需直接拷贝相应的R、G、B值即可。具体的透明色转换操作步骤如下:
步骤101:获取GIF文件当前帧的调色板颜色数GifColorCount,并赋值给SWF文件对应帧中调色板的颜色数SwfColorCount;
步骤102:判断GIF文件当前帧的调色板中是否存在透明色索引,即判断透明色索引AlphaPalette是0~GifColorCount-1中的数还是为-1,如果AlphaPalette是0~GifColorCount-1中的数i,则表明GIF文件当前帧的调色板中第i种颜色是透明色,执行步骤103;否则,即透明色索引AlphaPalette为-1,表明GIF文件当前帧的调色板中不存在透明色,则执行步骤104;
步骤103:由于GIF文件当前帧的调色板中第i种颜色是透明色,所以将SWF文件的对应帧的调色板中第i种表示透明度的SwfPalette[i].a置为0,而对于除了第i种颜色以外的其它颜色,可以直接从GIF文件该帧中的GifPalette.r、GifPalette.g和GifPalette.b的列表中拷贝到SWF文件的对应帧的SwfPalette.r、SwfPalette.g和SwfPalette.b列表中,然后,将GIF文件的下一帧作为当前帧,返回执行步骤101;
步骤104:由于GIF文件当前帧的调色板中不存在透明色,所以将GIF文件该帧中的GifPalette[i].r、GifPalette[i].g和GifPalette[i].b的列表值分别拷贝到SWF文件对应帧的SwfPalette[i].r、SwfPalette[i].g和SwfPalette[i].b列表中,同时将SwfPalette[i].a置为255,表示完全不透明,其颜色由SwfPalette[i].r、SwfPalette[i].g和SwfPalette[i].b来决定,然后将GIF文件的下一帧作为当前帧,返回执行步骤101。
在步骤102中,用AlphaPalette为-1表示GIF文件的这一帧中不包括透明色,实际操作中,可以将GIF文件中透明色索引AlphaPalette设为除0~GifColorCount-1以外的任何值,以此来表示在GIF文件的某一帧中没有透明色。
此外,在步骤103中,将SWF文件调色板中表示透明度的SwfPalette[i].a置为0,而没有考虑SWF文件的调色板中SwfPalette[i].r、SwfPalette[i].g和SwfPalette[i].b的值,这是因为只要表示透明度的SwfPalette[i].a置为0,其它的SwfPalette[i].r、SwfPalette[i].g和SwfPalette[i].b为任何值都可以,都表示透明。在实际操作中,为了简单起见,可以将SwfPalette[i].r、SwfPalette[i].g、SwfPalette[i].b与SwfPalette[i].a一样都置为0。
以上仅以将GIF文件转换为SWF文件为例对透明色转换进行说明,然而,上述方法同样适用于从SWF文件转换为GIF文件,或者其它对透明色处理方式不一样的两种不同类型文件之间的转换。
以上所述,仅为本发明的较佳实施例而已,并非用以限定本发明的保护范围。

Claims (4)

1、一种不同类型文件之间的转换方法,其特征在于,该方法包括如下步骤:
A、判断GIF文件当前帧的调色板中是否存在透明色,如果是,执行步骤B;否则,执行步骤C;
B、将GIF文件的当前帧复制到SWF文件的对应帧中,同时对应于GIF文件当前帧的调色板中的透明色,将SWF文件对应帧的调色板中的对应颜色的Alpha值设置为0,然后将GIF文件的下一帧作为当前帧,返回执行步骤A;
C、将GIF文件的当前帧复制到SWF文件的对应帧中,将GIF文件的下一帧作为当前帧,返回执行步骤A。
2、如权利要求1所述的方法,其特征在于,步骤A中所述判断GIF文件当前帧的调色板中是否存在透明色为:
判断GIF文件当前帧的调色板中是否存在透明色索引;
步骤B包括:
将GIF文件该帧中的R、G、B值复制到SWF文件对应帧的调色板中,同时对应于GIF文件该帧调色板中的透明色索引,将SWF文件对应帧的调色板中对应的Alpha值置为0,然后将GIF文件的下一帧作为当前帧,返回执行步骤A;
步骤C包括:
将GIF文件当前帧的调色板中的所有R、G、B值拷贝到SWF文件对应帧的调色板中,同时将SWF文件该帧中的所有Alpha值置为255,然后将GIF文件的下一帧作为当前帧,返回执行步骤A。
3、如权利要求2所述的方法,其特征在于,所述判断GIF文件当前帧的调色板中是否存在透明色索引为:
判断GIF文件当前帧中的透明色索引是否为0至GIF文件该帧的颜色数减一中的数。
4、如权利要求2所述的方法,其特征在于,所述步骤C中,将SWF文件对应帧的调色板中的Alpha值置为0进一步包括:
将SWF文件对应帧的调色板中的R、G、B值都置为0。
CNB200510115492XA 2005-11-04 2005-11-04 一种不同类型文件之间的转换方法 Active CN100452879C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200510115492XA CN100452879C (zh) 2005-11-04 2005-11-04 一种不同类型文件之间的转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200510115492XA CN100452879C (zh) 2005-11-04 2005-11-04 一种不同类型文件之间的转换方法

Publications (2)

Publication Number Publication Date
CN1960488A CN1960488A (zh) 2007-05-09
CN100452879C true CN100452879C (zh) 2009-01-14

Family

ID=38071947

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200510115492XA Active CN100452879C (zh) 2005-11-04 2005-11-04 一种不同类型文件之间的转换方法

Country Status (1)

Country Link
CN (1) CN100452879C (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101646023B (zh) * 2009-09-02 2011-06-08 深圳市万兴软件有限公司 一种视频文件转换为swf文件的方法及系统
CN102411793A (zh) * 2011-08-10 2012-04-11 上海福家网络科技有限公司 一种三维场景中的物体显示方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1057121A (zh) * 1990-06-04 1991-12-18 国际商业机器公司 图形属性双向转换描述文件
CN1414475A (zh) * 2001-10-25 2003-04-30 北京联合创新科技有限公司 Swf文件格式的作品转换为视频作品的方法
JP2004187132A (ja) * 2002-12-05 2004-07-02 Sophia Co Ltd 立体画像表示装置
CN1555198A (zh) * 2003-12-23 2004-12-15 无敌科技(西安)有限公司 动画快速压缩及解压方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1057121A (zh) * 1990-06-04 1991-12-18 国际商业机器公司 图形属性双向转换描述文件
CN1414475A (zh) * 2001-10-25 2003-04-30 北京联合创新科技有限公司 Swf文件格式的作品转换为视频作品的方法
JP2004187132A (ja) * 2002-12-05 2004-07-02 Sophia Co Ltd 立体画像表示装置
CN1555198A (zh) * 2003-12-23 2004-12-15 无敌科技(西安)有限公司 动画快速压缩及解压方法

Also Published As

Publication number Publication date
CN1960488A (zh) 2007-05-09

Similar Documents

Publication Publication Date Title
CN101632293B (zh) 用以打印包含透明物的艺术作品的系统
CN106611435A (zh) 动画处理方法和装置
US20080048044A1 (en) Barcode Encoding and Decoding
US20060232602A1 (en) Font generation system
JP5149430B2 (ja) 画像処理方法、ファイル変換方法、及び、ファイル変換プログラム
CN102141985A (zh) 一种文稿在线编辑器
CN107562498A (zh) 基于安卓平台的动画效果实现方法、装置和终端设备
CN100452879C (zh) 一种不同类型文件之间的转换方法
US7747951B2 (en) System and method for processing version content
WO2009036207A3 (en) Byte representation for enhanced image compression
CN108874373A (zh) 向网页内插入信息的方法及装置、显示终端及存储介质
CN111028316A (zh) 一种基于移动终端的图片编辑方法及跨移动终端的图片编辑方法
KR20010062456A (ko) 화상 데이터 처리 방법 및 장치와 컴퓨터 프로그램 제품
CN101616270A (zh) 一种使用滤镜的字幕生成方法
JP5650275B2 (ja) プログラム
CN101863172B (zh) 一种有声读物的印制方法
CN101616265A (zh) 一种使用滤镜的字幕生成装置
CN113344633A (zh) 广告图片处理方法及装置
JP5255165B2 (ja) プログラム
CN100469145C (zh) 一种不同类型文件之间的转换方法
CN1960490B (zh) 一种将gif文件转换为swf文件的方法
CN106484823A (zh) 一种css文件的修改方法、装置及计算机可读介质
CN106101482B (zh) 一种网络在线印刷cmyk文件处理方法及色彩转换系统
KR20210068593A (ko) 하드웨어 인코더 및 디코더에 대한 hdr 하드웨어 프로세서 인라인을 위한 방법 및 장치
JP5199512B2 (ja) プログラム、及び、画像処理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant