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

search for in the

imagecolorresolvealpha> <imagecolormatch
Last updated: Fri, 14 Nov 2008

view this page in

imagecolorresolve

(PHP 4, PHP 5)

imagecolorresolveGet the index of the specified color or its closest possible alternative

Описание

int imagecolorresolve ( resource $image , int $red , int $green , int $blue )

This function is guaranteed to return a color index for a requested color, either the exact color or the closest possible alternative.

If you created the image from a file, only colors used in the image are resolved. Colors present only in the pallete are not resolved.

Параметри

image

Ресурс на изображение, върнат от някоя от функциите за създаване на изображения като например imagecreatetruecolor().

red

Value of red component.

green

Value of green component.

blue

Value of blue component.

Връщани стойности

Returns a color index.

Примери

Example #1 Using imagecoloresolve() to get colors from an image

<?php
// Load an image
$im imagecreatefromgif('phplogo.gif');

// Get closest colors from the image
$colors = array();
$colors[] = imagecolorresolve($im2552552550);
$colors[] = imagecolorresolve($im00200127);

// Output
print_r($colors);

imagedestroy($im);
?>

Примерът по-горе ще изведе нещо подобно на:

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

Вж. също



add a note add a note User Contributed Notes
imagecolorresolve
ceo at l-i-e dot com
03-Jan-2002 12:55
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);
}

imagecolorresolvealpha> <imagecolormatch
Last updated: Fri, 14 Nov 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites