1

我有一个在 Photoshop 中保存为 TIFF 的简单 RGB 文件,大约 1000 像素宽。第一行由 3 个像素组成,所有像素均为 16 进制 4B 红色、B0 绿色、78 蓝色,其余为白色。

条带是 LZW 编码的,条带的初始字节是:

80 12 D6 07 80 04 16 0C B4 27 A1 E0 D0 B8 64 36 ...(实际上只有前 7 个左右的字节对我的问题很重要。)

在 9 位段中,这是:

100000000 001001011 010110000 001111000 000000000 100000101 100000110 ...
  (0x100) (0x4B) (0xB0) (0x78) (0x00) (0x105) (0x106)

据我了解,256 (0x100) 是一个重置代码,但为什么 261 (0x105) 之后的第一个扩展代码是 257 而不是 257?我希望这指向的任何字典条目都是第二个像素的 4B/B0 对(很可能是),但是解压缩算法如何知道将 4B/B0 放置在 261 而不是 257?有人可以解释我在这里缺少什么吗?.tif 文件中的其他地方可能会表明这一点吗?非常感谢。~

4

1 回答 1

1

让我们来看看

256 (100h) is Clear
257 (101h) is EOF

在你的情况下,那么

4Bh B0h is 258 (102h)
B0h 78h is 259 (103h)
78h 00h is 260 (104h)
00h 00h is 261 (105h)

在我看来很好。LZW 实际上可以在添加到表中的字符之前编码一个字符。

于 2015-01-30T18:33:28.460 回答