---
name: "rgb2pct"
section: "1"
platform: "linux"
package: "gdal"
version: "3.13.3-6"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/rgb2pct"
---

# rgb2pct(1)

Convert a 24bit RGB image to 8bit paletted.

## NAME

rgb2pct - Convert a 24bit RGB image to 8bit paletted.

## SYNOPSIS

```
rgb2pct [--help] [--help-general] [--creation-option OPTION]
           [-n colors | -pct palette_file] [-of format] <source_file> <dest_file>
```

## DESCRIPTION

This utility will compute an optimal pseudo-color table for a given RGB image using a median cut algorithm on a downsampled RGB histogram.   Then it converts the image into a pseudo-colored image using the color table. This conversion utilizes Floyd-Steinberg dithering (error diffusion) to maximize output image visual quality.

**NOTE:**

rgb2pct is a Python utility, and is only available if GDAL Python bindings are available.

**TIP:**

Equivalent in new "gdal" command line interface:

See *gdal raster rgb-to-palette*.

- **--help**

  Show this help message and exit

- **--help-general**

  Gives a brief usage message for the generic GDAL commandline options and exit.

- **-n \<color\>**

  Select the number of colors in the generated color table.  Defaults to 256.  Must be between 2 and 256.

- **--creation-option OPTION**

  Optional creation parameters for the GeoTIFF driver, for example "COMPRESS=LZW". Can be specified multiple times.

- **-pct \<palette\_file\>**

  Extract the color table from \<palette\_file\> instead of computing it. Can be used to have a consistent color table for multiple files. The \<palette\_file\> must be either a raster file in a GDAL supported format with a palette or a color file in a supported format (txt, qml, qlr).

- **-of \<format\>**

  Select the output format. If not specified, the format is guessed from the extension. Use the short format name. Only output formats supporting pseudo-color tables should be used.

- **\<source\_file\>**

  The input RGB file.

- **\<dest\_file\>**

  The output pseudo-colored file that will be created.

## RETURN STATUS CODE

The program returns status code 0 in case of success, and non-zero in case of error (non-blocking errors emitted as warnings are considered as a successful execution).

## EXAMPLE

If it is desired to hand create the palette, likely the simplest text format is the GDAL VRT format.  In the following example a VRT was created in a text editor with a small 4 color palette with the RGBA colors 238/238/238/255, 237/237/237/255, 236/236/236/255 and 229/229/229/255.

```
$ rgb2pct -pct palette.vrt rgb.tif pseudo-colored.tif
$ more < palette.vrt
<VRTDataset rasterXSize="226" rasterYSize="271">
    <VRTRasterBand dataType="Byte" band="1">
        <ColorInterp>Palette</ColorInterp>
        <ColorTable>
        <Entry c1="238" c2="238" c3="238" c4="255"/>
        <Entry c1="237" c2="237" c3="237" c4="255"/>
        <Entry c1="236" c2="236" c3="236" c4="255"/>
        <Entry c1="229" c2="229" c3="229" c4="255"/>
        </ColorTable>
    </VRTRasterBand>
</VRTDataset>
```

## AUTHOR

Frank Warmerdam \<warmerdam@pobox.com\>

## COPYRIGHT

1998-2026
