2010-03-11 18 views
6

Tengo una base de datos que contiene datos de imágenes almacenados como un blob binario. La documentación dice que los datos están codificados usando LZW. Pensé que podría decodificarlo usando las secuencias de entrada Zip o GZip que se encuentran en la biblioteca de Java, pero no funcionó. Obtuve una excepción que decía que el formato de los datos no era correcto.¿Cómo puedo hacer la decodificación LZW en Java?

Según lo que he leído, la biblioteca utiliza DEFLATE, que no es LZW. Además, he leído sobre algunos problemas de licencia para usar el algoritmo LZW.

¿Qué puedo usar para decodificar los datos? ¿Hay una biblioteca? ¿Debo implementarlo yo mismo? ¿Qué pasa con los problemas de licencia?

+2

El algoritmo LZW en sí mismo fue patentado, pero las patentes expiraron en 2003. –

Respuesta

1

Aquí hay un par de enlaces:

y hay otros.

De hecho, si las imágenes son archivos TIFF comprimidos LZW, el Java Advanced Imaging API aparentemente admite la decodificación directamente (aunque no es encoding, parece).

+0

No son archivos TIFF, son solo los datos de trama de imagen, y solo me interesa decodificar. Gracias por los recursos! –

1

También puede probar con 7-Zip JBinding que utiliza la biblioteca 7zip internamente. Es bastante fácil de usar.

1

Pasé por una cantidad sorprendente de implementaciones de LZW antes de encontrar una que funcionara para mi caso.

UncompressedInputStream del BioJava project funcionó para mí, cuando necesitaba descomprimir un archivo .pax.

Cuestiones relacionadas