此方法已弃用吗?
我们该怎么做呢?
(PECL imagick 2, PECL imagick 3)
Imagick::roundCorners — 圆角图像
此函数自 Imagick 3.4.4 起已 弃用。强烈建议不要依赖此函数。
$x_rounding
,$y_rounding
,$stroke_width
= 10,$displace
= 5,$size_correction
= -6圆角图像。前两个参数控制圆角的程度,后三个参数可以用来微调圆角过程。如果 Imagick 编译时使用的是 ImageMagick 6.2.9 或更高版本,则可以使用此方法。如果 Imagick 编译时使用的是 ImageMagick 7.0.0 或更高版本,则无法使用此方法。
x_rounding
x 圆角
y_rounding
y 圆角
stroke_width
描边宽度
displace
图像位移
size_correction
大小校正
成功时返回 true
。
示例 #1 使用 Imagick::roundCorners()
圆角图像
<?php
$image = new Imagick();
$image->newPseudoImage(100, 100, "magick:rose");
$image->setImageFormat("png");
$image->roundCorners(5,3);
$image->writeImage("rounded.png");
?>
替代解决方案
// 示例值
$width = 250;
$height = 250;
$cornerRadius = 10;
// 创建蒙版图像
$mask = new Imagick();
$mask->newImage($width, $height, new ImagickPixel('transparent'), 'png');
// 创建圆角矩形
$shape = new ImagickDraw();
$shape->setFillColor(new ImagickPixel('black'));
$shape->roundRectangle(0, 0, $width, $height, $cornerRadius, $cornerRadius);
// 绘制矩形
$mask->drawImage($shape);
// 应用蒙版
$image->compositeImage($mask, Imagick::COMPOSITE_DSTIN, 0, 0);
我在此处找到了解决方案
https://github.com/Imagick/imagick/issues/213#issuecomment-385928740