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, за подсказки тоже буду благодарен.