Imagick::roundCorners()
(PECL imagick 2.0.0)
Rounds image corners
说明
Imagick::roundCorners(float $x_rounding,float $y_rounding[,float $stroke_width= 10[,float $displace= 5[,float $size_correction= -6]]]): bool
Rounds image corners. The first two parameters control the amount of rounding and the three last parameters can be used to fine-tune the rounding process.此方法在Imagick基于ImageMagick 6.2.9以上版本编译时可用。
参数
- $x_rounding
x rounding
- $y_rounding
y rounding
- $stroke_width
stroke width
- $displace
image displace
- $size_correction
size correction
范例
Example #1 Using Imagick::roundCorners():
Rounds the image corners
<?php $image = new Imagick(); $image->newPseudoImage(100, 100, "magick:rose"); $image->setImageFormat("png"); $image->roundCorners(5,3); $image->writeImage("rounded.png"); ?>
返回值
成功时返回TRUE
。
Is this method deprecated? what can we do instead ?
Alternative solution: // example values $width = 250; $height = 250; $cornerRadius = 10; // create mask image $mask = new Imagick(); $mask->newImage($width, $height, new ImagickPixel('transparent'), 'png'); // create the rounded rectangle $shape = new ImagickDraw(); $shape->setFillColor(new ImagickPixel('black')); $shape->roundRectangle(0, 0, $width, $height, $cornerRadius, $cornerRadius); // draw the rectangle $mask->drawImage($shape); // apply mask $image->compositeImage($mask, Imagick::COMPOSITE_DSTIN, 0, 0); I found solution here: https://github.com/Imagick/imagick/issues/213#issuecomment-385928740