Как сделать кроп фото по окружности?

Всем привет. Есть задача из квадратного изображения сделать круглое силами php и наложить получившееся изображение на подложку. Нашёл кучу готовых решений, но проблема у всех из них в том, что при наложении png-ого изображения на подложку, у изображения проявляется маска, хз как это назвать правильно.

Такой код:
$mask = imagecreatetruecolor($this->width, $this->height);
        $black = imagecolorallocate($mask, 0, 0, 0);
        $magenta = imagecolorallocate($mask, 255, 0, 255);
       
        imagefill($mask, 0, 0, $magenta);
  
        imagefilledellipse(
            $mask,
            ($this->width / 2),
            ($this->height / 2),
            $this->width,
            $this->height,
            $black
        );

        imagecolortransparent($mask, $black);
        imagecopymerge($this->img, $mask, 0, 0, 0, 0, $this->width, $this->height, 100);
        imagedestroy($mask);


После обрезки получаю такое:
9b4cbb24cd064539a23c697efff35666.PNG
После наложения такое:
3e4d74cad0aa48fca49f1a5ab86a039d.PNG

Может быть я недопонимаю саму механику создания изображений с прозрачным фоном или наложения. Подскажите, как правильно сделать кроп по окружности с прозрачным фоном, чтобы при наложении на другое иозбражение фон оставлся действительно прозрачным?
  • Вопрос задан
  • 187 просмотров
Пригласить эксперта
Ответы на вопрос 1
veshetu
@veshetu
web-dev
по пиксельно скопировать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы