Files
Jay Brown 7d78e65d0c Merged in feature/semver (pull request #93)
Add semantic versioning to all services

* working

* Merge branch 'main' of bitbucket.org:aarete/query-orchestration into feature/semver

* 1.24 mod

* go upgrade

* tool

* Merge branch 'main' of bitbucket.org:aarete/query-orchestration into feature/semver
2025-03-06 22:33:39 +00:00
..

Note

This package is an improved version of x/image/tiff featuring:

  • Read support for CCITT Group3/4 compressed images using x/image/ccitt
  • Read/write support for LZW compressed images using github.com/hhrutter/lzw
  • Read/write support for the CMYK color model.
  • Read support for JPEG compressed images.
  • Read support for multi page TIFF files.

Background

Working on pdfcpu (a PDF processor) created a need for processing TIFF files and LZW compression in details beyond the standard library.

  1. CCITT compression for monochrome images was the first need. This is being addressed as part of ongoing work on x/image/ccitt.

  2. As stated in this golang proposal Go LZW implementations are spread out over the standard library at compress/lzw and x/image/tiff/lzw. As of Go 1.12 compress/lzw works reliably for GIF only. This is also the reason the TIFF package at x/image/tiff provides its own lzw implementation for compression. With PDF there is a third variant of lzw needed for reading/writing lzw compressed PDF object streams and processing embedded TIFF images. github.com/hhrutter/lzw fills this gap. It is an extended version of compress/lzw supporting GIF, PDF and TIFF.

  3. The PDF specification defines a CMYK color space. This is currently not supported at x/image/tiff.

Goal

An improved version of x/image/tiff with full read/write support for CCITT, LZW, JPEG compression and the CMYK color model.