Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

рабочая тетрадь(3)

.pdf
Скачиваний:
42
Добавлен:
10.02.2016
Размер:
5 Мб
Скачать
☆

Включение сглаживания

imageAntiAlias($im, true);

Выбор цвета

$red = imageColorAllocate($im, 255, 0, 0);

Заливаем фон

imageFill($im, 0, 0, $red);

Выбор прозрачного цвета

imageColorTransparent($im, $red);

Отрисовка пикселя

imageSetPixel($im, 10, 10, $red);

Отрисовка линии

imageLine($im, 20, 20, 80, 280, $red);

Отрисовка прямоугольника

imageRectangle($im, 20, 20, 80, 280, $red);

imageFilledRectangle(...);

Отрисовка многоугольника

$points = array(0, 0, 100, 200, 300, 200);

imagePolygon($im, $points, 3, $red);

imageFilledPolygon(...);

Отрисовка эллипса

imageEllipse($im, 200, 150, 300, 200, $red);

imageFilledEllipse(...);

Отрисовка сектора

imageArc($im, 200, 150, 300, 200, 0, 40, $red);

imageFilledArc($im, 200, 150, 300, 200, 0, 40, $red, IMG_ARC_PIE);

Константы для imageFilledArc

IMG_ARC_PIE

IMG_ARC_EDGED

IMG_ARC_CHORD

IMG_ARC_NOFILL

Отрисовка текста

imageString($im, 3, 150, 200, 'PHP5', $red);

Отрисовка символа

imageChar($im, 3, 20, 20, 'PHP5', $red);

imageCharUp($im, 3, 30, 30, 'PHP5', $red);

Продвинутая отрисовка текста

imageTtfText($im, 30, 10, 300, 150, $red,

'arial.ttf', 'PHP5');

Использование изображения

$im = imageCreateFromGif('pic.gif');

$im = imageCreateFromPng('pic.png');

$im = imageCreateFromJpeg('pic.jpg');

$im = imageCreateFromString($string);

Установка толщины линии

imageSetThickness($im, 5);

Использование стилей

$style = array($r, $r, $r, $r, $r, $b, $b, $b, $b, $b);

imageSetStyle($im, $style);

imageLine($im, 0, 0, 10, 10, IMG_COLOR_STYLED);

Лабораторная работа 6

Создание и использование CARTCHA

Упражнение 1: Создание изображения

•В текстовом редакторе откройте файл gd\noise-picture.php

•Запустите сессию

•Создайте переменную $nChars (количество выводимых на картинке символов) и присвойте ей значение 5

•Сгенерируйте случайную строку длиной $nChars символов, например: substr(md5(uniqid()), 0, $nChars);

•Создайте сессионную переменную randStr и присвойте ей сгенерированную строку

•Создайте изображение на основе файла images/noise.jpg

•Создайте цвет для рисования

•Включите сглаживание

•Создайте переменные $x и $у - начальные координаты для отрисовки строки и присвойте им значения 20 и 30

•Задайте переменную $delta_X - смещение текущего символа относительно предыдущего по оси x и присвойте ей значение 40

•Используя цикл for отрисуйте строку посимвольно используя шрифты из папки fonts

•Для каждого символа задайте случайные значение размера и угла наклона, например:

$size = rand(18, 30); $angle = -30 + rand(0,60);

•Отдайте полученный результат как jpeg-изображение с 50% сжатием

•Сохраните файл gd\noise-picture.php

Упражнение 2: Использование созданного изображения

•В тестовом редакторе откройте файл gd\registration.php

•Запустите сессию

•Создайте переменную $result со значением "" (пустая строка)

•Проверьте, была ли отправлена форма

•Проверьте, существует ли сессионная переменная randStr

•Если переменная randStr существует и её значение равно значению введённому пользователем, присвойте переменной $result значение Хорошо

•Если переменная randStr существует и её значение не равно значению введённому пользователем, присвойте переменной $result значение Плохо

•Если сессионная переменная randStr не существует, присвойте переменной $result

значение ВКЛЮЧИ ГРАФИКУ!

•Внизу файла после HTML-формы выведите содержимое переменной $result

•Сохраните файл gd\registration.php

Упражнение 3: Тестирование CAPTCHA

•Запустите браузер

•Наберите в адресной строке браузера http://mysite.local/gd/registration.php

•Убедитесь, что изображение с символами выводится в браузер

•Если есть ошибки, найдите их и исправьте

•Введите в тестовое поле символы, изображенные на картинке и отправьте данные на сервер. После перезагрузки страницы вы должны увидеть строку Хорошо

•Введите в тестовое поле произволные символы и отправьте данные на сервер. После перезагрузки страницы вы должны увидеть строку Плохо

•Попробуйте отключить показ картинок в браузере. Что произойдет после перезагрузки страницы?

Генерация графики на PHP 5

Использование расширения GD2

Базовые функции для работы с графикой