Это дует мне в голову. Я хочу объединить 2 прозрачных PNG.GD2 - Копирование двух прозрачных изображений на черный фон
Первый - это круг ($ source), созданный на лету с квадратного изображения. Второй - это маркер карты ($ marker) с прозрачным кругом, который соответствует первому.
imagepng ($ source); и imagepng ($ marker); выводится так, как можно было бы ожидать. С прозрачным фоном.
Я затем создать пустой прозрачное изображение размером маркера, чтобы поместить их обоих вместе:
//NEW BLANK TRANSPARENT IMAGE
$dest = imagecreatetruecolor(50, 61);
$transparent = imagecolorallocatealpha($dest, 0, 0, 0, 127);
imagefill($dest, 0, 0, $transparent);
imagealphablending($dest, true);
imagesavealpha($dest,true);
//COPY THE CIRCLE
imagecopy($dest, $source, 5, 5, 0, 0, 41, 41);
//AND THE MARKER ON TOP
imagecopy($dest, $marker, 0, 0, 0, 0, 50, 61);
В результате круг выглядит как черный квадрат с кругом внутри. Я пробовал много комбинаций imagealphablending и imagesavealpha как на $ source, так и на $ dest, и ничего не работает.
Как удалить черный квадрат и оставить прозрачный источник $ в результате, как и до слияния?
Я просто попробовал свой код с 2 прозрачными изображениями, и это сработало для меня. Пробовал с помощью imagecolortransparent ($ dest, $ blackColor); '? – Uby
Просто сделал это. Даже если он мог столкнуться с другими чернокожими на картинке. Все еще не сработало. – Bruno
Проблема здесь в маске круга. Он отлично работает на своем, но при копировании на другое изображение он добавляет к нему черный фон. – Bruno