Imagick::floodFillPaintImage
(PECL imagick 2 >= 2.3.0, PECL imagick 3)
Imagick::floodFillPaintImage — Altera o valor da cor de qualquer pixel que corresponda ao alvo
Descrição
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: