2012-02-27 60 views
0

我有一個用php生成和導出圖像的問題。PHP圖像輸出問題

所以我有這樣的:

header('Content-type: image/jpeg'); 
header('Content-Disposition: inline; filename=WHATEVER.jpg'); 
$dragon = self::static_dragon($numbers,$avatars,$new_name,$filepath); 

內static_dragon功能我加載從數據庫數據,與他們的工作,等等,然後:

imagejpeg($canvas,'',60); 
imagedestroy($canvas); 
return true; 

我想實現的是,如果我寫
< IMG SRC = 「http://www.domain.com/dragon.php &寬度= 100 &高度= 100」/>

它會給我形象。 一切工作正常,數據庫連接,甚至保存服務器上的最終jpg文件,唯一的問題是,瀏覽器不顯示我的形象。我想在頭文件中可能存在一些問題? 者均基於功能腳本告訴我後頭已經送到我不能執行的頭文件(即使我沒有看到這將這樣做的任何命令)

的幫助非常感謝

+0

在設置標題之前,您是否迴應了任何內容?即使它在你的'<?php'之前只有空格或什麼? – Crinsane 2012-02-27 05:43:04

+0

不,沒什麼,「頭已發送」的錯誤,我告訴我,頭髮送線上:$處理程序= imagecreatefromjpeg($圖片);這對我沒有意義 – Tom 2012-02-27 06:05:09

+0

您是否檢查過沒有生成錯誤或警告消息? – Svish 2012-02-27 07:11:29

回答

2

是U做同樣的:

header('Content-type: image/jpeg'); 
header('Content-Disposition: inline; filename=WHATEVER.jpg'); 

$im = imagecreatefromjpeg('download.jpg') or or die('Cannot Initialize new GD image stream'); // this will let u know whether the creation of image resource was a failure 

imagestring($im, 3, 40, 20, 'GD Library', 0xFFBA00); //just a add on 

imagejpeg($im); 
imagedestroy($canvas); 
return true; 

上面的代碼在瀏覽器中正常工作。任何錯誤?

@Tom正如你所說的你得到錯誤:「header already sent」for imagecreatefromjpeg。首先解決錯誤,因爲imagecreatefromjpeg()爲圖像提供資源。如果資源失敗,則圖像將不可見。

$this->getResponse()->setContent($canvas)

在你的PHP文件的頭部

使用,@imagecreatefromjpeg()

+0

啊現在我想着它,是的,它確實給我錯誤的圖像資源,這可能是「已發送的錯誤」。與imagecreatefromjpeg()和@imagecreatefromjpeg()有什麼不同?我會嘗試沒有錯誤,什麼是函數imagestring()?謝謝! – Tom 2012-02-27 08:07:01

+0

好吧,現在我可以在我想要的標題,但圖像仍然不顯示。在Chrome瀏覽器中,它只是破碎的圖像,在Firefox中我看到以下消息:圖像「http://domain.com/?request=request&width=300&height=300」無法顯示,因爲它包含錯誤。還有什麼建議?謝謝 – Tom 2012-02-27 08:35:01

+0

在函數前面有@ operaton會阻止向用戶的瀏覽器打印錯誤消息。我用處理程序更新了代碼。 – 2012-02-27 09:19:41

1

有不你忘了添加

echo $dragon 

對象中的php文件的內容? :) 此行添加到你的PHP文件的末尾:

echo $dragon 

see

+0

我以爲是一樣的,但那也沒有幫助 – Tom 2012-02-27 06:04:08

1

所以不是回聲-ING $帆布使用此給一試。

(我假定$畫布是從數據庫加載的對象)

請確保您有沒有印在PHP文件任何其他東西。