2024年PHP开发者大会(日本)

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 条笔记

1
josecarlosphp
9 个月前
$color 参数可以是像这样的字符串

"rgb(255, 255, 255)"

如您所料,此示例表示白色。
"rgb" 表示红-绿-蓝,数值是每种颜色的数量,范围从 0 到 255。

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