我是php的新手,我正在尝试简单地打印一条消息并创建一个矩形,但这并不起作用。我查看了wamp目录中php.ini文件中的gd扩展名,但没有注释掉。请帮助 - 为什么它会起作用:(
<?php
print ("hello world");
$im = ImageCreate(200,200);
$white = ImageColorAllocate($im,0xFF,0xFF,0xFF);
$black = ImageColorAllocate($im,0x00,0x00,0x00);
ImageFilledRectangle($im,50,50,150,150,$black);
header('Content-Type: image/png');
ImagePNG($im);
?>
答案 0 :(得分:3)
首先,您在代码的开头有一个print ("hello world");
。如果您要致电header()
,必须 ANY 输出才能输出您想要的输出。删除该行,您的代码将起作用。请始终阅读related documentation。
答案 1 :(得分:1)
您正在输出字符串hello world
,然后输出图像。这将导致图像数据损坏,因为它在开始时将有11个字节,这在图像的上下文中是没有意义的。
删除print('hello world');
行,它应输出有效图片 - 但您的页面不会包含文字hello world
,您需要输出一个正确的HTML页面,其中包含文字和点生成图像的PHP脚本的src
标记的img
属性,如果您希望它可以工作。
例如:
page.html中
<html>
<head>
<title>My Page</title>
</head>
<body>
hello world<br>
<img src="image.php" />
</body>
</html>
image.php
<?php
$im = ImageCreate(200,200);
$white = ImageColorAllocate($im,0xFF,0xFF,0xFF);
$black = ImageColorAllocate($im,0x00,0x00,0x00);
ImageFilledRectangle($im,50,50,150,150,$black);
header('Content-Type: image/png');
ImagePNG($im);
?>