Вот я например, создаю изображение с конкретным одним заданным цветом на все 100 и 100 пикселей:
<?php
$image=imagecreatetruecolor(100, 100);
if ($image && isset($_GET['red'])) {
if ($_GET['red'] < 0 ) $_GET['red'] = 0;
if ($_GET['red'] > 255) $_GET['red'] = 255;
if ($_GET['green'] < 0 ) $_GET['green'] = 0;
if ($_GET['green'] > 255) $_GET['green'] = 255;
if ($_GET['blue'] < 0 ) $_GET['blue'] = 0;
if ($_GET['blue'] > 255) $_GET['blue'] = 255;
$color = imagecolorallocate($image, $_GET['red'], $_GET['green'], $_GET['blue']);
imagefill($image, 0, 0, $color);
header("Content-type: image/gif");
imagegif($image);
imagedestroy($image);
}
?>
И далее вывожу это изображение с расширением .gif
<?php
echo '<img src="alter.php?red=0&green=127&blue=0">';
?>
Обратите внимание, что я задаю
green значение ровно 127, а не 126 или 128. Запомните этот момент. Дальше я копирую это изображение с помощью меню браузера в эту же папку с данным php файлом. И добавляю еще один кусочек php-кода задача которого вывести значение цвета в заданных мной координатах:
<?php
$imageg=imagecreatefromgif('alter.gif');
if ($imageg) {
$colorsx = imagecolorat($imageg, 50, 50);
$arra = imagecolorsforindex($imageg, $colorsx);
echo '<pre>';
print_r($arra);
echo '</pre>';
imagedestroy($imageg);
}
?>
Так вот в качестве результата этого кода я вижу на страничке:
Array
(
[red] => 4
[green] => 126
[blue] => 4
[alpha] => 0
)
А теперь внимание вопрос ! Как вы уже помните я задавал значение цвета
green не 126, а
127. Так почему же мне тут выдает 126 у
green, а у
red и
blue по четыре, тогда как им я задавал значение ноль ? ?
Изменил: Суицидник (06.04.2017 / 01:20)