(PHP 4, PHP 5, PHP 7)
imagecolorclosest — Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt
$image
, int $red
, int $green
, int $blue
) : intGibt den Index der Farbwert-Palette des Bildes zurück, der den angegebenen RGB-Werten am nächsten kommt.
Die "Entfernung" zwischen der angeforderten Farbe und jedem Farb-Paletten-Wert wird berechnet, als ob die angegebenen RGB-Werte Punkte in einem dreidimensionalen Raum darstellen.
Wenn Sie das Bild aus einer Datei erzeugt haben, so werden nur die Farben aufgelöst, die im Bild verwendet werden. Farben die nur in der Farbpalette enthalten sind werden nicht aufgelöst.
image
Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.
red
Wert der Rotkomponente.
green
Wert der Grünkomponente.
blue
Wert der Blaukomponente.
Gibt den Index der Farbe in der Palette des Bildes zurück, die am nächsten an der angegebenen liegt.
Beispiel #1 Suche nach einem Satz von Farben in einem Bild
<?php
// Konvertiere zunächst ein Bild in ein palettenbasiertes
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);
// Such-Farben (RGB)
$colors = array(
array(254, 145, 154),
array(153, 145, 188),
array(153, 90, 145),
array(255, 137, 92)
);
// Durchlaufe die Such-Farben und finde die nächstgelegene Farbe in der Palette.
// Liefere die Suchnummer, die gesuchten und die gefundenen RGB-Farben zurück.
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: Such-Farbe ($rgb[0], $rgb[1], $rgb[2]); Nächstgelegene Farbe: $result.\n";
}
imagedestroy($im);
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
#0: Such-Farbe (254, 145, 154); Nächstgelegene Farbe: (252, 150, 148). #1: Such-Farbe (153, 145, 188); Nächstgelegene Farbe: (148, 150, 196). #2: Such-Farbe (153, 90, 145); Nächstgelegene Farbe: (148, 90, 156). #3: Such-Farbe (255, 137, 92); Nächstgelegene Farbe: (252, 150, 92).