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

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

.pdf
Скачиваний:
40
Добавлен:
10.02.2016
Размер:
5.34 Mб
Скачать

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]