PHP Conference Japan 2024

Imagick::roundCorners

(PECL imagick 2, PECL imagick 3)

Imagick::roundCorners圆角图像

警告

此函数自 Imagick 3.4.4 起已弃用。强烈建议不要依赖此函数。

描述

public Imagick::roundCorners(
    float $x_rounding,
    float $y_rounding,
    float $stroke_width = 10,
    float $displace = 5,
    float $size_correction = -6
): bool

圆角图像。前两个参数控制圆角的程度,后三个参数可用于微调圆角过程。如果 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");
?>

添加注释

用户贡献的注释 2 条注释

7
mmehdibalouchi at gmail dot com
7 年前
此方法已弃用吗?
我们还可以怎么做?
-2
ar2rsoft at gmail dot com
5 年前
替代方案
// 示例值
$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
To Top