Цвета палитры PHP GD

В PHP GD как вы можете преобразовать изображение truecolor в палитру без потеря любых цветов. С imageetruecolortopallete он не работает . У меня есть функция, которая просматривает все цвета и фильтрует их (например, оттенки серого). и Он не сохраняет все цвета , например, это изображение Lamborghini-

Изображение

alt text

Это мой код

$im = imagecreatefrompng("lamborghini.png");
$degrees = 0;

$img = imagecreatetruecolor(imagesx($im), imagesy($im));
imagecopy($img, $im, 0, 0, 0, 0, imagesx($im), imagesy($im));
imagetruecolortopalette($img, true, 256);
$t = imagecolorstotal($img);
for ($i = 0; $i < $t; $i++) {
  $rgb = imagecolorsforindex($img, $i);
  $hsv =rgbtohsv($rgb['red'], $rgb['green'], $rgb['blue']);
  $h = $degrees;
  $s = $hsv['s'];
  $v = $hsv['v'];
  while ($h > 360) {$h -= 360;};
        $nrgb = hsvtorgb($h, $s, $v);
  imagecolorset($img, $i, $nrgb['r'], $nrgb['g'], $nrgb['b']);
}
imagecopy($im, $img, 0, 0, 0, 0, imagesx($img), imagesy($img));

header('Content-type: image/png');

imagepng($im);
imagedestroy($im);

И он выглядит так

alt text

Вы можете видеть , он теряет цвета . Есть ли какое-либо решение ?

Также я не думаю, что это связано с моим кодом, но как imagetruecolortopalette выводит его

5
задан Mark Lalor 16 September 2010 в 23:05
поделиться