Работа с цветом в формате RGB

Работа с цветом в формате RGB

imageColorAllocate

Создание нового цвета и занесение его в палитру рисунка.

Синтаксис:

int imageColorAllocate(int im, int red, int green, int blue)

Функция возвращает идентификатор цвета, связанного с соответствующей тройкой RGB. Первым параметром функция требует идентификатор изображения, загруженного в память или созданного до этого.

Параметры red, green и blue задают красный, зеленый и синий компоненты цвета соответственно. Значения этих параметров должны лежать в пределах от 0 до 255, или от 0x00 до 0xFF.

Практически каждый цвет, который планируется в дальнейшем использовать, должен быть получен (определен) при помощи вызова этой функции.

Пример:Пример использования функции imageColorAllocate():

<?php

. . .

// белый

$white = imagecolorallocate($im, 255, 255, 255);

$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

// черный

$black = imagecolorallocate($im, 0, 0, 0);

$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

. . .

?>

imageColorDeAllocate

Исключение цвета из палитры рисунка.

Синтаксис:

int imageColorDeAllocate(int im, int color)

Эта функция удаляет из палитры рисунка im цвет color, который был предварительно занесен в рисунок функцией imageColorAllocate().

Пример:Пример использования функции imageColorDeAllocate():

<?php

. . .

$white = imageColorAllocate ($im, 255, 255, 255);

imageColorDeAllocate ($im, $white);

. . .

?>

imageColorSet

Замена цвета определенного элемента палитры.

Синтаксис:

bool imageColorSet(int im, int index, int red, int green, int blue)

Данная функция устанавливает для элемента палитры index рисунка im значения компонент цвета: red (красный), green (зеленый), blue (синий). При этом все части рисунка, закрашенные данным цветом, также изменят свой оттенок.

imageColorClosest

Получение цвета палитры, наиболее близкого к указанному.

Синтаксис:

int imageColorClosest(int im, int red, int green, int blue)

Вместо того, чтобы пытаться выискать свободное место в палитре цветов, эта функция просто возвращает идентификатор цвета, уже существующего в рисунке и находящегося ближе всего к затребованному. Таким образом, нового цвета в палитру не добавляется. Если палитра не велика, то функция может вернуть не совсем тот цвет, который вы ожидаете. Например, в палитре из трех цветов "красный-зеленый-синий" на запрос желтого цвета будет, скорее всего, возвращен идентификатор зеленого - он ближе всего с точки зрения GD соответствует понятию "зеленый".

imageColorTransparent

Определение цвета прозрачности.

Синтаксис:

int imageColorTransparent(int im [,int color])

Эта функция указывает GD, что соответствующий цвет color (заданный своим идентификатором при помощи функции imageColorAllocate()) в изображении im (im - идентификатор изображения, заданный функцией imageCreate()) должен обозначиться как прозрачный. Возвращает идентификатор установленного до этого прозрачного цвета, либо false, если таковой не был определен ранее.

Надо отметить, что не все форматы поддерживают задание прозрачного цвета - например, JPEG не может его содержать.

imageColorsForIndex

Получение RGB-составляющих элемента палитры.

Синтаксис:

array imageColorsForIndex(int im, int index)

Функция возвращает ассоциативный массив с ключами red, green, blue (именно в таком порядке), которым соответствуют значения, равные величинам компонент RGB в идентификаторе цвета index. Но мы можем и не обращать особого внимания на ключи и преобразовать возвращенное значение как список:

<?php

. . .

$color=imageColorAt($im,0,0);

list($r,$g,$b)=array_values(imageColorsForIndex($im,$color));

echo "R=$r, g=$g, b=$b";

. . .

?>

imageColorAt

Возвращает индекс цвета точки.

Синтаксис:

int imageColorAt(int im, int x, int y)

Эта функция возвращает цвет точки, расположенной на координатах (x, y).Если PHP скомпилирован с GD library 2.0 или выше, а картинка - truecolor, то эта функция возвратит идентификатор цвета, а не его RGB-представление.

<?php

$im = imageCreateFromPng("file.png");

$rgb = ImageColorAt($im, 100, 100);

$r = ($rgb >> 16) & 0xFF;

$g = ($rgb >> 8) & 0xFF;

$b = $rgb & 0xFF;

?>

imageColorsTotal

Получение количества цветов в палитре.

Синтаксис:

int imageColorsTotal(int im)

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

imageColorExact

Получение индекса цвета палитры.

Синтаксис:

int imageColorExact(int im, int red, int green, int blue)

Функция возвращает индекс указанного цвета (red, green, blue) в палитре изображения im.

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

imageColorResolve

Нахождение или создание указанного цвета.

Синтаксис:

int imageColorResolve(int im, int red, int green, int blue)

Функция возвращает индекс указанного цвета (red, green, blue) в палитре изображения im.

В случае, если такой цвет в палитре отсутствует, то он создается.

imageGammaCorrect

Применение гамма-коррекции рисунка.

Синтаксис:

int imageGammaCorrect(int im, double inputgamma, double outputgamma)

Эта функция производит исправления гаммы к изображению, заданному дескриптором im.Параметр inputgamma задает входную гамму, а outputgamma - гамму вывода.