ImageCreateFromGIF() 、 ImageCreateFrommpng()またはImageCreate()を使用して、パレットベースの画像リソースを作成またはロードします。
ImageColorClosEST()を呼び出す
ターゲット色のRGB値を渡すと、関数はこの色に最も近い画像のパレットインデックスを返します。
返された色インデックスを使用します
このインデックスを使用して、色情報を描画、交換、または読み取ります。
<span><span><span class="hljs-comment">// パレット画像をロードします</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">// 一致したい色を設定します,ライトブルーのように</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">// 最も近い色インデックスを取得します</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">// カラーインデックスを介してカラーコンポーネントを取得します</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">"最も近い色のインデックスはです: "</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">"対応する色RGB値はです: 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">// 画像リソースをリリースします</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は、パレット画像にのみ適しています。真の色の画像の場合、真の色の画像には固定パレットがないため、色の一致はほとんど意味がありません。
画像のカラーパレットに正確な一致色がない場合、関数は最も近い色のインデックスを返して、最小の色の違いを確保します。
この機能は効率的で、リアルタイムの色検索要件に適しています。