Я не могу использовать прозрачный фон с imagecopymerge

Я imagecopymerge($dst_r, $logo, 0, 0, 0, 0, $LogoX, $LogoY, 100); где $logo – это файл png с прозрачным фоном. По какой-то причине фон получается вместо белого.

Что я делаю не так?

Благодарю.

Вам нужно использовать imagealphablending($dst_r, TRUE); чтобы разрешить копирование с сохранением прозрачных цветов. Многие комментарии (…) в руководстве предполагают использование imagecopy вместо этого, поскольку imagecopymerge никогда не предназначался для использования с прозрачностью. Если вы все равно используете pct=100 , то нормальная imagecopy может быть вариантом.

Это для текста, но вы можете понять. Было бы более полезно, если бы вы опубликовали весь код.

 $font = 25; $string = "Hello"; $im = @imagecreatetruecolor(strlen($string) * $font / 1.5, $font); imagesavealpha($im, true); imagealphablending($im, false); $white = imagecolorallocatealpha($im, 255, 255, 255, 127); imagefill($im, 0, 0, $white); $lime = imagecolorallocate($im, 204, 255, 51); imagettftext($im, $font, 0, 0, $font - 3, $lime, "font.ttf", $string); header("Content-type: image/png"); imagepng($im); imagedestroy($im);