GD图像过滤器没有图像输出


GD imagefilter no image output

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

<?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')。

对于标题内容行,结果是一个错误"警告:无法修改标题信息-标题已经由…发送",后面跟着似乎是图像代码(很多问号字符和其他垃圾)。

如果没有标题内容行,结果只是图像代码(?)(符号和字符)

怎么了?

这个错误就是它所说的——代码中的某些东西导致执行输出,这会杀死header()调用,从而阻止设置内容类型。在没有任何有效的内容类型头的情况下,客户端浏览器假定为文本/纯文本,并将您的JPEG图像显示为原始的"垃圾"。

您需要找出代码中执行输出的位置(我愿意打赌它在get_image()函数中,并消除它。