Dans la bibliothèque de fonctions de traitement d'image PHP, ImageFillTobOrder est une fonction très pratique pour le remplissage des couleurs dans une zone spécifiée jusqu'à ce que la couleur limite soit rencontrée. Cette fonctionnalité est très courante lors de la modification des images et de la génération de graphiques dynamiques, en particulier lorsque des zones complexes doivent être remplies en couleur.
Cet article introduira en détail l'utilisation de la fonction ImageFillToborder et son principe de travail à travers des cas spécifiques, vous aidant à maîtriser rapidement cette technique de traitement d'image.
La fonction ImageFillToborder est utilisée pour remplir la couleur du pixel de point de départ spécifié et remplir la plage jusqu'à ce qu'une couleur limite s'arrête. Sa définition de fonction est la suivante:
bool imagefilltoborder ( resource $image , int $x , int $y , int $border , int $color )
$ Image : Poignée de ressources d'image.
$ x , $ y : les coordonnées du point de remplissage de départ.
$ Border : La valeur d'index de la couleur de la bordure, le remplissage ne franchira pas cette limite de couleur.
$ couleur : la valeur d'index de couleur utilisée pour le remplissage.
Renvoie True si le rembourrage réussit, sinon retournez faux .
Supposons que vous ayez une image avec différentes zones de couleur et que vous souhaitez remplir une certaine zone de couleur, mais que vous ne voulez pas que la couleur va au-delà des limites. L'ImageFillToborder peut être rempli à partir du point que vous avez spécifié jusqu'à ce qu'il rencontre la couleur limite prédéfinie.
L'exemple suivant montre comment créer un rectangle avec une bordure noire et le remplir avec une image d'image à l'intérieur en rouge.
<?php
// Créer une image vierge
$width = 200;
$height = 100;
$image = imagecreatetruecolor($width, $height);
// Attribuer des couleurs
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
$red = imagecolorallocate($image, 255, 0, 0);
// Fond rempli de blanc
imagefill($image, 0, 0, $white);
// Dessinez une bordure rectangulaire noire
imagerectangle($image, 50, 20, 150, 80, $black);
// utiliser imagefilltoborder depuis(51,21)Les points commencent à remplir le rouge,Jusqu'à ce que la bordure noire soit rencontrée
imagefilltoborder($image, 51, 21, $black, $red);
// Image de sortie
header("Content-Type: image/png");
imagepng($image);
// Libérer les ressources
imagedestroy($image);
?>
Créez d'abord une véritable image couleur de 200x100.
Définir des arrière-plans blancs.
Dessinez une bordure rectangulaire noire.
Commencez à remplir le rouge à partir d'un point à l'intérieur du rectangle jusqu'à ce que vous rencontriez une bordure noire.
Sortir directement les images de format PNG via le navigateur.
Après avoir exécuté ce code, vous pouvez voir une zone rectangulaire remplie de rouge avec des limites noires et la couleur de remplissage ne dépasse pas les limites.
L'ImageFillToborder sera rempli jusqu'à ce que la couleur limite soit rencontrée, de sorte que la couleur limite doit être précise ou que le remplissage peut être dépassé dans la plage attendue.
La couleur limite et la couleur de remplissage ne peuvent pas être les mêmes, sinon le remplissage ne sera pas valide.
Les coordonnées du point de départ devraient être situées dans une zone non liée, sinon il n'y aura pas d'effet de remplissage.
ImageFillToborder est un outil important pour remplir les couleurs de la zone dans le traitement de l'image PHP, et convient particulièrement aux scènes où le remplissage doit être limité par les limites. En définissant rationnellement le point de départ et les couleurs limites, une garniture précise des zones d'image complexes peut être réalisée.
Pour plus de fonctions de traitement d'image, veuillez vous référer au manuel officiel de PHP: https://gitbox.net/manual/en/fonction.imagefilltoborder.php