(PHP 4, PHP 5, PHP 7, PHP 8)
imagecolorclosest — Retourne l'index de la couleur la plus proche d'une couleur donnée
Description
imagecolorclosest(
GdImage
$image
,
int
$red
,
int
$green
,
int
$blue
): int
La "distance" entre la couleur souhaitée et les couleurs de
la palette est calculée en considérant l'espace RGB
comme un espace à 3 dimensions.
Si vous créez l'image depuis un fichier, seules les couleurs utilisées dans l'image
seront résolues. Les couleurs uniquement présentes dans la palette ne le seront pas.
Liste de paramètres
-
image
-
Un objet GdImage, retournée par une des fonctions de
création d'images, comme imagecreatetruecolor().
-
red
-
Valeur du composant rouge.
-
green
-
Valeur du composant vert.
-
blue
-
Valeur du composant bleu.
Les paramètres sur les couleurs sont des entiers compris entre 0 et 255
ou des hexadécimaux compris entre 0x00 et 0xFF.
Valeurs de retour
Retourne l'index de la couleur la plus proche, dans la palette de l'image,
de celle donnée.
Historique
Exemples
Exemple #1 Recherche d'un jeu de couleur dans une image
<?php
// On commence avec une image et on la convertit en une image à palette
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);
// Couleurs recherchées (RVB)
$colors = array(
array(254, 145, 154),
array(153, 145, 188),
array(153, 90, 145),
array(255, 137, 92)
);
// On boucle sur chaque recherche et on trouve la couleur de la palette la plus proche.
// Retourne le numéro de la recherche, le RVB cherché et la correspondance en RVB
foreach($colors as $id => $rgb)
{
$result = imagecolorclosest($im, $rgb[0], $rgb[1], $rgb[2]);
$result = imagecolorsforindex($im, $result);
$result = "({$result['red']}, {$result['green']}, {$result['blue']})";
echo "#$id: Recherche ($rgb[0], $rgb[1], $rgb[2]); Correspondance : $result.\n";
}
imagedestroy($im);
?>
Résultat de l'exemple ci-dessus est similaire à :
#0: Recherche (254, 145, 154); Correspondance : (252, 150, 148).
#1: Recherche (153, 145, 188); Correspondance : (148, 150, 196).
#2: Recherche (153, 90, 145); Correspondance : (148, 90, 156).
#3: Recherche (255, 137, 92); Correspondance : (252, 150, 92).
Voir aussi