php Imagik округление изображение

Всем привет! Как округлить изображение с помощью imagick? В старых версиях можно было так

$img->adaptiveResizeImage($size, $size, 100);
$img->setImageFormat('png');
$img->roundCornersImage(90, 90, 0, 0, 0);

в новых версиях roundCornersImage убрали как устаревший метод. Написал такой код

static public function circle(string $img, string $output_img = "image.png") {
        $image = new Imagick();
        try {
            $image->readImageBlob($img);
            $image->adaptiveResizeImage(100, 150, 100);
        } catch (ImagickException $e) {
            die('Ошибка обработки изображения!');
        }

        $height = $image->getImageHeight();
        $width = $image->getImageWidth();

        $mask = new Imagick();
        $mask->newImage($width, $height, new ImagickPixel('transparent'), 'png');

        $draw = new ImagickDraw();
        $draw->setFillColor(new ImagickPixel('#000000'));
        $draw->roundRectangle( 0,0,100,100, 100, 100 );
        $mask->drawImage( $draw );

        $image->compositeImage($mask, Imagick::COMPOSITE_DSTIN, 0, 0);
        $image->setImageFormat ("png32");
        $image->writeImageFile(fopen($output_img, "w"));
    }

Но его реализация мне не очень нравится. Маски использовать так-же не хочу. Задача сделать картинку 200х200px круглой и затем наложить на другую. Возможно есть другие библиотеки помимо imagick и gp, за подсказки тоже буду благодарен.


Ответы (0 шт):