实际上它并没有完全“复制”调色板。它将颜色从源调色板复制到目标图像。您最终在目标图像中获得的调色板将是“相同颜色但顺序不同”。如果您想要完全相同的调色板副本(以牺牲图像混乱为代价,如果您不小心的话),那么请使用此代码
<?
// 这是 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]); // 将索引 'c' 处的颜色设置为 $dst_image 中的 $col
}
}
?>