そこで、PHP Doc でいくつかのコードを見つけ、それを少し編集して、持っている 2 つの画像をマージしました。その後、画像はサーバー上のフォルダーに保存されます。ただし、わずかな問題があり、なぜそれが起こっているのかわかりません。
まず私のコード:
$glassurl = $_GET['GlassImg'];
$frameurl = $_GET['FrameImg'];
$filename = (int)date("H:i:s");
$src = imagecreatefromgif($frameurl);
$dest = imagecreatefromjpeg($glassurl);
imagecolortransparent($src, imagecolorat($src, 0, 0));
imagealphablending($dest, false);
imagesavealpha($dest, true);
imagealphablending($src, false);
imagesavealpha($src, true);
$src_x = imagesx($src);
$src_y = imagesy($src);
imagecopymerge($dest, $src, 0, 0, 0, 0, $src_x, $src_y, 100);
// Output and free from memory
imagepng($dest, 'uploads/imagetest.png');
imagegif($dest);
imagedestroy($dest);
imagedestroy($src
);
次に、画像に関するいくつかの情報:
- 両方の画像はまったく同じサイズです
- 「パターン」画像は単なるブロックの色/パターンです
- フレーム画像は、フレーム内に透明な部分があります (パターンが透けて見えるようにするため)。
- 余分な模様を目立たなくするために、フレームの周囲を白くしています。
これらのパーツがあるため、フレームをパターンに重ねると、ガラスのパターンが内側にある窓枠が生成され、白が残りのパターンを隠すことを期待していました.
説明するために、画像を提供しました。そして何が起こるか。
パターン:
フレーム:
結果:
ご覧のとおり、期待した結果にはなりません。誰が私が間違っているのか教えてもらえますか? フレームをパターンに重ねて、透明な中心を維持し、余分な白を使用して残りのパターンを覆いたいと思います。どんな助けでも大歓迎です。