Erstellen oder laden Sie eine palettenbasierte Bildressource mit ImagecreateFromgif () , ImagecreateFrommpng () oder Imagecrate () .
Rufen Sie imageColorclosest () an
Übergeben Sie den RGB -Wert der Zielfarbe, und die Funktion gibt den Palettenindex in dem Bild zurück, das dieser Farbe am nächsten ist.
Verwenden Sie den zurückgegebenen Farbindex
Sie können diesen Index verwenden, um Farben zu zeichnen, zu ersetzen oder Farbinformationen zu lesen.
<span><span><span class="hljs-comment">// Laden Sie ein Palettenbild</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromgif</span></span><span>(</span><span><span class="hljs-string">'palette_image.gif'</span></span><span>);
</span><span><span class="hljs-comment">// Stellen Sie eine Farbe ein, die Sie anpassen möchten,Wie hellblau</span></span><span>
</span><span><span class="hljs-variable">$targetRed</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>;
</span><span><span class="hljs-variable">$targetGreen</span></span><span> = </span><span><span class="hljs-number">150</span></span><span>;
</span><span><span class="hljs-variable">$targetBlue</span></span><span> = </span><span><span class="hljs-number">200</span></span><span>;
</span><span><span class="hljs-comment">// Holen Sie sich den nächsten Farbindex</span></span><span>
</span><span><span class="hljs-variable">$closestColorIndex</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorclosest</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$targetRed</span></span><span>, </span><span><span class="hljs-variable">$targetGreen</span></span><span>, </span><span><span class="hljs-variable">$targetBlue</span></span><span>);
</span><span><span class="hljs-comment">// Holen Sie sich Farbkomponenten über den Farbindex</span></span><span>
</span><span><span class="hljs-variable">$colors</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorsforindex</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$closestColorIndex</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Der nächstgelegene Farbindex ist: "</span></span><span> . </span><span><span class="hljs-variable">$closestColorIndex</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Entsprechende FarbeRGBDer Wert ist: R=<span class="hljs-subst">{$colors['red']}</span></span></span><span> G=</span><span><span class="hljs-subst">{$colors['green']}</span></span><span> B=</span><span><span class="hljs-subst">{$colors['blue']}</span></span><span>\n";
</span><span><span class="hljs-comment">// Bildressourcen freigeben</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span></span>
ImageColorclosest ist nur für Palettenbilder geeignet. Für echte Farbbilder ist die Farbanpassung von geringer Bedeutung, da echte Farbbilder keine feste Palette haben.
Wenn in der Farbpalette des Bildes keine genaue passende Farbe vorhanden ist, gibt die Funktion den nächstgelegenen Farbindex zurück, um den kleinsten Farbunterschied zu gewährleisten.
Diese Funktion ist effizient und für Anforderungen an die Farbsuche in Echtzeit geeignet.