0

これらのコードを組み合わせることができません。テストしましたが、動作しません (エラー)。助けてください

IP を表示

 <?php
    $img_number = imagecreate(275,225);
    $backcolor = imagecolorallocate($img_number,102,102,153);
    $textcolor = imagecolorallocate($img_number,205,205,205);
    imagefill($img_number,0,0,$backcolor);
    $number = " Your IP is $_SERVER[REMOTE_ADDR]";
    Imagestring($img_number,10,5,5,$number,$textcolor);
    header("Content-type: image/jpeg");
    imagejpeg($img_number);
    ?>

+ 背景画像

<?php
$im = imagecreatefrompng("imagetest.png");
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>

ファイル内 (image.php) /助けてください /ありがとう

4

1 に答える 1

0

やりたいことは、最初のスクリプトの最初の 2 行 (を除く<?php) と 4 行目を、2 番目のスクリプトの最初の行に置き換えることです。

最初のスクリプトでは、画像リソースを作成し、色リソースを作成してから背景を塗りつぶしています。代わりに、画像から画像リソースを作成し、背景をその画像で塗りつぶします。

これを試して:

<?php
    $img = imagecreatefrompng("imagetest.png");
    $textcolor = imagecolorallocate($img,205,205,205);
    $number = "Your IP is {$_SERVER[REMOTE_ADDR]}"; //Also note the interpolation here. Not neccesary but it is nicer
    imagestring($img,10,5,5,$number,$textcolor);
    header("Content-type: image/jpeg");
    imagejpeg($img);
    imagedestroy($img);

私はこれをテストしていませんが、自分で同様のことを行ったので、うまくいくと確信しています. ただし、テキストの位置をハードコーディングするのではなく、画像のサイズに基づいて配置するのに最適な場所を計算できることをお勧めします。getimagesize関数を見てください。

于 2017-08-08T05:05:49.130 に答える