我有一个PHP文件,可生成指定大小的图像以供测试。我猜浏览器认为脚本的输出是text / html。到目前为止,我已经安装了php5-gd并将我的php文件保存为UTF-8而没有BOM,但我仍然有问题。使用readfile()将现有图像发送到浏览器可以正常工作。
我的PHP图像生成器:
header('Content-Type: image/jpeg');
$im = null;
$width = 400;
$height = 300;
if (isset($_GET['w']) && isset($_GET['h'])) {
if (is_numeric($_GET['w']) && is_numeric($_GET['h'])) {
$width = $_GET['w'];
$height = $_GET['h'];
}
}
$im = imagecreatetruecolor($width,$height);
$bg = imagecolorallocate($im, 255, 255, 255);
$orange = imagecolorallocate($im, 220, 210, 60);
imagestring($im, 3, 5, 5, 'TEST IMAGE', $orange);
imagejpeg($im);
imagedestroy($im);
来自PHP.net的示例代码也不起作用:
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
// Set the content type header - in this case image/jpeg
header('Content-Type: image/jpeg');
// Output the image
imagejpeg($im);
// Free up memory
imagedestroy($im);
使用readfile()方法:
header('Content-Type: image/jpeg');
readfile('./site_top/1.jpg');
更新:PEBKAC错误。 在安装gd时,我看到Apache服务器在此过程中重新启动,所以我没想到要自己重启它。原来我需要第二次重启Apache才能使安装正常工作。
答案 0 :(得分:1)
只需复制并粘贴您的代码,工作正常,如imagejpeg()函数的PHP页面所示:
注意: JPEG支持仅在编译PHP时可用 GD-1.8或更高版本。
确保您的PHP至少具有GD-1.8。
根据以下代码显示的图片: