imagecolorexact

(PHP 4, PHP 5)

imagecolorexact Получение индекса заданного цвета

Описание

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

Возвращает индекс для заданного цвета в палитре изображения.

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

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

image

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

red

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

green

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

blue

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

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

Возвращает индекс для заданного цвета в палитре изображения либо -1, если такого цвета в палитре нет.

Примеры

Пример #1 Получение цветов GD логотипа

<?php
// создание изображения
$im imagecreatefrompng('./gdlogo.png');

$colors   = Array();
$colors[] = imagecolorexact($im25500);
$colors[] = imagecolorexact($im000);
$colors[] = imagecolorexact($im255255255);
$colors[] = imagecolorexact($im10025552);

print_r($colors);

// освобождение памяти
imagedestroy($im);
?>

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

Array
(
    [0] => 16711680
    [1] => 0
    [2] => 16777215
    [3] => 6618932
)

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

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

Коментарии

<?php

$src 
"../images/pic.gif";

$red 9;
$green 9;
$blue 4;

$pic0026 imagecreatefromgif $src );

$ind imagecolorexact $pic$red$green$blue );

echo 
'<img src="../images/pic.gif" border="0" alt="pic" title="View pic" /><br /><br />';

echo 
"RED ( " $red " ) GREEN ( " $green " ) BLUE ( " $blue " )<br />-> Palette Index = " $ind;

if ( 
$ind != -)
{
echo 
"<br />[ The color exists! ]";
}
else
{
echo 
"<br />[ The color does not exist! ]";
}

imagedestroy $pic );

?>
2005-11-16 13:14:24
http://php5.kiev.ua/manual/ru/function.imagecolorexact.html
A few notes about this function...

This function will only work on images where the palette is 256 colors or less. You also can not use imagetruecolortopalette() to reduce the palette on a true color PNG image that has greater than 256 colors in it's palette, then call this function. If you try to do this imagecolorexact() will report colors not being in the image when they are in the image!

1. works on png(s) 8bit/256 colors or less.
2. works on all gif(s)
3. does not work on any type of jpg/jpeg image.
2006-02-18 14:38:02
http://php5.kiev.ua/manual/ru/function.imagecolorexact.html
A script that changes colors depending on get variable
important to note: I had little success with pngs and getting true red
gifs work much better

<?php
//0 is yellow, 1 is red, 2 is blue
$y ceil($_GET["c"]/2);
$r floor($_GET["c"]/2);
$b floor($_GET["c"]/2);

$gd imagecreatefromgif("example.gif");
imagecolorset($gdimagecolorexact($gd25500), $r*255$y*255$b*255);
imagecolorset($gdimagecolorexact($gd19100), $r*191$y*191$b*191);
imagecolorset($gdimagecolorexact($gd12800), $r*128$y*128$b*128);
imagecolorset($gdimagecolorexact($gd25500), $r*64$y*64$b*64);

header('Content-Type: image/gif');
imagegif($gd);

?>
2011-03-25 00:11:06
http://php5.kiev.ua/manual/ru/function.imagecolorexact.html

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