Цветовой градиент PHP изображения отображается неправильно - PullRequest
1 голос
/ 10 декабря 2011

В настоящее время я программирую фоновое изображение, используя PHP с цветовым градиентом для всех браузеров, которые не поддерживают CSS3.У меня есть следующий код:

<?php
header("Content-Type: image/png");
$from=array("R"=>255, "G"=>255, "B"=>255);
$to=array("R"=>170, "G"=>221, "B"=>255);

$width=500;
$height=1000;
$image=imagecreate($width, $height);
for($y=0; $y < $height; $y++)
{
    imageline($image, 0, $y, $width, $y, imagecolorallocate($image, $from["R"]-(($from["R"]-$to["R"])/$height)*$y, $from["G"]-(($from["G"]-$to["G"])/$height)*$y, $from["B"]-(($from["B"]-$to["B"])/$height)*$y));
}
imagepng($image);
?>

Кажется, это так просто, но я действительно не знаю, почему изображение не отображается правильно.Это показано, как вы можете видеть ниже, но градиент должен быть 1000px в высоту.The gradient that is displayed

1 Ответ

0 голосов
/ 10 декабря 2011

Я мог бы решить проблему. Функция «imagecolorallocate», по-видимому, ограничена ограниченным количеством вызовов. Я использовал "imagecolorresolve" вместо этого, и он отлично работает. Другой вариант - использовать «imagecreatetruecolor» для создания изображения. Тогда вы можете использовать «imagecolorallocate».

...