为什么这段代码不起作用?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
<?php
header('Content-type: image/png');
$myImage = imagecreate(200, 100);
$myGray = imagecolorallocate($myImage, 204, 204, 204);
$myBlack = imagecolorallocate($myImage, 0, 0, 0);
imageline($myImage, 15, 35, 120, 60, $myBlack);
imagepng($myImage);
imagedestroy($myImage);
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我总是得到错误The image cannot be displayed because it contains errors..我已经启用了php_gd2.dll,memory_limit在php.ini中也是128M.如果我删除header('Content-type: image/png');我没有得到错误,但我也没有看到图像.我只看到这个: -
‰PNG ??? IHDR???È???d???ùHíH???PLTEÌÌÌ???Ó33d???MIDATH‰c£ Àx?§” Nf*k²Ã)Ãø?§”•5}À)ÅS†ÚšpJUà”a§²¦œ2ÔŽw<špJ‚Q0 †;?? uTBúŸ????IEND®B,`
Joh*_*han 27
您不能在header()之前输出任何内容.只需启动文档,header()然后显示用于显示图像的代码.跳过html标签.甚至不要在header()之前写一个空白行.
如果要在您的html文档中显示图像,则必须在两个文件中进行.一,称它为例如image.php,只包含包含标题的php代码.第二个文件,称为show.php或show.html,包含您喜欢的HTML代码,包括<?php.
Gor*_*don 11
如果您对输出进行base64编码,则可以直接使用数据URI方案.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
<?php
$myImage = imagecreate(200, 100);
$myGray = imagecolorallocate($myImage, 204, 204, 204);
$myBlack = imagecolorallocate($myImage, 0, 0, 0);
imageline($myImage, 15, 35, 120, 60, $myBlack);
ob_start();
imagepng($myImage);
printf('<img src="data:image/png;base64,%s"/>',
base64_encode(ob_get_clean()));
imagedestroy($myImage);
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
请注意,并非所有浏览器都支持数据URI(猜猜哪些).
| 归档时间: |
|
| 查看次数: |
62249 次 |
| 最近记录: |