PHP. Imagecolorallocate возвращает false - PullRequest
3 голосов
/ 05 июля 2011

Я использую некоторый код:

$colors = array ();
$colors['test'] = imagecolorallocate($img, 0 ,1 ,2);
....

Работает, пока я не поменяю картинку на другую
После этого imagecolorallocate и imagecolorallocatealpha возврат false
$img - правильное изображение, т. Е. imagepng, распечатайте его правильно

Как заставить imagecolorallocate работать?

1 Ответ

1 голос
/ 05 июля 2011

Прокомментируйте документацию по этой функции:

Если вы даже в ситуации, когда он не выделяет нужный вам цвет, это может быть из-за таблицы распределения цветов ваших изображений.GIF и 8-битные PNG-изображения очень восприимчивы к этому.

Если вы используете GIF и PNG, попробуйте сбросить цвет из таблицы, вам следует выделить другой.

ЕслиИсходное изображение в индексированном изображении (8 бит или меньше), затем убедитесь, что есть место для дополнительных цветов.Например, 8-битное изображение может не использовать все 256 цветов из палитры, в этом случае функция должна завершиться успешно, иначе не будет.

Редактировать

Я посмотрел на ваше изображение, и онозаразить 8-битное изображение PNG, которое использует все 256 цветов.Попробуйте преобразовать его в изображение истинного цвета (либо через фотошоп, либо скопировав изображение в изображение GD, созданное с помощью imagecreatetruecolor());выполните все редактирование, затем сохраните как GIF.

...