Вопрос по GDLib

Печать RSS
84

Автор
Землянин
0
Вот я например, создаю изображение с конкретным одним заданным цветом на все 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)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск