2011-09-16 37 views
0

我寫此代碼:圖象信息生成問題形成一類

class Generate{ 
    private $canvas; 
    function __construct($width, $height){ 
     $this->canvas = imagecreatetruecolor($width, $height); 
    } 
    public function bg($r=0,$g=0,$b=0){ 
     $color = imagecolorallocate($this->canvas, $r, $g, $b); 
     imagefill($this->canvas, 0, 0, $color); 
    } 
    public function gen(){ 
     header('Content-Type: image/png'); 
     imagepng($this->canvas, NULL, 9); 
     imagedestroy($this->canvas); 
    } 
} 

以及與此稱之爲:

$G = new Generate(100, 100); 
$G->bg(255, 255, 255); 
$G->gen(); 

其生成圖像細當我在根註釋掉報頭( )功能並將其設置爲保存圖像。像這樣:

imagepng($this->canvas, 'img.png', 9); 

但我希望它發送標題(輸出圖像),但它給了我一個錯誤。有人能告訴我我做錯了什麼嗎?你甚至可以在PHP類中發送頭文件?當我不使用OOP

+0

所以你想保存圖像,並輸出它? – sberry

+1

你沒有告訴我們當你不發表評論時發生了什麼。 –

+0

@ sberry2A不只是輸出... – Ameer

回答

2

的回答你的問題是肯定的,你可以

此代碼工作正常。在發送任何輸出到客戶端之前,您可以隨時發送標題,我懷疑這是您的問題所在。

您還可以檢查您保存文件的編碼。如果要將文件保存爲UTF-8,請確保將其保存爲不帶字節順序標記。這被視爲輸出,並且將始終是文件中的第一個字符,這意味着任何對header()的調用都將生成警告。

+0

不,你錯了...重點不是標題()它爲什麼它給了一個錯誤...如果我不使用OOP,此代碼工作正常 – Ameer

+0

你的問題是:「你甚至可以在PHP類中發送頭文件?」答案是肯定的。也許你應該多說一些你的問題,或者至少提供你正在得到的具體錯誤信息? –

+0

嗯......我會改變它 – Ameer

2

該代碼適用於我,當我在發佈它時運行它;你確定你不只是在白色背景上失去你的100x100白色圖像?嘗試改變顏色,例如127,255,255(一個可愛的水),看看它是否出現。