Xampp imagecreatefrompng()产生破碎的图像

时间:2012-11-07 00:05:17

标签: php imagecreatefrompng

我已经看了几个其他类似的问题,但不幸的是,他们都没有帮助解决我遇到的问题。

这是剧本。

 <?php
    // returns a PNG graph from the $_GET['per'] variable
    $per = imagecreate(302,7);
    $background = imagecolorallocate($per, 0xFF, 0xFF, 0xFF);
    $foreground = imagecolorallocate($per, 0x00, 0x8A, 0x01);
    $border = imagecolorallocate($per, 0x99, 0x99, 0x99);
    if ($_GET['per'] > 0)
    {
        $grad = imagecreatefrompng("images/grad.png");
        $per2 = imagecopy($per, $grad, 1, 1, 0, 0, ($_GET['per'] * 3), 5);
        imagerectangle($per, 0, 0, 301, 6, $border);
    }

    header("Content-type: image/png");
    imagepng($per,NULL,5);
?>

我已经检查了GD支持,所以我不确定问题是什么。如果我在不使用图像的情况下构建一个简单的条形图就可以正常工作,但是当我尝试使用图像进行构建时,它只会显示图像损坏的图像。

1 个答案:

答案 0 :(得分:1)

您需要确保per存在,否则会抛出未定义的索引错误

if ($_GET['per'] > 0)

应该是这个

if (isset($_GET['per']) && $_GET['per'] > 0)

或者如果你想确保它不是空的并且存在,你可以做

if (!empty($_GET['per']) && $_GET['per'] > 0)

因为empty()函数在检查变量是否为空之前还检查变量是否存在。