Как объединить PNGS с альфа-каналами в одно большое изображение? - PullRequest
3 голосов
/ 17 декабря 2010

Я пытаюсь наложить следующие слои:

gametile_masked_file gamertile_masked_file sanctum-background.png

на это:

alt text

Ноя продолжаю получать следующее:

alt text

Это соответствующий код, я не уверен, что мне не хватает:

    $sig_background = imagecreatefrompng("sanctum-signature.png");
imagealphablending($sig_background, false);
imagesavealpha($sig_background, true);
$sig_gamertile = imagecreatefrompng($gamertile_masked_file);
imagealphablending($sig_gamertile, false);
imagesavealpha($sig_gamertile, true);
$sig_gametile = imagecreatefrompng($gametile_masked_file);
imagealphablending($sig_gamertile, false);
imagesavealpha($sig_gamertile, true);
imagecopymerge($sig_background, $sig_gamertile, 175, 2, 0, 0, 64, 64, 100);
imagecopymerge($sig_background, $sig_gametile, 342, 20, 0, 0, 64, 64, 100);

Если какая-либо дополнительная информация отсутствуетПожалуйста, дайте мне знать, и я постараюсь заполнить пробелы.Спасибо за потраченное время.

edit - вот ссылки на файлы (размещенные в фотобакете) gamertile gametile

Ответы [ 2 ]

0 голосов
/ 21 декабря 2010

В вашем коде есть опечатка, это ошибка копирования / вставки или реальная ошибка?

Вы делаете:

$sig_gamertile = imagecreatefrompng($gamertile_masked_file);
imagealphablending($sig_gamertile, false);
imagesavealpha($sig_gamertile, true);

А потом:

$sig_gametile = imagecreatefrompng($gametile_masked_file);

Но сразу после этого вы продолжаете вызывать функции на $sig_gamertile вместо $sig_gametile:

imagealphablending($sig_gamertile, false);
imagesavealpha($sig_gamertile, true);

Очевидно, что радикальное переименование некоторых переменных поможет предотвратить это.

0 голосов
/ 21 декабря 2010

Строка:

imagealphablending($im, false);

отключает альфа-смешение.Используйте true вместо false .

...