CN100452879C - 一种不同类型文件之间的转换方法 - Google Patents
一种不同类型文件之间的转换方法 Download PDFInfo
- 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
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。
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)
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)
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 | 无敌科技(西安)有限公司 | 动画快速压缩及解压方法 |
-
2005
- 2005-11-04 CN CNB200510115492XA patent/CN100452879C/zh active Active
Patent Citations (4)
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 |