这是具有类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();
答案 0 :(得分:0)
问题是,你的功能没有"返回"任何东西。它打印出图像。因此,如果在函数调用之前打印出任何内容,它将无法工作。我们因为您正在设置标题。并且imagejpeg打印出图像,因此如果之后有任何输出,它将被添加到您的图像数据并破坏它。我建议检查你的server.php以确保没有打印输出bevore函数调用。也许在函数中使用exit()以确保之后没有orintout。但请记住,这会停止执行,因此函数永远不会返回。
修改强>
你的程序错误!请注释标题()以查看它们。因为否则你的浏览器需要一个有效的图像,而是获得php错误消息。
您的codeproblem是范围错误:
imagejpeg($home->canvas);
到
imagejpeg($this->canvas);
为了帮助您了解您的问题,您可以查看at others having similar problems,我认为这是一个很好的例子。