• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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