2017-05-10 4 views
1

コードが正常に機能していて、切り取った画像を保存していますが、エコーだけを表示する必要があります。クロップされた画像を保存するときに迷惑メールが表示される

私はヘッダー行を保持し、エコー内の内容を表示していない場合は、画面上の画像のみを表示します。

ヘッダー行を削除すると、画面に多くの迷惑メールが表示され、エコーが表示されます。

迷惑メールや画像だけを表示しないようにするにはどうすればいいですか?エコーには何が表示されますか?ここで

$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

HTMLをレンダリングするのと同じページに画像を生成するコードがありません – RamRaider

+0

何かジャンプするのは構文エラーです: 'imagepng($ crop、$ src、$ png_quality))' – ficuscr

答えて

1

はあなたのコードビットクリーンアップ...私のコードです。あなたはクロップされたPNGを保存して、imagepng($crop);でブラウザに出力しているようです。どうして?私はあなたがトリミングし、ディスク上のファイルを更新するとし、それの全体を見てみると

imagepng — Output a PNG image to either the browser or a file

は、その後、あなたの 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を打つ前に、あなたがブラウザ(ヘッダが助けになるかもしれない)にイメージをレンダリングし、スクリプトエラーを持っていたと思います。

+0

イメージ(コードの他の部分)、メンバーがそれを切り抜いてイメージを保存できるようにします。次に、画面にエコーが表示されるようにするか、またはヘッダー( 'Location:https://example.com?msg=saved')を使用する方が良いでしょう。 exit; 'イメージを出力する必要はありません。保存してメンバーページに戻ってください。メンバーエリアに戻る前に、まずイメージ名を格納するためにデータベースを更新する必要があります。 –

+0

こんにちはランディ、私の答えが助けになると思います。がんばろう! – ficuscr

+0

@ficuscarありがとうございます。 'imagpng($ crop)'を取り出すことができました。私はそれがイメージを笑っているのを知らなかった。今は完璧に動作しています。 –

関連する問題