生成图像 - 由于图像包含错误,因此无法显示图像

时间:2012-02-08 03:48:17

标签: php image

我正在使用下面的代码显示一个图像,显示有多少用户连接到我的网站的文本。我用不同的'vad.png'替换了我正在使用的图像。现在我收到错误“图像无法显示,因为它包含错误”

任何人都知道如何解决这个问题?

$result = mysql_query("SELECT * FROM server_status"); 

$row = mysql_fetch_array( $result ); 
$text = "Online"; 
$image = imagecreatefrompng('vad.png'); 
$black = imagecolorallocate($image, 10, 0, 0);
if (strlen($row['users_online']) >= 3){ 
imagefttext($image, 11, 0, 435, 38, $black, './verdana.ttf', $row['users_online']); 
}
else
{
imagefttext($image, 11, 0, 440, 38, $black, './verdana.ttf', $row['users_online']); 
}
imagefttext($image, 8, 0, 432, 55, $black, './verdana.ttf', $text); // Remove the // ahead of this line to use it 
header('Content-type: image/png'); 
imagepng($image); 
imagedestroy($image);

3 个答案:

答案 0 :(得分:2)

评论header('Content-type: image/png');并从浏览器调用脚本。检查可能出现在与图像本身相关的垃圾之前的消息。

如果错误报告/显示也已关闭,您可能需要在脚本顶部添加error_reporting(E_ALL); ini_set('display_errors', 1);

答案 1 :(得分:0)

当我意外地将一些0字节图像缓存文件从一台服务器转移到另一台服务器时,我收到了此错误。您可能想要检查它,它可能是无效的缓存文件,或者它甚至无法覆盖它。

这是我写的关于此内容的博文。 http://www.daxmax.com/index.php/2012/03/20/wordpresstimthumb-image-cannot-be-displayed-because-it-contained-errors/

答案 2 :(得分:0)

我发现当我将一些文件上传到网络服务器时,它们将无法显示,而mozilla会显示有关文件错误的信息...

问题是由filezilla中的传输类型引起的,它应该是BINARY或AUTO,而不是ASCII。 这是我解决问题的方法,也许对某人有帮助