ImageTrueColorToPalette теряет цвета - PullRequest
1 голос
/ 04 марта 2011

У меня есть PHP-скрипт, который преобразует изображения истинного цвета в изображения палитры, если количество различных цветов в изображении меньше или равно 256.

В моем тестовом примере у меня есть изображение, которое содержит79 цветов.После запуска ImageTrueColorToPalette на нем без сглаживания и установки параметра $ ncolors равным 79 у меня есть изображение, содержащее только 15 цветов.Я даже попытался запустить ImageColorMatch на нем после преобразования его в палитру, и у меня все равно получилось только 15 цветов.

Используя GD в PHP, как я могу преобразовать свое истинное цветное изображение в изображение палитры, не теряя всеиз этих цветов?

1 Ответ

1 голос
/ 04 марта 2011

Похоже, я могу преобразовать изображение истинного цвета в изображение палитры, создав изображение палитры с помощью ImageCreate, а затем скопировав в него изображение истинного цвета.Это дает гораздо лучшие результаты, чем ImageTrueColorToPalette.

Почему ImageTrueColorToPalette дает мне дрянное изображение, я не совсем уверен, но это похоже на адекватный обходной путь.

$palette = ImageCreate($width, $height);
ImageCopy($palette, $truecolor, 0, 0, 0, 0, $width, $height);
...