实际上它并没有完全“复制”调色板。它将源调色板中的颜色复制到目标图像。您最终在目标图像中得到的调色板将是“相同的颜色,不同的顺序”。如果您想要完全复制调色板(以牺牲可能弄乱您的图像为代价,如果您不小心的话),请使用以下代码
<?
// 这是 imagepalettecopy 的直接替代,除了它没有尝试修改任何
// 目标图像中的颜色,只是调色板。结果?如果您的调色板不太相似,图像看起来会完全不同,而且很可能很糟糕!
function imagepalettecopy_exact ( $dst_img, $src_img) {
for( $c = 0 ; $c < imagecolorstotal($src_img); $c++) {
$col = imagecolorsforindex($src_img,$c); // 获取颜色表中索引为 'c' 的颜色
imagecolorset($dst_img,$c,$col[red],$col[green],$col[blue]); // 将 $dst_image 中索引为 'c' 的颜色设置为 $col
}
}
?>