Imagick::floodFillPaintImage

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

Imagick::floodFillPaintImageAltera o valor da cor de qualquer pixel que corresponda ao alvo

Descrição

public Imagick::floodFillPaintImage(
    mixed $fill,
    float $fuzz,
    mixed $target,
    int $x,
    int $y,
    bool $invert,
    int $channel = Imagick::CHANNEL_DEFAULT
): bool

Altera o valor da cor de qualquer pixel que corresponda ao alvo e seja um vizinho imediato. Este método é um substituto para a função preterida Imagick::paintFloodFillImage(). 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

fill

Objeto ImagickPixel ou uma string contendo a cor de preenchimento

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.

target

Objeto ImagickPixel ou uma string contendo a cor alvo a ser pintada

x

Posição X do início do preenchimento

y

Posição Y do início do preenchimento

invert

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

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Example #1 Exemplo de Imagick::floodfillPaintImage()

<?php

/* Cria novo objeto Imagick */
$im = new Imagick();

/* cria imagens vermelha, verde e azul */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Anexa as imagens em uma só */
$im->resetIterator();
$combined = $im->appendImages(true);

/* Grava a imagem intermediária para comparação */
$combined->writeImage("floodfillpaint_intermediate.png");

/* O pixel alvo para pintura */
$x = 1;
$y = 1;

/* Obtém a cor de pintura */
$target = $combined->getImagePixelColor($x, $y);

/* Pinta o pixel na posição 1,1 de preto e todos os pixels
   vizinhos que correspondam à cor alvo */
$combined->floodfillPaintImage("black", 1, $target, $x, $y, false);

/* Grava o resultado */
$combined->writeImage("floodfillpaint_result.png");
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo : Imagick::floodfillPaintImage()
Saída do exemplo : Imagick::floodfillPaintImage()