2012-08-08 58 views
-6

我是新來的PHP,我試圖簡單地打印一條消息,並創建一個矩形,但這是行不通的。我已經查看了wamp目錄中php.ini文件中的gd擴展名,並且未將其註釋掉。請幫助 - 爲什麼會不是工作:(php ImageCreate

<?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); 
?> 
+8

錯誤消息? '不起作用'不是錯誤... – DaveRandom 2012-08-08 11:03:59

+0

沒有錯誤信息,唯一出現的是當圖像未正確鏈接時出現的「斷開鏈接」圖標。 – user1334130 2012-08-08 11:06:49

回答

1

你輸出字符串hello world,然後輸出圖像。這將導致損壞的圖像數據,因爲它會在它的開頭有11個字節,在一個上下文中沒有意義 圖片。

取出print('hello world');線,它應該輸出有效的圖像 - 但你的頁面將不會包含文本hello world,你需要輸出合適的HTML頁面上的文本,並指出了img標籤的src屬性到PHP腳本,如果你想讓它工作,就會生成圖像。

例如:

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

?> 
+1

對,現在我明白了,謝謝戴夫。 – user1334130 2012-08-08 11:20:39

3

首先,你有一個print ("hello world");在代碼的開始。如果你打電話給header(),有不能任何輸出之前您需要的輸出。刪除線,你的代碼將工作,請務必閱讀related documentation

+0

更重要的是:啓用錯誤報告並始終檢查您的[logs](http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-log)是否有錯誤和警告 - 它們是這是有原因的。 – soulmerge 2012-08-08 11:15:11