【发布时间】:2015-01-31 02:33:28
【问题描述】:
我有一个简单的 RGB 文件在 Photoshop 中保存为 TIFF,大约 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?我希望这指向的任何字典条目都是第二个像素的 4B/B0 对(很可能是),但是解压缩算法如何知道将 4B/B0 放置在 261 而不是 257?有人可以解释我在这里缺少什么吗? .tif 文件中的其他地方可能会表明这一点吗?非常感谢。 ~
【问题讨论】:
-
LZW 编码器总是生成较长的最后一个字符的字符串。 0x105 代码是下一个逻辑代码,它代表最后 4 个字符的字符串。这是您重复第一个 4 字节像素的方式。较低值的代码将是部分字符串(小于 4 个字节)或不完整的像素。
-
@BitBank - 谢谢 - 现在很有意义。我应该进一步解决它......