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