Imagick::floodFillPaintImage

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

Imagick::floodFillPaintImage — Modifie la valeur de la couleur de chaque pixel correspondant à la cible

Description

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

Modifie la valeur de la couleur de chaque pixel correspondant à la cible et qui se trouve dans le voisinage immédiat. Cette méthode est un remplacement de la méthode obsolète Imagick::paintFloodFillImage(). Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.

Liste de paramètres

fill

Objet ImagickPixel ou une chaîne contenant la couleur de remplissage.

fuzz

La quantité de tolérance (fuzz). Par exemple, en définissant fuzz à 10, la couleur rouge aux intensités de 100 et de 102 est désormais interprétée comme la même couleur.

target

Objet ImagickPixel ou une chaîne contenant la couleur cible à peindre.

x

Position de départ en X du pot de peinture.

y

Position de départ en Y du pot de peinture.

invert

Si vaut true, peint chaque pixel qui ne correspond pas à la couleur cible.

channel

N'importe quelle constante de canal valide pour le mode de canal utilisé. Pour l'appliquer à plus d'un canal, il faut combiner les constantes de canaux en utilisant des opérateurs bit à bit. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Se reporter à la liste des constantes de canaux

Valeurs de retour

Retourne true en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::floodfillPaintImage()

<?php

/* Crée un nouvel objet imagick */
$im = new Imagick();

/* Crée les images bleus, vertes et rouges */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Ajoute l'image dans une autre */
$im->resetIterator();
$combined = $im->appendImages(true);

/* Sauvegarde de l'image intermédiaire pour comparaison */
$combined->writeImage("floodfillpaint_intermediate.png");

/* Le pixel cible à peindre */
$x = 1;
$y = 1;

/* Récupère la couleur à utiliser pour peindre */
$target = $combined->getImagePixelColor($x, $y);

/* Peint le pixel à la position 1,1 en noir, ainsi que tous les pixels voisins
   qui correspondent à la couleur cible */
$combined->floodfillPaintImage("black", 1, $target, $x, $y, false);

/* Sauvegarde le résultat */
$combined->writeImage("floodfillpaint_result.png");
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : Imagick::floodfillPaintImage()
Affichage de l'exemple : Imagick::floodfillPaintImage()