Php 保存裁剪图像时屏幕上出现垃圾

Php 保存裁剪图像时屏幕上出现垃圾,php,gd,Php,Gd,我的代码正在工作并保存裁剪的图像,但是,我需要它只显示回声中的内容 现在,如果我保留标题行,它只显示屏幕上的图像,而不显示回声中的内容 如果我删除标题行,它会在屏幕上显示大量垃圾,然后显示回显 我怎么能不显示垃圾或只是图像,然后显示回声中的内容 这是我的密码 $src = 'images/'.$imagename; $w=250; $h=300; $x=$_POST['x']; $y=$_POST['y']; $png_quality = 0; // if I remov

我的代码正在工作并保存裁剪的图像,但是,我需要它只显示回声中的内容

现在,如果我保留标题行,它只显示屏幕上的图像,而不显示回声中的内容

如果我删除标题行,它会在屏幕上显示大量垃圾,然后显示回显

我怎么能不显示垃圾或只是图像,然后显示回声中的内容

这是我的密码

$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;
$src='images/。$imagename;
$w=250;
$h=300;
$x=$_POST['x'];
$y=$_POST['y'];
$png_质量=0;
//如果我删除这个标题,我会收到垃圾邮件,而下面的回音中没有任何内容
标题('Content-type:image/png');
$image=imagecreatefrompng($src);
如果(!$src)
退出(“非有效图像”);
$crop=IMAGECreateTureColor($w,$h);
$new=imagecopy($crop,$image,0,0,$x,$y,$w,$h);
图像PNG(作物);
图像png($crop,$src,$png_质量))

echo稍微清理了一下您的代码。看起来您都在保存裁剪后的png,并使用
imagepng($crop)将其输出到浏览器。为什么?

imagepng-将PNG图像输出到浏览器或文件

综上所述,我假设您希望裁剪并更新磁盘上的文件,然后将更新后的文件作为
img
属性的
src
进行渲染

只有当您试图直接输出图像时,该标题才有意义

<?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之前就出现了脚本错误。

没有在呈现任何HTML的同一页面中生成图像的代码跳出是语法错误:
imagepng($crop,$src,$png_-quality))
我只想上传图像(代码的其他部分),让成员裁剪它,然后保存图像。然后我希望屏幕显示回声中的内容,或者更好的做法是使用
标题('Location:https://example.com?msg=saved' );退出;
这样它就不必输出图像,只需保存图像并返回到“成员”页面。在图像返回到“成员”区域之前,我需要先更新数据库以存储图像名称。嗨,兰迪,我想我的回答会有帮助。祝你好运!@ficuscar非常感谢你。取出
图像($crop)
成功了。我不知道那是在显示图像lol。现在一切都很好。