實際上,它並沒有完全「複製」調色盤。它將顏色從來源調色盤複製到目標影像。最終在目標影像中得到的調色盤將是「顏色相同,順序不同」。如果您想要精確複製調色盤(如果您不小心,可能會弄亂您的影像),請使用以下程式碼
<?
// 這是 imagepalettecopy 的直接替代品,除了它不會嘗試修改目標影像中的任何顏色,只會修改調色盤。結果呢?如果您的調色盤不太相似,影像看起來會完全不同,而且可能很糟糕!
// 這是 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' 的顏色設定為 $col
}
}
?>