ImageColorClosest()は、特に画像を処理して画像を処理して一致させるときに、PHPで画像を処理するときに非常に実用的な機能です。この関数の関数は、指定された色に最も近い画像の色インデックスを返すことです。これは、ImageCreate()で作成された画像など、パレット画像を使用する場合に非常に便利です。
int imagecolorclosest(GdImage $image, int $red, int $green, int $blue)
$画像: ImageCreate()またはImageCreateFrom*()を使用して作成された画像リソース。
$赤:赤い成分(0-255)。
$緑:緑の材料(0-255)。
$ Blue :青い成分(0-255)。
この関数は、指定されたRGB値に最も近いパレット色のインデックス値を返します。
この関数は、パレットタイプの画像を扱っており、新しい画像を作成する代わりに画像に既に存在する色を見つけたい場合に非常に適しています。パレットの制限を超える色の数を回避します(通常は256)。
使用の完全な例は次のとおりです。
<?php
// パレット画像を作成します
$image = imagecreate(100, 100);
// 色を追加します
$red = imagecolorallocate($image, 255, 0, 0);
$green = imagecolorallocate($image, 0, 255, 0);
$blue = imagecolorallocate($image, 0, 0, 255);
// 最も近い紫を見つけたいです (128, 0, 128) カラーインデックス
$closest = imagecolorclosest($image, 128, 0, 128);
// 出力カラーインデックス
echo "最接近カラーインデックス是:$closest";
// このインデックスに対応する色を取得します
$rgb = imagecolorsforindex($image, $closest);
echo "<br>対応する RGB 値はです:";
echo "R: {$rgb['red']}, G: {$rgb['green']}, B: {$rgb['blue']}";
?>
この関数は、画像の色の交換、パレットの圧縮、または最適化された画像の生成を行う場合に特に役立ちます。たとえば、アップロードされた画像のメイントーンを、新しい色を追加する代わりに、事前に定義された色セットにマッピングする必要がある場合があります。
別の例は、自動画像マッチングです。たとえば、画像をアップロードする場合、PHPを使用して、特定の標準色に最も近いピクセル色を自動的に見つけ、分類、マーク、または交換します。
次の機能と組み合わせて使用できます。
ImageColorsForIndex() :特定のインデックスに対応する色を取得します。
ImageColorAllocate() :新しい色を割り当てます。
ImagetRueColortopalette() :真の色の画像をパレット画像に変換して、 ImageColorClosest()を真のカラー画像に使用できるようにします。
例えば:
// 真の色の写真をパレット画像に変換します
imagetruecolortopalette($image, false, 256);
// その後、使用できます imagecolorclosest 最も近い色を見つけてください
ImageColorClosest()は、PHP GDライブラリの非常に重要な色操作機能です。その目的は、新しい色を作成することではなく、既存のパレットで最も近い色を見つけるのに役立つため、制限を超えて画像処理の効率を改善する色の数を回避することです。
特に適しています:
パレット画像の最適化
画像の色のマッチングと分析
画像カラー置換ロジック
PHP GD Image関数の詳細については、公式ドキュメントを参照するか、例や使用法のシナリオについてはhttps://gitbox.net/php-gd-colorマッチングなどのWebサイトを参照できます。