рабочая тетрадь(3)
.pdfВключение сглаживания
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
Базовые функции для работы с графикой