downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

imagecolorresolvealpha> <imagecolormatch
[edit] Last updated: Fri, 07 Jun 2013

view this page in

imagecolorresolve

(PHP 4, PHP 5)

imagecolorresolveBelirtilen rengin veya en yakın benzerinin indisini döndürür

Açıklama

int imagecolorresolve ( resource $resim , int $kırmızı , int $yeşil , int $mavi )

Bu işlev, belirtilen rengin kendisinin veya en yakın benzerinin indisini döndürü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.

Değiştirgeler

resim

imagecreatetruecolor() gibi bir resim oluşturma işlevinden dönen bir resim verisi.

kırmızı

Rengin kırmızı bileşeninin değeri.

yeşil

Rengin yeşil bileşeninin değeri.

mavi

Rengin mavi bileşeninin değeri.

Dönen Değerler

Bir renk indisi döndürür.

Örnekler

Örnek 1 - Bir resimdeki renkleri öğrenmek için imagecoloresolve() kullanımı

<?php
// Bir resim yükleyelim
$im imagecreatefromgif('http://docs.php.net/images/php.gif');

// Resimden en yakın renkleri alalım
$colors = array();
$colors[] = imagecolorresolve($im2552552550);
$colors[] = imagecolorresolve($im00200127);

// Sonucu çıktılayalım
print_r($colors);

imagedestroy($im);
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

Array
(
    [0] => 89
    [1] => 85
)

Ayrıca Bakınız



add a note add a note User Contributed Notes imagecolorresolve - [2 notes]
up
0
tom
1 year ago
It seems that imagecolorresolve is adding the colors to the palette when it can't find them!
up
0
ceo at l-i-e dot com
11 years ago
Okay, so sometimes it's really IMPORTANT to get the exact color you want, only it's not *IN* the Image, and ImageColorResolve just isn't "close enough".

The following code is a disgustingly gross hack, rather slow, but it does that.

$colorcount = array();
for ($x = 0; $x < $width; $x++){
    for ($y = 0; $y < $height; $y++){
        $colorindex = imagecolorat($jpg, $x, $y);
        if (!isset($colorcount[$colorindex])){
            $colorcount[$colorindex] = 1;
        }
        else{
            $colorcount[$colorindex]++;
        }
    }
}
asort($colorcount);
reset($colorcount);

$black = imagecolorexact($jpg, 0, 0, 0);
if ($black == -1){
    $goner = key($colorcount);
    $rgb = imagecolorsforindex($jpg, $goner);
    #error_log("Need black: About to kill $goner ($rgb[red], $rgb[green], $rgb[blue]) which was only used in $colorcount[$goner] pixels", 0);
    unset($colorcount[$goner]);
    imagecolordeallocate($jpg, $goner);
    $black = imagecolorallocate($jpg, 0, 0, 0);
}
if ($black == -1){
    $black = imagecolorresolve($jpg, 0, 0, 0);
    #error_log("Damn!  STILL couldn't allocate the color!", 0);
}

 
show source | credits | stats | sitemap | contact | advertising | mirror sites