Я использую скрипт для создания круглой фотографии с прозрачным фоном, а затем размещаю ее на другом изображении. При его добавлении розовый фоновый цвет, который был удален, появляется снова, но когда я открываю изображение круга в браузере, розовый фоновый цвет отсутствует. Это прозрачно.
$img1 = imagecreatefromjpeg("/path/uploads/resized-".$_POST["photo"]);
$x=imagesx($img1)-$width ;
$y=imagesy($img1)-$height;
$img2 = imagecreatetruecolor($x, $y);
$bg = imagecolorallocate($img2, 255, 200, 255);
imagefill($img2, 0, 0, $bg);
$e = imagecolorallocate($img2, 0, 0, 0);
$r = $x <= $y ? $x : $y;
imagefilledellipse($img2, ($x/2), ($y/2), $r, $r, $e);
imagecolortransparent($img2, $e);
imagecopymerge($img1, $img2, 0, 0, 0, 0, $x, $y, 100);
imagecolortransparent($img1, $bg);
$tempimageround = str_replace('.jpg','','/path/uploads/circle-'.$_POST["photo"]).'.png';
imagepng($img1,$tempimageround);
$new_photo2 = imagecreatefrompng($tempimageround);
imagecopy($jpg_image, $new_photo2, $photoleft, $phototop, 0, 0,$photowidth, $photoheight);
imagedestroy($img2);
imagedestroy($img1);
/path/uploads/circle-photo.png имеет прозрачный фон при просмотре в браузере, но сохраняет цвет фона 255 200 255 при размещении поверх $ jpg_image. Не уверен, что мне не хватает.
Задача ещё не решена.
Других решений пока нет …