php ImageCreate

时间:2012-08-08 11:03:15

标签: php

我是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);
?>

2 个答案:

答案 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);

?>