LINUX.ORG.RU

PHP GD цвет

 , ,


0

1

Пытаюсь изменить цвет в изображении. При загрузке изображения, которое полностью закрашено в #111111 происходит изменение цвета на #ff0000, но, если изображения закрашено «местами», то с ним ничего не происходит, выводится такое же, каким было на входе.

<?php
	$img = imagecreatefrompng("images/image1.png");
	
	
	if(isset($_GET['col1'])) {
		$col1 = imagecolorexact($img, 17, 17, 17);
		
		imagecolorset($img, $col1, 255, 0, 0);
	}
	
	
	header('Content-Type: image/png');
	
	imagepng($img);
	imagedestroy($img);
?>

imagecolorset — Установка набора цветов для заданного индекса палитры

Это ж только для индексированных GIF'ов. А PNG у тебя наверняка труколорный.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

Экспортировал в GIF, теперь заменяется, но заменяется не весь цвет #111111, а только 5-10% пикселей.

P.S. В рисунке используется только #111111 и #222222, #222222 никак не изменяется, как и должно быть.

Human-source ()
Ответ на: комментарий от Human-source

Экспортировал в GIF, теперь заменяется, но заменяется не весь цвет #111111, а только 5-10% пикселей.

В GIF как таковом нет цветов, есть индекс цвета. И когда ты меняешь значение индекса, в самой картинке ничего не меняется. Если меняет цвет только часть пикселей, то, значит, у остальных или немного другой цвет (скажем, #111112 и т.п.), или цвет такой же, но с другим индексом.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

Цвет абсолютно одинаковый. Сейчас создал изображение заново, а не импортировал, и цвет заменился нормально.

Спасибо!

Human-source ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.