图像由php函数创建,而不是在多个php文件上调用

时间:2014-09-11 04:57:00

标签: php

这是具有类GeoDrawing的drawing.php文件和创建图像的方法图像。我现在创建这个类的对象并调用函数和图像成功返回。

当我将这个文件'drawing.php'包含到另一个php文件中时 - 比如说server.php - 那么这个函数不会返回图像。

请帮帮我。这段代码出了什么问题?

class GeoDrawing
{        
    public  $canvas;

     function Image()
     {        
        $this->canvas = imagecreate(2600, 1200) or die("Cannot Initialize new GD image stream");
        imagecolorallocate($this->canvas, 225, 225, 225);
        header('Content-Type: image/jpeg');  
        imagejpeg($home->canvas);       
     }
}

$home = new GeoDrawing();
$home->image();

1 个答案:

答案 0 :(得分:0)

问题是,你的功能没有"返回"任何东西。它打印出图像。因此,如果在函数调用之前打印出任何内容,它将无法工作。我们因为您正在设置标题。并且imagejpeg打印出图像,因此如果之后有任何输出,它将被添加到您的图像数据并破坏它。我建议检查你的server.php以确保没有打印输出bevore函数调用。也许在函数中使用exit()以确保之后没有orintout。但请记住,这会停止执行,因此函数永远不会返回。

修改

你的程序错误!请注释标题()以查看它们。因为否则你的浏览器需要一个有效的图像,而是获得php错误消息。

您的codeproblem是范围错误:

imagejpeg($home->canvas);  

imagejpeg($this->canvas);  

为了帮助您了解您的问题,您可以查看at others having similar problems,我认为这是一个很好的例子。