【问题标题】:function imagejpeg($image) doesn't display the image函数 imagejpeg($image) 不显示图像
【发布时间】:2014-03-25 01:41:17
【问题描述】:

我正在尝试制作图像生成器 php 文件并使用此代码>

<?php
header('content-type: image/jpeg');
$email = 'example@example.com';
$email_length = strlen($email);
$font_size = 4;
$image_height = imagefontheight($font_size);
$image_width = imagefontheight($font_size) * $email_length;
$image = imagecreate($image_width, $image_height);
imagecolorallocate($image, 255, 255, 255);
$font_color = imagecolorallocate($image, 0, 0, 0);
imagestring($image, $font_size, 0, 0, $email, $font_color);
imagejpeg($image);
?>

当我在 Chrome 中加载文件时,它没有显示图像。在 Mozilla 中,它显示错误“图像“...”无法显示,因为它包含错误”。但是当我把 imagejpeg($image,"new.jpg");而不是 imagejpeg($image);它使img文件正确。有谁知道我应该怎么做才能解决这个问题?

【问题讨论】:

  • 显示的可能是 PHP 解析错误,因为您已将内容类型设置为图像。我已经在本地运行了,它似乎工作正常,我建议你注释掉 header 调用并直接运行脚本以查看是否有任何 PHP 错误出现。
  • 我试过了,它没有显示错误,但浏览器中有原始数据。

标签: php


【解决方案1】:

我将您的代码放在我的本地 Web 服务器上,取出了 header 调用,我收到一条错误消息,指出函数 imagefontheight 未定义。

我认为您可能没有安装 GD 库,因此对任何 image... 函数的调用都会失败。

我不能再告诉你了,除非你告诉我们你有什么操作系统,以及 PHP 是如何运行的。 (CLI、Apache 等)

【讨论】:

  • 我已经安装了 GD,已经检查过了。我使用 Windows 7 x86,我在 NetBeans 中编写 PHP,并使用 Apache 在 XAMPP 控制面板中运行。
  • 你可能有额外的数据被发送到浏览器
  • 去掉结束PHP脚本标签,并确保开始脚本标签之前没有空格。
猜你喜欢
  • 2017-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
  • 2013-05-18
  • 1970-01-01
  • 2020-07-24
相关资源
最近更新 更多