LZWDecoder.cs
(开头部分) 8KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.IO;
/// <summary>
/// Gif使用的可变长度的LZW压缩算法解码器
/// </summary>
public class LZWDecoder
{
#region 变量
/// <summary>
/// GIF规定编码最大为12bit,最大值即为4096
/// </summary>
protected static readonly int MaxStackSize = 4096;
protected Stream stream;
#endregion
#region 构造函数
/// <summary>
/// 构造函数
/// </summary>
public LZWDecoder(Stream stream)
{
this.stream = stream;
}
#endregion
#region 私有方法
/// <summary>
/// 读取数据段
/// </summary>
byte[] ReadData()
{
int blockSize = Read();
return ReadByte(blockSize);
}
/// <summary>
/// 读取指定长度的字节字节
/// </summary>
byte[] ReadByte(int len)
{
byte[] buffer = new byte[len];
stream.Read(buffer, 0, len);
return buffer;
}
/// <summary>
/// 读取一个字节
/// </summary>
int Read()
{
return stream.ReadByte();
}
#endregion
#region 调用方法
/// <summary>
/// LZW压缩算法解码器
/// </summary>
/// <param name="width">长度</param>
/// <param name="height">高度</param>
后面还有 154 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。