Поэтому я нашел некоторый код в PHP Doc и немного отредактировал его, чтобы объединить два изображения, которые у меня есть. Затем изображение сохраняется в папке на сервере. Однако есть небольшая проблема, и я не могу понять, почему это происходит.
Во-первых, мой код:
$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
);
Во-вторых, немного информации об изображениях:
- Оба изображения абсолютно одинакового размера
- Изображение «шаблон» - это просто цвет блока/шаблон
- Изображение кадра имеет прозрачные части внутри кадра (чтобы узор был виден)
- Область вокруг рамки окрашена в белый цвет, чтобы убрать лишний рисунок.
Я надеялся, что когда я наложу рамку на шаблон из-за этих частей, получится оконная рама со стеклянным узором внутри, а белый цвет скроет оставшийся узор.
Для иллюстрации я предоставил изображения. и что происходит.
Шаблон:
Рамка:
Результат:
Как вы можете видеть, это не приводит к тому, что я ожидал. Может ли кто-нибудь сказать мне, где я ошибаюсь? Я хочу наложить рамку на узор, сохранив прозрачный центр и используя избыток белого, чтобы покрыть остальную часть узора. Любая помощь приветствуется.