How can I do LZW decoding in Java?

I have a database which contains picture data stored as a binary blob. The documentation says the data is encoded using LZW. I thought that I could decode it using the Zip or GZip input streams found in the Java library, but it didn’t work – I got an exception that said the format of the data is not correct.

From what I’ve read, the library uses DEFLATE, which is not LZW. Also, I’ve read about some licensing problems for using the LZW algorithm.

What can I use to decode the data? Is there a library? Do I have to implement it myself? What about the licensing problems?


Here are a couple of links:

And there are others.

Indeed if the images are LZW compressed TIFF files, The Java Advanced Imaging API apparently supports decoding directly (though not encoding it seems).

Source: stackoverflow