Im Bereich der Bildverarbeitung in PHP ist ImageColorresolve () eine sehr praktische Funktion, die verwendet wird, um die zugewiesene Farbe zu finden, die einem bestimmten RGB -Wert in einem Bild am nächsten liegt. Wenn die genaue Übereinstimmungsfarbe nicht gefunden wird, wählt PHP automatisch die nächste aus. Dies ist besonders wichtig, wenn Sie mit Bildsynthese, Farbanpassung und optimierten Leistung zu tun haben.
int imagecolorresolve(GdImage $image, int $red, int $green, int $blue)
$ Bild : Eine Bildressource, die von Imagecrate () oder ImagecrreatTueColor () erstellt wurde.
$ rot , $ green , $ blau : Die rot, grünen und blauen Komponenten der zugänglichen Farbe, der Wertebereich beträgt 0 - 255.
Diese Funktion gibt einen Farbindexwert für die nachfolgende Zeichnung oder Verarbeitung auf dem Bild zurück.
Hier ist ein grundlegender Anwendungsfall, erstellen Sie ein Bild und zeichnen Sie ein Rechteck darauf, und die Rechteckfarbe sollte so weit wie möglich mit dem angegebenen RGB -Wert übereinstimmen:
<?php
// Erstellen Sie eine breite 200px,hoch 100px Leeres Bild
$image = imagecreate(200, 100);
// Weisen Sie dem Bildhintergrund Weiß zu
$white = imagecolorallocate($image, 255, 255, 255);
// Ich versuche, eine Farbe nahe hellblau zu finden
$blueApprox = imagecolorresolve($image, 100, 149, 237);
// Zeichnen Sie ein Rechteck mit der gefundenen Farbe
imagerectangle($image, 50, 25, 150, 75, $blueApprox);
// Ausgabe Bild zum Browser
header('Content-Type: image/png');
imagepng($image);
// Freier Speicher
imagedestroy($image);
?>
Obwohl das Bild nur mit einem weißen Hintergrund beginnt, weist PHP automatisch den nächstgelegenen Farbindex zu, wenn wir imageColorresolve () eine hellblaue Farbe (RGB 100, 149, 237) verwenden. Wenn Sie mehr Farboptionen steuern möchten, können Sie im Voraus im Voraus mehr Farben zuweisen .
Farbgenähte Matching : Wenn die Bildfarbenpalette beispielsweise in einem Palettenbild (palettenbasiertes Bild) begrenzt ist, kann ImageColorresolve () versuchen, die engen Farben zu finden.
Optimierte Leistung : Finden vorhandener Farbindizes schneller als direkte Farben, insbesondere in Anwendungen, die eine schnelle Verarbeitung einer großen Anzahl von Pixeln erfordern.
Kompatibilitätshandhabung : In einigen altmodischen oder dunklen Umgebungen mit niedrigem Farben ist imageColorresolve () ein unverzichtbares Werkzeug.
Wenn das Bild ein echtes Farbbild ist, das mit ImagecrreatTueColor () erstellt wurde, sollte imageColoralLaCate () verwendet werden, da echte Farbbilder keine Palette verwenden, sodass die Wirkung von ImageColorresolve () begrenzt ist.
Wenn keine Farben verfügbar sind, weist PHP automatisch einen neuen Farbindex in internem Index zu, kann jedoch möglicherweise fehlschlagen, wenn die Palette voll ist (bis zu 256 Farben).