【问题标题】:Reading variable-length code from byte array [c#]从字节数组中读取可变长度代码 [c#]
【发布时间】:2011-05-01 09:06:48
【问题描述】:

我有一些数字,使用可变长度代码在字节数组中编码。 实际上是GIF89a图像数据,我必须解码。

由于用于 GIF 的 LZW 压缩创建了一系列可变长度代码,每个代码在 3 到 12 位之间,因此这些代码必须重新转换为一系列 8 位字节,这些字节将成为实际存储或传输的字符。这些代码形成一个比特流,就好像它们从右到左打包,然后一次取出 8 个比特进行输出。 假设每个字符 8 位的字符数组并使用 5 位代码 打包,示例布局类似于:

     +---------------+
  0  |               |    bbbaaaaa
     +---------------+
  1  |               |    dcccccbb
     +---------------+
  2  |               |    eeeedddd
     +---------------+
  3  |               |    ggfffffe
     +---------------+
  4  |               |    hhhhhggg
     +---------------+
           . . .
     +---------------+
  N  |               |
     +---------------+

我如何将其转换为常见的 [例如。整数]格式使用c#。一些功能?

另外,我不明白如何识别 - 当这个数字的大小(以位为单位)增加(+1 到大小)?我只知道第一个数字的大小?

【问题讨论】:

    标签: c# algorithm gif


    【解决方案1】:

    您想使用比特流。请参阅 http://www.codeproject.com/KB/cs/bitstream.aspx 了解一个很好的例子。

    【讨论】:

    • 谢谢!真的是帮到我了!但是,我仍然不明白什么时候应该更改代码大小(+1)......
    猜你喜欢
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多