我的代码正在工作并保存裁剪的图像,但是,我需要它才能显示回声中的内容。
现在它只显示屏幕上的图像,如果我保留标题行并且它没有显示回声中的内容。
如果我删除标题行,它会在屏幕上显示很多垃圾,然后显示回声。
我怎样才能显示垃圾或只显示图像并制作显示回声中的内容?
这是我的代码......
$src = 'images/'.$imagename;
$w=250;
$h=300;
$x=$_POST['x'];
$y=$_POST['y'];
$png_quality = 0;
// if I remove this header I get junk and nothing from the echo below
header('Content-type: image/png');
$image = imagecreatefrompng($src);
if (!$src)
exit("not a valid image");
$crop = imagecreatetruecolor($w,$h);
$new = imagecopy ($crop, $image, 0, 0, $x, $y, $w, $h);
imagepng($crop);
imagepng($crop,$src,$png_quality))
echo<<<END
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Image </title>
</head>
<body>
Here is your image:<br /><br />
<img src="images/$imagename">
</body>
</html>
END;
答案 0 :(得分:1)
稍微清理了一下你的代码。看起来您要保存裁剪的png并将其输出到imagepng($crop);
的浏览器。为什么?
imagepng - 将PNG图像输出到浏览器或文件
查看整个内容我假设您要裁剪并更新磁盘上的文件,然后将其用作src
属性的img
来呈现该更新的文件。
如果您尝试直接输出图像,那么仅标题是有意义的。
<?php
$src = 'images/' . $imagename;
$w = 250;
$h = 300;
$x = $_POST['x'];
$y = $_POST['y'];
$png_quality = 0;
// if I remove this header I get junk and nothing from the echo below
//header('Content-type: image/png');
$image = imagecreatefrompng($src);
if (!is_resource($image)) exit("not a valid image");
$crop = imagecreatetruecolor($w, $h);
$new = imagecopy($crop, $image, 0, 0, $x, $y, $w, $h);
//imagepng($crop); Is this desired?
imagepng($crop, $src, $png_quality);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Image </title>
</head>
<body>
Here is your image:<br /><br />
<img src="images/<?=$imagename?>">
</body>
</html>
最后,假设代码共享是准确的,你应该得到一个错误。确保您有错误报告并正在检查日志。我猜你把图像渲染到了浏览器(标题可能会有帮助),然后在点击HTML之前就出现了脚本错误。