PHP Conference Nagoya 2025

Imagick::transparentPaintImage

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

Imagick::transparentPaintImagePinta pixels com a cor transparente

Descrição

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

Pinta pixels que correspondem à cor alvo com a cor transparente. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.8 ou superior.

Parâmetros

target

A cor alvo a ser pintada

alpha

O nível de transparência: 1.0 é totalmente opaco e 0.0 é totalmente transparente.

fuzz

A quantidade de fuzz. Por exemplo, definir fuzz como 10 e a cor vermelha nas intensidades de 100 e 102, respectivamente, agora são interpretadas como a mesma cor.

invert

Se igual a true, pinta qualquer pixel que não corresponda à cor alvo.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Exemplo de Imagick::transparentPaintImage()

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

// Precisa estar em um formato que suporte transparência
$imagick->setimageformat('png');

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

// Não requerido, mas ajuda a organizar os pixels deixados para trás
$imagick->despeckleimage();

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

?>

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
1
josecarlosphp
9 months ago
The $color parameter can be a string like this:

"rgb(255, 255, 255)"

As you can guess, that example represents white color.
"rgb" indicates red-green-blue, and numeric values are amounts for each, from 0 to 255.

Black color it will be "rgb(0, 0, 0)".
Full red color it will be "rgb(255, 0, 0)".
To Top