2012-02-29 52 views
2

我很難與php頭,我試圖在我的瀏覽器中創建任何形式的圖像,而不保存在一個文件中,但不管我做什麼,我可以讓它工作。php頭,內容類型PNG不工作

因此,舉例來說,如果我用這個基本的例子,從PHP手冊:

$im = imagecreate(100, 100); 

header('Content-Type: image/png'); 

imagepng($im); 
imagedestroy($im); 

這將設置正確的頭,甚至輸出圖標,當找不到圖像u得到。

而且我用xampp它啓用了GD,這裏是我的phpinfo GD部分:

GD Support enabled 
GD Version bundled (2.0.34 compatible) 
FreeType Support enabled 
FreeType Linkage with freetype 
FreeType Version 2.4.3 
GIF Read Support enabled 
GIF Create Support enabled 
JPEG Support enabled 
libJPEG Version 6b 
PNG Support enabled 
libPNG Version 1.2.46 
WBMP Support enabled 
XBM Support enabled 

是我的代碼是錯誤的或者我需要配置什麼?

回答

2

你不僅要創造的形象,而且填補它的一些方式:

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

$im = imagecreate(100, 100) or die("Cannot Initialize new GD image stream"); 
$background_color = imagecolorallocate($im, 0, 0, 0); 

header('Content-Type: image/png'); 

imagepng($im); 
imagedestroy($im); 
+0

仍然無法正常工作,我試着用firefox來看它,這就是我得到的結果:'圖像「http:// localhost/test /」無法顯示,因爲它包含錯誤。 – Linas 2012-02-29 14:36:22

+0

雙重檢查它。 : - 嘗試更新的代碼(在die失敗的情況下用'die'來初始化圖像)以確保GD工作正常。 – 2012-02-29 14:50:25

+0

問題是我在<?php標記之前有空的空間,這弄亂了我的圖像:)反正thatnks的幫助 – Linas 2012-02-29 14:57:04

2

PHP可能是輸出錯誤信息,從而搞亂了的二進制圖像數據。出於這個原因,我總是在使用圖像腳本時禁用display_errors並在PHP配置中啓用log_errors;這樣你就可以看到任何錯誤而不需要搞亂輸出。如果您確定不存在任何PHP錯誤,請嘗試將完整的腳本輸出轉儲到文件中(腳本的開頭爲ob_start();,最後爲file_put_contents("outfile", ob_get_clean());),然後使用十六進制編輯器分析該文件,看看有什麼搞糟PNG 。

+0

謝謝,這個信息將幫助我在未來 – Linas 2012-02-29 14:57:30