PHPの画像処理の分野では、 ImageColorresolve()は、画像内の特定のRGB値に最も近い割り当てられた色を見つけるために使用される非常に実用的な関数です。正確な一致する色が見つからない場合、PHPは最も近い色を自動的に選択します。これは、画像の合成、色のマッチング、最適化されたパフォーマンスを扱うときに特に重要です。
int imagecolorresolve(GdImage $image, int $red, int $green, int $blue)
$画像: ImageCreate()やImageCreatetrueColor()などによって作成された画像リソース。
$赤、 $緑、 $青:一致する色の赤、緑、青のコンポーネント、値範囲は0〜255です。
この関数は、画像上の後続の図面または処理のために色インデックス値を返します。
基本的なユースケースは次のとおりです。画像を作成して長方形を描画します。長方形の色は、指定されたRGB値と可能な限り一致する必要があります。
<?php
// ワイドを作成します 200px,高い 100px 空白の画像
$image = imagecreate(200, 100);
// 画像の背景に白を割り当てます
$white = imagecolorallocate($image, 255, 255, 255);
// 水色に近い色を見つけようとしています
$blueApprox = imagecolorresolve($image, 100, 149, 237);
// 見つかった色を使用して長方形を描きます
imagerectangle($image, 50, 25, 150, 75, $blueApprox);
// ブラウザに画像を出力します
header('Content-Type: image/png');
imagepng($image);
// 無料のメモリ
imagedestroy($image);
?>
上記の例では、画像は白い背景のみで始まりますが、 ImageColorresolve()を使用して明るい青色(RGB 100,149,237)を見つけると、PHPは最も近い色のインデックスを自動的に割り当てます。より多くのカラーオプションを制御する場合は、 ImageColorAllocate()を使用して、事前により多くの色を割り当てることができます。
色の一致の色:たとえば、画像のカラーパレットが制限されている場合、たとえばパレット画像(パレットベースの画像)で、 ImageColorresolve()は近い色を見つけようとします。
最適化されたパフォーマンス:特に、多数のピクセルを迅速に処理する必要があるアプリケーションで、新しい色を直接割り当てるよりも速い既存の色インデックスを見つけます。
互換性の取り扱い:昔ながらの暗い環境または低色の暗い環境では、 ImageColorresolve()は不可欠なツールです。
画像がImageCreatetrueColor()を使用して作成された真のカラー画像である場合、真のカラー画像はパレットを使用しないため、 ImageColorAllocate ()を使用する必要があります。
色がない場合、PHPは内部で新しい色インデックスを自動的に割り当てますが、パレットがいっぱいになったときに故障する可能性があります(最大256色)。