2013-06-03 27 views
0

我試圖用GD imagefilter將jpg圖像轉換爲灰度圖,但我無法獲得瀏覽器上輸出的濾鏡圖像。我用這個代碼GD imagefilter沒有圖像輸出

<?php 
$thumb="w=250&q=100"; 
$imgstring = get_image('cover_image',1,1,0,NULL,$thumb); 
$im = imagecreatefromjpeg($imgstring); 
imagefilter($im, IMG_FILTER_GRAYSCALE); 
header("Content-type: image/jpg"); 
imagejpeg($im); 
imagedestroy($im); 
?> 

**的$ imgstring是圖像的URL字符串( 'http://xxx.xx/image.jpg')。

使用標題內容行的結果是一個錯誤「警告:不能修改標題信息 - 標題已經發送...」,其次是看起來是圖像代碼(很多問號字符和其他垃圾) 。

沒有標題內容系,結果又正好是圖像的代碼(?)(符號和字符)

有什麼不對?

回答

1

錯誤正是它所說的 - 代碼中的某些內容導致執行輸出,這會導致調用header(),從而阻止設置內容類型。在沒有任何有效的內容類型標題的情況下,客戶端瀏覽器假定爲text/plain,並顯示JPEG圖像 - 作爲原始「垃圾」。

你需要弄清楚你的代碼執行WHERE即輸出(我敢打賭閃亮一分錢是在get_image()功能,並消除它。

+0

您的幫助非常感謝,但我仍然 – drivebass

+0

「無法修改標題」的錯誤行信息會告訴你輸出的確切位置,直到文件名/行號,你需要看看 –

+0

這裏是我得到的警告信息:警告:無法修改標頭信息 -/xxxx/xxxx/xxxx/xxxx/xxxx/xxxx/xxxx中已經發送的標頭(輸出開始於/xxxx/xxxx/xxxx/xxxx/xxxx/xxxx/xxxx/header.php:3) xxxx/98行 header.php的第3行是這樣的:> 我的模板頁面的98行是這樣的:header('Content-type:image/jpeg'); (jpeg的標題將圖像顯示爲圖像而不是文本) – drivebass