(PHP 4, PHP 5, PHP 7, PHP 8)
imagecolorclosest — Ermittelt den Index der Farbe, die der angegebenen Farbe am nächsten kommt
Gibt den Index der Farbwert-Palette des Bildes zurück, der dem angegebenen RGB-Wert 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 würden.
Wenn das Bild aus einer Datei erzeugt wurde, 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
Ein GdImage-Objekt, das von einer der Funktionen zur Bilderzeugung, z. B. imagecreatetruecolor(), zurückgegeben wurde.
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.
Version | Beschreibung |
---|---|
8.0.0 |
image erwartet nun eine
GdImage-Instanz; vorher wurde eine gültige
gd -Ressource erwartet.
|
Beispiel #1 Suche nach einem Satz von Farben in einem Bild
<?php
// Konvertiere zunächst ein Bild in ein palettenbasiertes Bild
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);
// Gesuchte Farben (RGB)
$colors = array(
array(254, 145, 154),
array(153, 145, 188),
array(153, 90, 145),
array(255, 137, 92)
);
// Durchlaufe die gesuchten Farben und finde die nächstgelegene Farbe in der Palette.
// Gib 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: Gesuchte Farbe ($rgb[0], $rgb[1], $rgb[2]); Nächstgelegene Farbe: $result.\n";
}
imagedestroy($im);
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
#0: Gesuchte Farbe (254, 145, 154); Nächstgelegene Farbe: (252, 150, 148). #1: Gesuchte Farbe (153, 145, 188); Nächstgelegene Farbe: (148, 150, 196). #2: Gesuchte Farbe (153, 90, 145); Nächstgelegene Farbe: (148, 90, 156). #3: Gesuchte Farbe (255, 137, 92); Nächstgelegene Farbe: (252, 150, 92).