muun-recovery/vendor/github.com/hhrutter/lzw
Santiago Lezica cef49eff22 Release 2.0.0 2021-01-29 18:51:08 -03:00
..
.gitignore Release 2.0.0 2021-01-29 18:51:08 -03:00
LICENSE Release 2.0.0 2021-01-29 18:51:08 -03:00
README.md Release 2.0.0 2021-01-29 18:51:08 -03:00
go.mod Release 2.0.0 2021-01-29 18:51:08 -03:00
reader.go Release 2.0.0 2021-01-29 18:51:08 -03:00
writer.go Release 2.0.0 2021-01-29 18:51:08 -03:00

README.md

Note

Background

  • PDF's LZWDecode filter comes with the optional parameter EarlyChange.
  • The type of this parameter is int and the defined values are 0 and 1.
  • The default value is 1.

This parameter implies two variants of lzw. (See the PDF spec).

compress/lzw:

  • the algorithm implied by EarlyChange value 1
  • provides both Reader and Writer.

x/image/tiff/lzw:

  • the algorithm implied by EarlyChange value 0
  • provides a Reader, lacks a Writer

In addition PDF expects a leading clear_table marker right at the beginning which is not something compress/lzw takes into account.

There are numerous PDF Writers out there and for arbitrary PDF files using the LZWDecode filter the following can be observed:

  • Some PDF writers do not write the EOD (end of data) marker.
  • Some PDF writers do not write the final bits after the EOD marker.

Goal

An extended version of compress/lzw with reliable support for GIF, TIFF and PDF.