Есть php-код который принимает значения RGB от 0 до 255 и на основе этих значений генерирует обычное изображение 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);
}
?>
А вот я передаю те самые значения RGB в теле страницы:
<?php
echo '<img src="parser.php?red=127&green=0&blue=0">';
?>
Чего я не пойму так это...
Почему следующий код возвращает мне неверные значения RGB ?
<?php
$image=imagecreatefromgif('parser.gif');
if ($image) {
$colors = imagecolorat($image, 50, 50);
$array = imagecolorsforindex($image, $colors);
echo '<pre>';
print_r($array);
echo '</pre>';
imagedestroy($image);
}
?>
А именно, выдает мне что:
Red = 126, хотя я передал 127
Green = 4, хотя должно быть 0
И Blue = 4, хотя тоже должно быть НОЛЬ