Как я могу сделать LZW декодирование на Java? - PullRequest
6 голосов
/ 11 марта 2010

У меня есть база данных, которая содержит данные изображения, хранящиеся в виде двоичного двоичного объекта. В документации говорится, что данные кодируются с использованием LZW. Я думал, что смогу декодировать его, используя входные потоки Zip или GZip, найденные в библиотеке Java, но это не сработало - я получил исключение, которое говорит о неправильном формате данных.

Из того, что я прочитал, библиотека использует DEFLATE, который не является LZW. Кроме того, я читал о некоторых проблемах лицензирования для использования алгоритма LZW.

Что я могу использовать для декодирования данных? Есть ли библиотека? Должен ли я реализовать это сам? А как насчет проблем с лицензированием?

Ответы [ 4 ]

2 голосов
/ 17 августа 2015

Я знаю, что вопрос старый, но я просто хотел добавить отличный ресурс о LZW:

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

Более конкретно, об использовании LZW в изображениях GIF,он довольно хорошо объясняет алгоритмы сжатия и распаковки.

1 голос
/ 11 марта 2010

Вы также можете попробовать 7-Zip JBinding , который использует библиотеку 7zip внутри. Это довольно легко использовать.

1 голос
/ 23 ноября 2012

Я прошел через удивительное количество реализаций LZW, прежде чем нашел подходящую для моего случая.

UncompressedInputStream из проекта BioJava работал для меня, когда мне нужно было распаковать файл .pax.

1 голос
/ 11 марта 2010

Вот пара ссылок:

А есть и другие.

Действительно, если изображения являются файлами TIFF со сжатием LZW, Java Advanced Imaging API , по-видимому, поддерживает декодирование напрямую (хотя, кажется, не кодировка ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...