如何在Java中进行LZW解码?

我有一个数据库,其中包含存储为二进制blob的图片数据。 文档说数据是使用LZW编码的。 我认为我可以使用Java库中的Zip或GZip输入流对其进行解码,但它不起作用 – 我得到一个例外,表示数据的格式不正确。

从我读过的,库使用DEFLATE,这不是LZW。 另外,我已经了解了使用LZW算法的一些许可问题。

我可以使用什么来解码数据? 有图书馆吗? 我必须自己实施吗? 许可问题怎么样?

这里有几个链接:

还有其他人。

实际上,如果图像是LZW压缩的TIFF文件,则Java Advanced Imaging API显然支持直接解码(尽管看起来不是编码 )。

我知道这个问题已经过时了,但我只想添加一个关于LZW的优秀资源:

http://www.matthewflickinger.com/lab/whatsinagif/lzw_image_data.asp

它更具体地说是在GIF图像中使用LZW,但它很好地解释了压缩和解压缩算法。

您也可以尝试使用内部使用7zip库的7-Zip JBinding 。 它很容易使用。

在找到适合我案例的LZW实现之前,我经历了大量的LZW实现。

当我需要解压缩.pax文件时, BioJava项目中的UncompressedInputStream为我工作。