現在の位置: ホーム> 最新記事一覧> ImageColorClosest関数を使用して画像内の近似カラーインデックスを見つける特定の方法は何ですか?

ImageColorClosest関数を使用して画像内の近似カラーインデックスを見つける特定の方法は何ですか?

gitbox 2025-08-29

使用手順の詳細な説明

  1. ImageColorClosEST()を呼び出す

    • ターゲット色のRGB値を渡すと、関数はこの色に最も近い画像のパレットインデックスを返します。

  2. 返された色インデックスを使用します

    • このインデックスを使用して、色情報を描画、交換、または読み取ります。


コードの例

<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は、パレット画像にのみ適しています。真の色の画像の場合、真の色の画像には固定パレットがないため、色の一致はほとんど意味がありません。

  • 画像のカラーパレットに正確な一致色がない場合、関数は最も近い色のインデックスを返して、最小の色の違いを確保します。

  • この機能は効率的で、リアルタイムの色検索要件に適しています。