有时此函数会产生难看/暗淡的颜色(尤其是在 ncolors < 256 时)。这里有一个替代方法,它使用临时图像和 ImageColorMatch() 来更准确地匹配颜色。它可能稍微慢一点,但文件大小最终相同
<?php
function ImageTrueColorToPalette2( $image, $dither, $ncolors )
{
$width = imagesx( $image );
$height = imagesy( $image );
$colors_handle = ImageCreateTrueColor( $width, $height );
ImageCopyMerge( $colors_handle, $image, 0, 0, 0, 0, $width, $height, 100 );
ImageTrueColorToPalette( $image, $dither, $ncolors );
ImageColorMatch( $colors_handle, $image );
ImageDestroy( $colors_handle );
}
?>