2014-07-15 123 views
-1

我寫了一段代碼來使用GD從PHP中的文本生成圖像。當我在我的XAMPP本地主機上運行此代碼時,我沒有收到任何錯誤,但我也沒有收到圖像。沒有錯誤發生,但gd圖像沒有顯示

Generate.php

<?php 
    session_start() ; 
    header ('Content-type: image/jpeg') ; 
    $_SESSION['secure'] = rand(1000,9999) ; 
    $text=$_SESSION['secure'] ; 
    $font_size=30 ; 
    $img_height=40 ; 
    $img_width=100 ; 
    $image=imagecreate($image_width,$image_height) ; 
    imagecolorallocate($image,255,255,255) ; 
    $text_color=imagecolorallocate($image,0,0,0) ; 
    imagettftext($image,$font_size,0,15,30,$text_color,'captchafont.ttf',$text) ; 
    imagejpeg($image) ; 
?> 

HTML

<img src="generate.php"/> 

所有當我運行在本地主機這個HTML文件我得到的是沒有找到圖片符號在瀏覽器中。我希望你們檢查我的代碼是否有任何錯誤,提前感謝。

回答

2

你應該改變這一行:因爲您已經定義$img_width$img_height變量,而不是$image_width$image_height

$image=imagecreate($image_width,$image_height) ; 

$image=imagecreate($img_width,$img_height) ; 

你也應該確保captchafont.ttf存在在正確的道路上,並以正確的方式使用。從手冊:

根據哪個版本的GD庫PHP的使用,當 fontfile沒有領先/時則.ttf將被追加到 文件名開始,圖書館將嘗試以搜索沿着庫定義的字體路徑的文件名 。例如http://localhost/generate.php

測試

評論小編建議/刪除線header ('Content-type: image/jpeg') ;和簡單的運行在瀏覽器這個網址,以確保沒有出現任何錯誤。否則,如果這仍然不會在文件的開頭添加error_reporting(E_ALL)。刪除所有錯誤和警告後,您當然應該刪除此行並取消註釋行header,然後檢查圖像是否正確顯示。

+2

+1發現它,但這種問題應該被封閉作爲一個錯字,也許一個評論解釋;) –

+0

@NiettheDarkAbsol我剛剛爲此添加了更多的解釋 –