Dans PHP, la fonction ImageColorResolve () est une fonction de traitement d'image très utile. Il est utilisé pour analyser une couleur dans une image et le convertir en un index de couleur. Plus précisément, sa fonction est de savoir s'il existe déjà une couleur basée sur la configuration de couleur actuelle de l'image. Si la couleur existe déjà, la valeur d'index de la couleur est renvoyée; S'il n'existe pas, faux .
int imagecolorresolve(resource $image, int $red, int $green, int $blue);
$ Image : Image Resource, créé via des fonctions telles que ImageCreate () ou ImageCreateFromJPEG () .
$ Red, $ vert, $ bleu : trois valeurs entières représentant le composant RVB de la couleur, allant de 0 à 255.
La valeur de retour de la fonction ImageColorResolve () est un entier indiquant l'index de couleur de la couleur dans l'image. Si la couleur existe dans la table de couleur de l'image, elle renvoie la valeur d'index de la couleur (cette valeur d'index est la position d'index de la table de couleur de l'image). Si la couleur n'apparaît pas dans la table de couleur de l'image, FALSE est renvoyé.
En supposant que la valeur de couleur que nous avons transmise existe déjà dans la table de couleur de l'image, la fonction renvoie la valeur d'index de cette couleur. En PHP, la valeur d'index de la couleur est représentée par la table de couleur de l'image (comme la palette de couleurs). Une palette de couleurs est généralement une collection de couleurs utilisées lorsque vous travaillez avec des images. Lorsque nous devons manipuler une couleur, nous utilisons l'index de cette couleur dans la table de couleur au lieu d'utiliser directement la valeur RVB.
Par exemple:
$image = imagecreate(100, 100);
$red = imagecolorallocate($image, 255, 0, 0); // Créer un rouge
$blue = imagecolorallocate($image, 0, 0, 255); // Créer une couleur bleue
$resolvedRed = imagecolorresolve($image, 255, 0, 0); // Trouver du rouge
$resolvedBlue = imagecolorresolve($image, 0, 0, 255); // Trouver du bleu
$resolvedGreen = imagecolorresolve($image, 0, 255, 0); // Trouver du vert
echo "L'indice rouge est: $resolvedRed\n"; // Index rouge de sortie
echo "L'indice bleu est: $resolvedBlue\n"; // Index bleu de sortie
echo "L'indice vert est: $resolvedGreen\n"; // Sortir false, Parce que Green n'a pas été alloué
Dans l'exemple ci-dessus, $ résoludRed et $ résolvedBlue renvoient les valeurs d'index rouges et bleues, tandis que $ résolvedGreen reviendra faux car le vert n'a pas été affecté dans la table de couleur de l'image.
Lorsque nous appelons ImageColorResolve () , il vérifie la table de couleur dans l'image actuelle pour voir si la couleur que nous avons spécifiée existe déjà. Si la couleur existe dans la table de couleur de l'image, la fonction renvoie la valeur d'index de la couleur. Ces valeurs d'index sont un entier avec une position unique dans la table de couleur de l'image.
Si la couleur n'existe pas, le faux est renvoyé, ce qui signifie que la couleur n'a pas été affectée à l'image, peut-être parce que la couleur n'a pas été utilisée au moment de la création d'image, ou que la couleur a été supprimée.
Ceci est très utile lors du traitement des images, surtout lorsque nous voulons optimiser l'utilisation des couleurs et réduire la consommation de mémoire. En réutilisant les index de couleurs existants, le programme peut éviter de créer à plusieurs reprises la même couleur, d'économiser des ressources.
La fonction ImageColorResolve () est très utile dans certains scénarios où les images doivent être traitées fortement, comme lors de la génération d'images dynamiquement ou de la réalisation de la synthèse d'images. Si vous avez un grand nombre de pixels de la même couleur à dessiner, vérifiez si la couleur existe déjà, vous pouvez réduire la modification de la table de couleur de l'image et améliorer l'efficacité.
ImageColorResolve () ne convient qu'aux images de palette (telles que les formats .gif ou .png ), et non de vraies images couleur (telles que .jpg ).
Si vous devez créer une nouvelle couleur sans vous soucier de savoir s'il existe déjà, l'utilisation d'imageColorAllocate () est plus intuitive que ImageColorResolve () .
ImageColorResolve () est une fonction utile qui nous aide à trouver des couleurs qui existent déjà dans une image et à éviter la création répétée de couleurs. Sa valeur de retour peut être la valeur d'index de la couleur ou fausse , selon que la couleur existe déjà dans la table de couleur de l'image. En utilisant cette fonction raisonnablement, nous pouvons améliorer l'efficacité et optimiser l'utilisation des ressources pendant le traitement d'image.