На странице произошла ошибка #S51. Свяжитесь с вебмастером. PHP 5.6 и PHP 7 на русском: Функция imagecolorresolve() - Получает идентификатор конкретного цвета или его ближайший аналог

imagecolorresolve

(PHP 4, PHP 5)

imagecolorresolveПолучает идентификатор конкретного цвета или его ближайший аналог

Описание

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

Эта функция обязательно вернет идентификатор цвета для выбранного цвета, либо ближайшую возможную его альтернативу.

Если изображение было создано из файла, то будут распознаны только цвета, используемые в изображении. Цвета, которые используются только в палитре, распознаны не будут.

Список параметров

image

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

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

Возвращаемые значения

Возвращает цветовой идентификатор.

Примеры

Пример #1 Использование imagecoloresolve() для получения цветов из изображения.

<?php
// загрузить изображение
$im imagecreatefromgif('phplogo.gif');

// получить ближайшие цвета на изображении
$colors = array();
$colors[] = imagecolorresolve($im255255255);
$colors[] = imagecolorresolve($im00200);

// вывод
print_r($colors);

imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

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

Смотрите также

  • imagecolorclosest() - Получение индекса цвета ближайшего к заданному

Коментарии

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);
}
2002-01-03 05:55:32
http://php5.kiev.ua/manual/ru/function.imagecolorresolve.html

    Поддержать сайт на родительском проекте КГБ