---
name: "tiffdither"
section: "1"
platform: "linux"
package: "libtiff-tools"
version: "4.7.0-3+deb13u3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/tiffdither"
---

# tiffdither(1)

convert a greyscale TIFF image to bilevel using dithering

## NAME

tiffdither - convert a greyscale TIFF image to bilevel using dithering

## SYNOPSIS

**tiffdither** \[ *options* \] *input.tif* *output.tif*

## DESCRIPTION

**tiffdither** converts a single channel 8-bit greyscale image to a bilevel image using Floyd-Steinberg error propagation with thresholding.

## OPTIONS

- **-c compress**

  Specify the compression to use for data written to the output file:

  | | |
  | --- | --- |
  | Compression | Description |
  | none | no compression |
  | packbits | PackBits compression |
  | lzw | Lempel-Ziv & Welch compression |
  | zip | Deflate compression |
  | g3 | CCITT Group 3 (T.4) compression |
  | g4 | for CCITT Group 4 (T.6) compression |

  By default **tiffdither** will compress data according to the value of the **Compression** tag found in the source file.

  The CCITT Group 3 and Group 4 compression algorithms can only be used with bilevel data.

  Group 3 compression can be specified together with several T.4-specific options: **1d** for 1-dimensional encoding, **2d** for 2-dimensional encoding, and **fill** to force each encoded scanline to be zero-filled so that the terminating EOL code lies on a byte boundary. Group 3-specific options are specified by appending a **:**-separated list to the **g3** option; e.g. **-c g3:2d:fill** to get 2D-encoded data with byte-aligned EOL codes.

  LZW compression can be specified together with a **predictor** value. A predictor value of 2 causes each scanline of the output image to undergo horizontal differencing before it is encoded; a value of 1 forces each scanline to be encoded without differencing. LZW-specific options are specified by appending a **:**-separated list to the **lzw** option; e.g. **-c lzw:2** for LZW compression with horizontal differencing.

- **-f**

  Specify the bit fill order to use in writing output data. By default, **tiffdither** will create a new file with the same fill order as the original. Specifying **-f lsb2msb** will force data to be written with the **FillOrder** tag set to **LSB2MSB**, while **-f msb2lsb** will force data to be written with the **FillOrder** tag set to **MSB2LSB**.

- **-r**

  Make each strip have no more than the given number of rows.

- **-t**

  Set the threshold value for dithering. By default the threshold value is 128.

## NOTES

The dither algorithm is taken from the **tiffmedian** program (written by Paul Heckbert).

## SEE ALSO

*pal2rgb* (1), *fax2tiff* (1), *tiffinfo* (1), *tiffcp* (1), *tiff2bw* (3tiff)

## AUTHOR

LibTIFF contributors

## COPYRIGHT

1988-2022, LibTIFF contributors
