PHP Conference Japan 2024

Imagick::transparentPaintImage

(PECL imagick 2 >= 2.3.0,PECL imagick 3)

Imagick::transparentPaintImage將像素繪製為透明

說明

public Imagick::transparentPaintImage(
    mixed $target,
    float $alpha,
    float $fuzz,
    bool $invert
): bool

將符合目標顏色的像素繪製為透明。如果 Imagick 是針對 ImageMagick 版本 6.3.8 或更新版本編譯的,則可以使用此方法。

參數

target

要繪製的目標顏色

alpha

透明度級別:1.0 為完全不透明,0.0 為完全透明。

fuzz

模糊量。例如,將 fuzz 設定為 10,則強度分別為 100 和 102 的紅色會被視為相同顏色。

invert

如果為 true,則繪製任何不符合目標顏色的像素。

傳回值

成功時傳回 true

範例

範例 #1 Imagick::transparentPaintImage()

<?php
function transparentPaintImage($color, $alpha, $fuzz) {
$imagick = new \Imagick(realpath("images/BlueScreen.jpg"));

//需要使用支援透明度的格式
$imagick->setimageformat('png');

$imagick->transparentPaintImage(
$color, $alpha, $fuzz * \Imagick::getQuantum(), false
);

//非必要,但有助於整理剩餘的像素
$imagick->despeckleimage();

header("Content-Type: image/png");
echo
$imagick->getImageBlob();
}

?>

新增筆記

使用者貢獻的筆記 1 則筆記

1
josecarlosphp
9 個月前
$color 參數可以是像這樣的字串

"rgb(255, 255, 255)"

如您所知,該範例代表白色。
"rgb" 表示紅-綠-藍,數值是每個數量的數值,從 0 到 255。

黑色會是 "rgb(0, 0, 0)"。
完整的紅色會是 "rgb(255, 0, 0)"。
To Top