GD imagefilter没有图像输出

时间:2013-06-03 16:09:46

标签: php gd imagefilter

我正在尝试使用GD imagefilter将jpg图像转换为灰度图像,但我无法在浏览器上输出过滤后的图像。我用这个代码

<?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 个答案:

答案 0 :(得分:1)

错误正是它所说的 - 代码中的某些内容导致执行输出,这会导致header()调用,从而阻止设置内容类型。在没有任何有效的内容类型标题的情况下,客户端浏览器会假定text / plain,并显示您的JPEG图像 - 作为原始“垃圾”。

你需要弄清楚你的代码中的哪个输出正在执行(我愿意在get_image()函数中下注一个闪亮的便士,并消除它。