Imagick::transparentPaintImage

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

Imagick::transparentPaintImage将像素涂成透明

描述

public Imagick::transparentPaintImage(
    混合 $target,
    浮点型 $alpha,
    浮点型 $fuzz,
    布尔型 $invert
): 布尔型

将与目标颜色匹配的像素涂成透明。如果 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 条说明

josecarlosphp
5 个月前
$color 参数可以是类似这样的字符串

"rgb(255, 255, 255)"

正如你可能猜到的,这个例子表示白色。
"rgb" 表示红-绿-蓝,数值是每个颜色的值,从 0 到 255。

黑色将是 "rgb(0, 0, 0)"。
纯红色将是 "rgb(255, 0, 0)"。
To Top