AS3 TGA Codec

这段时间研究了一下AS下面的图像格式。测试了一下,TGA格式图片经zlib压缩之后一般比同样的PNG图片要小。32bit格式png经处理过后的Pixel数据能通过SetPixels直接传递给BitmapData,加载速度非常快。这里发个编解码器。

主要功能有:

  • 支持ImageType为1,2,9,10类型的图片。即带调色板,或者直接真彩色的格式都可以解码。同时可以解码RLE的调色板或者真彩格式。
  • 支持8bit、16bit、24bit、32bit色深的图片。32bit图片可以支持alpha通道。
  • 编码器只支持32bit带Alpha通道格式。并且输出图片按原点在左上角的方式输出。通过这个编码器编码过的图片在使用TgaDecoder解码时候能够直接转换为BitmapData,因此解码速度比其他TGA格式都要快。实际项目中使用时,应该尽量采用这种格式的tga。
  • 编码器和解码器都支持处理zlib压缩数据。可通过参数设置

由于有些偏门格式没有找到测试文件,所以测试不完全。

使用方法:

解码:

var dec:TgaDecoder = new TgaDecoder();

dec.Decode( barrData, m_cboxCompressed.selected);

var bmp:Bitmap = new Bitmap( dec.bitmapData);

编码:

var barrData:ByteArray = TgaEncoder.encode( m_bmpData.bitmapData, m_cboxCompressed.selected);

swc和示例项目下载:

TgaCodec