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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。