Как я могу выполнить декодирование LZW на Java?

StackOverflow https://stackoverflow.com/questions/2424998

  •  19-09-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

Несжатый входной поток из Проект БиоЯва у меня сработало, когда мне нужно было распаковать файл .pax.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top