Я не могу использовать прозрачный фон с imagecopymerge - PullRequest
5 голосов
/ 03 апреля 2011

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

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

Спасибо.

Ответы [ 2 ]

7 голосов
/ 03 апреля 2011

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

0 голосов
/ 03 апреля 2011

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

$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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...