- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Справочник по PHP - white cat
Шрифт:
Интервал:
Закладка:
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 - гамму вывода.
Графические примитивы
imageSetPixel
Рисует пиксель.
Синтаксис:
int imageSetPixel(int im, int x, int y, int color)
Выводит один пиксель цвета color в изображении im, расположенный в точке (x, y).
imageLine
Рисует сплошную тонкую линию.
Синтаксис:
int imageLine(int im, int x1, int y1, int x2, int y2, int color)
Эта функция рисует сплошную тонкую линию в изображении im, проходящую через точки (x1, y1) и (x2, y2), цветом color. Линия получается слабо связанной.
<?php
function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{
/* this way it works well only for orthogonal lines
imagesetthickness($image, $thick);
return imageline($image, $x1, $y1, $x2, $y2, $color);
*/
if ($thick == 1) {
return imageline($image, $x1, $y1, $x2, $y2, $color);
}
$t = $thick / 2 - 0.5;
if ($x1 == $x2 || $y1 == $y2) {
return imagefilledrectangle($image,
round(min($x1, $x2) - $t),
round(min($y1, $y2) - $t),
round(max($x1, $x2) + $t),
round(max($y1, $y2) + $t), $color);
}
$k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
$a = $t / sqrt(1 + pow($k, 2));
$points = array(
round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
);
imagefilledpolygon($image, $points, 4, $color);
return imagepolygon($image, $points, 4, $color);
};
?>
imageDashedLine
Рисует пунктирную линию.
Синтаксис:
int imageDashedLine(int im, int x1, int y1, int x2, int y2, int color)
Эта функция работает почти так же, как и imageLine(), только рисует не сплошную, а пунктирную линию. К сожалению, ни размер, ни шаг штрихов задавать нельзя, так что, если вам обязательна нужна пунктирная линия произвольной фактуры, придется заняться математическими расчетами и использовать imageLine().
imageRectangle
Рисует прямоугольник.
Синтаксис:
int imageRectangle(int im, int x1, int y1, int x2, int y2, int color)
Эта функция рисует в изображении im прямоугольник с границей толщиной 1 пиксель цветом color.
Левый верхний угол задается (x1, y1), а правый нижний - (x2, y2).
imageFilledRectangle
Зарисовка прямоугольной области.
Синтаксис:
int imageFilledRectangle(int im, int x1, int y1, int x2, int y2, int color)
Эта функция рисует закрашенный прямоугольник в изображении, заданном идентификатором im, цветом color (полученным, например, при помощи функции imageColorAllocate()). Координаты (x1, y1) и (x2, y2) задают координаты верхнего левого и правого нижнего углов, соответственно (отсчет, как обычно, начинается с верхнего угла и идет слева направо и сверху вниз).
Эта функция часто применяется для того, чтобы целиком закрасить только что созданный рисунок, например, прозрачным цветом:
<?php
$im=imageCreate(100,100);
$color=imageColorAllocate($i,0,0,0);
imageColorTransparent($im,$color);
imageFilledRectangle($im,0,0,imageSX($im)-1,imageSY($im)-1,$color);
// дальше работаем с изначально прозрачным фоном
?>
imageArc
Рисование части эллипса.
Синтаксис:
int imageArc(int im, int cx, int cy, int w, int h, int s, int e, int color)
Эта функция рисует в изображении im дугу сектора эллипса от угла s до e (углы указываются в градусах против часовой стрелки, отсчитываемых от горизонтали). Эллипс рисуется такого размера, чтобы вписываться в прямоугольник (w, h), где w и h задают его ширину и высоту. cx и cy - координаты центра эллипса. Сама фигура не закрашивается, обводится только ее контур, для чего используется цвет color.
<?php
// создаем изображение размером 200x200
$img = imagecreate(200, 200);
// задаем цвет окружности
$white = imagecolorallocate($img, 255, 255, 255);
// рисуем окружность
imagearc($img, 100, 100, 150, 150, 0, 360, $white);
// вывод рисунка в браузер
header("Content-type: image/png");
imagepng($img);
// закрытие рисунка
imagedestroy($img);
?>
imageFill
Заливка цветом ограниченной области.
Синтаксис:
int imageFill(int im, int x, int y, int color)
Эта функция выполняет сплошную заливку одноцветной области, содержащей точку с координатами (x, y) цветом color. Нужно замерить, что современные алгоритмы заполнения работают довольно эффективно, так что не стоит особо заботиться о скорости ее работы. Будут закрашены только те точки, к которым можно проложить "одноцветный сильно связанный путь" из точки x, y.
Две точки называются связанными сильно, если у них совпадает, по крайней мере, одна координата, а по другой координате они отличаются не более, чем на 1 в любую сторону.