(PHP 4, PHP 5)
imagecolorclosest — Belirtilen rengin en yakın benzerinin indisini döndürür
Bu işlev, bileşenleri belirtilen rengin en yakın benzerinin indisini döndürür.
İstenen renk ile paletteki renk arasındaki "mesafe" rengin bileşenlerinden oluşan üç boyutlu uzayda hesaplanır.
Eğer resmi bir dosyadan oluşturmuşsanız sadece resimde kullanılan renkler çözümlenir. Palette bulunan renklerden resimde kullanılmamış olanlar çözümlenmez.
imagecreatetruecolor() gibi bir resim oluşturma işlevinden dönen bir resim verisi.
Rengin kırmızı bileşeninin değeri.
Rengin yeşil bileşeninin değeri.
Rengin mavi bileşeninin değeri.
Paletteki en yakın rengin indisi döner.
Örnek 1 - Bir resimde renk aramak
<?php
// Bir resim açıp paletli resme dönüştürelim
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);
// Aranacak renkler (RGB)
$colors = array(
array(254, 145, 154),
array(153, 145, 188),
array(153, 90, 145),
array(255, 137, 92)
);
// Renkleri bulmak için bir döngü kuralım.
// En yakın rengin indisini alıp o indisin rengini öğrenelim
foreach($colors as $id => $rgb)
{
$res = imagecolorclosest($im, $rgb[0], $rgb[1], $rgb[2]);
$res = imagecolorsforindex($im, $res);
$res = "({$res['red']}, {$res['green']}, {$res['blue']}, {$res['alpha']})";
echo "#$id: Aranan ($rgb[0], $rgb[1], $rgb[2], $rgb[3]); En yakın $res.\n";
}
imagedestroy($im);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
#0: Aranan (254, 145, 154); En yakın (252, 150, 148). #1: Aranan (153, 145, 188); En yakın (148, 150, 196). #2: Aranan (153, 90, 145); En yakın (148, 90, 156). #3: Aranan (255, 137, 92); En yakın (252, 150, 92).