ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Обработка изображений и графики. Часть Пятая.


25-02-2015

integer imagecolorclosest(resource image, integer red, integer green, integer blue)
Функция imagecolorclosest (листинг 16.9) возвращает индекс цвета в заданном изображении, который ближе всего к заданному цвету. Цвета рассматриваются в трех­мерных координатах, а близость определяется расстоянием между двумя точками. 
Листинг 16.9. Функции imagecolorclosest, imagecolorexact, imagecolorresolve и imagecolorsforindex
<?php
/*
** Сравнить с цветом, ближайшим к реальному
*/
// попытка открыть изображение с подавлением сообщений об ошибках if(!($image = @imagecreatefromjpeg("waterfall.jpg")))
{
//возникла ошибка, поэтому выход с предварительным //созданием ошибочного изображения $image = imagecreate(200,200);
$colorWhite = imagecolorallocate($image, 255, 255, 255); $colorBlack = imagecolorallocate($image, 0, 0, 0); imagefill($image, 0, 0, $colorWhite);
imagestring($image, 4, 10, 10, "Couldn't load image!",
$colorBlack); header("Content-type: image/png"); imagepng($image); exit();
}
//преобразовать реалистичный цвет в палитру из 128 цветов imagetruecolortopalette($image, FALSE, 128); //перейти в режим 256-цветовой палитры // теперь есть место для размещения imagetruecolortopalette($image, FALSE, 256); // определить индекс цвета, ближайшего к чисто- зеленому $closestColor = imagecolorclosest($image, 0, 255, 0); // нарисовать цветной прямоугольник
imagefilledrectangle($image, 0, 0, 199, 99, $closestColor);
// инвертировать, чтобы получить возможность распечатать RGB- значения
$rgb = imagecolorsforindex($image, $closestColor);
$inverseColor = imagecolorallocate($image,
~$rgb['red'], ~$rgb['green'], ~$rgb['blue']),-imagestring($image, 4, 10, 10,
"{$rgb['red']}, {$rgb['green']}, {$rgb['blue']}",
$inverseColor); // попробовать получить чисто- зеленый цвет $exactColor = imagecolorexact($image, 0, 255, 0); if($exactColor == -1)
{
//если не найден - использовать черный цвет $exactColor = imagecolorallocate($image, 0, 0, 0);
}
// нарисовать цветной блок
imagefilledrectangle($image, 0, 100, 199, 199, $exactColor); // если чисто- зеленого цвета нет, назначить его $resolveColor = imagecolorresolve($image, 0, 255, 0); // нарисовать цветной блок
imagefilledrectangle($image, 0, 200, 199, 299, $resolveColor); // отправить полученное изображение header("Content-type: image/png"); imagepng($image);

 ?> 
integer imagecolorclosestalpha(resource image, integer red, integer green, integer blue, integer alpha)
Функция imagecolorclosestalpha аналогична функции imagecolorclosest с добавлением обработки альфа-канала.
integer imagecolorclosesthwb(resource image, integer hue, integer white, integer black)
Функция imagecolorclosesthwb определяет цвет в изображении, ближайший к определенному цвету по оттенку, уровню белого и черного (HWB). Не следует путать с методом HSV (Hue-Saturation-Value - оттенок-насыщенность-значение), предназначенным для описания цветов. Метод HWB был впервые описан Элви Р. Смитом (Alvy Ray Smith) и Эриком Р. Лайонсом (Eric Ray Lyons) в статье "HWB - A More Intuitive Hue-Based Color Model", опубликованной в Journal of Graphics Tools в 1996 году.
imagecolordeallocate(resource image, integer color)
Функция imagecolordeallocate освобождает цвет в изображении. Она не изменяет пиксели этого цвета в изображении, а удаляет этот цвет из списка цветов, имеющихся для рисования.
resource imagecolorexact(resource image, integer red, integer green, integer blue)
Функция imagecolorexact предназначена для определения индекса цвета заданного изображения, который точно соответствует заданному цвету. Если такого цвета не существует, она возвращает значение -1.
integer imagecolorexactalpha(resource image, integer red, integer green, integer blue, integer alpha)
Функция imagecolorexactalpha аналогична функции imagecolorexact с добавлением обработки альфа-канала.
boolean imagecolormatch(resource truecolor_image, resource palette_image)
Функция imagecolormatch настраивает палитру в соответствии с заданным аргументом palette_image для получения полного соответствия с реалистичной версией представления цветов. Эта функция позволяет улучшить качество изображения, преобразованного в малую палитру, с помощью функции imagetruecolortopalette.
integer imagecolorresolve(resource image, integer red, integer green, integer blue)
Функция imagecolorresolve возвращает идентификатор цвета на основании заданного цвета. Если такого цвета в палитре изображения не существует, он будет добавлен. Если его добавление невозможно, возвращается идентификатор ближайшего цвета. 
integer imagecolorresolvealpha(resource image, integer red, integer green, integer blue, integer alpha)
Функция imagecolorresolvealpha аналогична функции imagecolorresolve с добавлением обработки альфа-канала.
boolean imagecolorset(resource image, integer index, integer red, integer green, integer blue)
Функция imagecolorset устанавливает цвет по заданному индексу для заданного цвета. Эта функция работает только для изображений, заданных в палитре. Пример ее использования см. в листинге 16.8.
array imagecolorsforindex(resource image, integer index)
Функция imagecolorsforindex возвращает ассоциативный массив, содержащий элементы red, green и blue цвета для заданного индекса цветов. Пример ее использования см. в листинге 16.9.
resource imagecolorstotal(resource image)
Функция imagecolorstotal (листинг 16.10) возвращает количество цветов, имеющихся в заданном изображении.

| Листинг 16.10. Функции imagecolorstotal и imageistruecolor_
<?php
//попытка открыть изображение с подавлением сообщений об ошибках if(!($image = @imagecreatefrompng("leonatkinson.png")))
{
//ошибка, поэтому распечатать сообщение об ошибках print("Невозможно загрузить изображение!");
}
if(imageistruecolor($image))
{
print^'STO изображение находится в режиме реалистичного цветовоспроизведения.");
}
else
{
print("Всего цветов: " . imagecolorstotal($image));
}
?>

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Обработка изображений и графики. Часть Четвёртая. PHP. Обработка изображений и графики. Часть Шестая.