imagefilltoborder

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefilltoborderPreenche até encontrar uma cor especificada

Descrição

imagefilltoborder(
    GdImage $image,
    int $x,
    int $y,
    int $border_color,
    int $color
): bool

imagefilltoborder() realiza um preenchimento cuja cor de borda é definida por border_color. O ponto de início do preenchimento é x, y (canto superior esquero é 0, 0) e a região é preenchida com a cor informada em color.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

x

Coordenada x do início.

y

Coordenada y do início.

border_color

A cor da borda. Um identificador de cor criado com imagecolorallocate().

color

A cor de preenchimento. Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.0.0 O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Example #1 Preenchendo uma elipse com uma cor

<?php
// Cria a imagem, com fundo branco
$im = imagecreatetruecolor(100, 100);
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 255, 255, 255));

// Desenha uma elipse com borda preta para ser preenchida
imageellipse($im, 50, 50, 50, 50, imagecolorallocate($im, 0, 0, 0));

// Define a borda e a cor de preenchimento
$border = imagecolorallocate($im, 0, 0, 0);
$fill = imagecolorallocate($im, 255, 0, 0);

// Preenche a seleção
imagefilltoborder($im, 50, 50, $border, $fill);

// Mostra e libera memória
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Preenchendo uma elipse com uma cor

Notas

O algoritmo não se lembra explicitamente de quais pixels já foram definidos, mas infere isso a partir da cor do pixel, portanto ele não consegue distinguir entre pixels que acabaram de ser definidos de pixels que já estavam lá. Isto significa que ao escolher uma cor de preenchimento que já existe na imagem pode gerar resultados indesejados.