PHP图像颜色渐变未正确显示

时间:2011-12-10 19:03:29

标签: php image colors background gradient

我目前正在为所有不支持CSS3的浏览器使用带有颜色渐变的PHP编写背景图像。我有以下代码:

<?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 :(得分:0)

我可以解决问题。函数“imagecolorallocate”似乎仅限于有限数量的调用。我使用“imagecolorresolve”代替,它工作正常。另一种选择是使用“imagecreatetruecolor”来创建图像。然后你可以使用“imagecolorallocate”。