2012-02-27 61 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文件任何其他东西。