f11f4def43
Clean Set Up * fail * starteddb * constraint * cleantest * fixqueries * fixtests * storemimetype * buffer * tests * setup * passingtests * pdfHElloWorld * rm * test * notodos * tests * clean * testpdf
Note
- This is a consolidated version of compress/lzw that supports GIF, TIFF and PDF.
- Please refer to this golang proposal for details.
- github.com/hhrutter/tiff uses this package to extend x/image/tiff.
- pdfcpu uses this package for processing PDFs with embedded TIFF images.
Background
- PDF's LZWDecode filter comes with the optional parameter
EarlyChange. - The type of this parameter is
intand the defined values are 0 and 1. - The default value is 1.
This parameter implies two variants of lzw. (See the PDF spec).
- the algorithm implied by EarlyChange value 1
- provides both Reader and Writer.
- 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.