(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagetruecolortopaletteConvert a true color image to a palette image


bool imagetruecolortopalette ( resource $image , bool $dither , int $ncolors )

imagetruecolortopalette() converts a truecolor image to a palette image. The code for this function was originally drawn from the Independent JPEG Group library code, which is excellent. The code has been modified to preserve as much alpha channel information as possible in the resulting palette, in addition to preserving colors as well as possible. This does not work as well as might be hoped. It is usually best to simply produce a truecolor output image instead, which guarantees the highest output quality.



An image resource, returned by one of the image creation functions, such as imagecreatetruecolor().


Indicates if the image should be dithered - if it is TRUE then dithering will be used which will result in a more speckled image but with better color approximation.


Sets the maximum number of colors that should be retained in the palette.

Return Values

Returns TRUE on success or FALSE on failure.


Example #1 Converting a true color image to a palette-based image

// Create a new true color image
$im imagecreatetruecolor(100100);

// Convert to palette-based with no dithering and 255 colors

// Save the image

add a note add a note

User Contributed Notes 6 notes

zmorris at zsculpt dot com
13 years ago
Sometimes this function gives ugly/dull colors (especially when ncolors < 256).  Here is a replacement that uses a temporary image and ImageColorMatch() to match the colors more accurately.  It might be a hair slower, but the file size ends up the same:

function    ImageTrueColorToPalette2( $image, $dither, $ncolors )