2012-12-21 97 views
1

我有一個問題,我想一些幫助,請。 我已經做了腳本使用GD庫和PHP創建圖像,但問題是,當我預覽在Firefox中顯示我在Firebug的錯誤:「圖像損壞或截斷:本地主機/ my_scripts/images.php」。 注意:這不是PHP顯示的錯誤,它更像是來自瀏覽器的錯誤。無法創建/顯示PHP圖片 - GD圖像損壞或截斷

我檢查我的語法多次的代碼,我自己也嘗試了和其他GD功能,如imagegif,imagettftext等等等等,但沒有任何效果。這裏是我的代碼:

//$image = @imagecreate(200, 20)or die("Cannot Initialize new GD image stream"); 
$image = imagecreate(200, 20); 
$background = imagecolorallocate($image,0,0,0); 
$foreground = imagecolorallocate($image,255,255,255); 
imagestring($image,5,5,1,"This is a Test",$foreground); 
header("Content-type: image/jpeg"); 
imagejpeg($image); 
imagedestroy($image); 

GD庫啓用我已經檢查,在phpinfo()函數,我也試圖預覽和Chrome和看起來是一樣的。任何想法我可能會做錯什麼或爲什麼會發生這種情況?我該如何解決這個錯誤?

+0

註釋掉'header'通話和'imagejpeg',然後訪問腳本。你看到任何錯誤或警告? – Charles

+0

如果我註釋掉頭部功能會顯示如下奇怪的符號: JIFIF > CREATOR:gd-jpeg v1.0(使用IJG JPEG v62),默認質量爲'C $'。 「#(7),01444'9 = 82 <.342C 2 !! 22222222222222222222222222222222222222222222222222" }!1AQa」 Q2#BR $ 3房% &'()* 456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq「2 B #3R br $4 % – Lykos

+0

這就是爲什麼你需要註釋'imagejpeg'。瀏覽器嘮叨破壞圖像的最常見原因是由於PHP警告或圖像數據發出的通知。消除標題和圖像數據,並可能出現警告和通知。 – Charles

回答

5

我發現一些有關這個錯誤,我終於想通了什麼事情,所以這裏是解決問題的辦法:

確保PHP代碼是頁面上的唯一的事。沒有HTML,在PHP代碼之前或之後沒有空格,它應該發送給瀏覽器的唯一東西應該是圖像數據。如果仍然不起作用,那麼確保以不包含UTF BOM的格式保存PHP腳本,並且這應該解決它。

+1

哦,非常感謝你,Lykos。將編碼設置爲Unicode(無簽名的UTF-8)使其適用於我! – user3038347

1

我改變了我的代碼UTF-8 without BOM和工作給我!感謝Lykos。

+1

很高興幫助! :) – Lykos