Задание к РГР по GD

advertisement
РАСЧЕТНО-ГРАФИЧЕСКОЕ ЗАДАНИЕ
PHP. Работа с графическим инструментарием.
1. Цель работы
Изучить принципы работы с графиком на языке PHP, освоить функции создания,
изменения, обработки изображений на основе данных из базы данных MySQL.
2. Краткие теоретические сведения
В PHP нет ограничений на создание простого HTML-вывода. Он может также
использоваться для создания изображений и манипуляций с файлами изображений
различных форматов, включая gif, png, jpg, wbmp и xpm. Что особенно удобно: PHP может
выводить поток изображения непосредственно в браузер. Вам для этого необходимо
скомпилировать PHP с библиотекой GD функций изображений.
Использование средств работы с графикой позволяет создавать и изменять изображения.
Данные возможности применяются довольно часто для оптимизации изображений,
построения графиков, генерации кодов подтверждения.
Библиотека GD предоставляет широкий набор функций для работы. Описание полного
набора функций доступен по ссылке http://php.net/manual/ru/ref.image.php
Мы рассмотрим описание функций, которые мы применим в наших примерах.
• resource imagecreate (int x_size, int y_size) - создаёт новое палитровое изображение.
возвращает идентификатор изображения, представляющий пустое изображение
размером x_size на y_size.
• int imagecolorallocate (resource image, int red, int green, int blue) - выделение цвета
для изображения. Возвращает идентификатор цвета, представляющий цвет,
составленный из данных RGB-компонентов.
Аргумент
im
возвращается
от
imagecreate().
red, green и blue это значения красного, зелёного и синего компонентов цвета. Эти
параметры являются целыми числами в диапазоне от 0 до 255. imagecolorallocate()
обязана вызываться для создания каждого цвета, используемого в изображении image.
$white = imagecolorallocate ($im, 255, 255, 255);
Возвращает -1, если выделение не удалось.
• int imagestring (resource image, int font, int x, int y, string s, int col) - рисовать строку
горизонтально.
imagestring() рисует строку s на изображении image с координатами x, y (верхний
левый равен 0, 0) цветом col. Если font равен 1, 2, 3, 4 или 5, используется встроенный
шрифт.
• int imagepng (resource image [, string filename]) - выводит изображение PNG в
браузер или файл.
imagepng() выводит GD-поток изображения (image) в формате PNG на стандартный
вывод (обычно в браузер) или, если задано имя файла аргументом filename, в файл.
• int imageellipse (resource image, int cx, int cy, int w, int h, int col) - рисует эллипс.
imageellipse() рисует эллипс с центром cx, cy (верхний левый угол имеет координаты 0,
0) на изображении image. W и h специфицируют ширину и высоту эллипса,
соответственно. Цвет специфицирован параметром color.
• int imagerectangle (resource image, int x1, int y1, int x2, int y2, int col) - рисует
прямоугольник.
imagerectangle() создаёт прямоугольник цвета col на изображении image, начиная с
верхней левой координаты x1, y1 и заканчивая правой нижней координатой x2, y2. 0, 0
это верхний левый угол изображения.
• int imagefilledrectangle (resource image, int x1, int y1, int x2, int y2, int col)
imagefilledrectangle() создаёт заполненный прямоугольник цвета col на изображении
image, начиная с верхней левой точки с координатами x1, y1 и заканчивая в правой
нижней точке с координатами x2, y2. 0, 0 это верхний левый угол изображения.
• imageline - рисует линию.
int imageline (resource image, int x1, int y1, int x2, int y2, int col)
imageline() рисует линию от x1, y1 до x2, y2 (верхний левый угол изображения имеет
координаты 0, 0) на изображении цветом col.
• int imagefilledarc (resource image, int cx, int cy, int w, int h, int s, int e, int col, int style)
imagefilledarc() рисует часть эллипса с центром cx, cy (верхний левый угол имеет
координаты 0, 0) на изображении image. W и h специфицируют ширину и высоту
эллипса, а начальная и конечная точки специфицированы в градусах аргументами s и
e. style это битовое ИЛИ
• resource imagecreatefromjpeg (string filename) - создаёт новое изображение из файла
или URL.
imagecreatefromjpeg() возвращает идентификатор изображения, полученного из
данного файла filename.
Возвращает пустую строку при ошибке.
• int imagecopyresampled (resource dst_im, resource src_im, int dstX, int dstY, int srcX,
int srcY, int dstW, int dstH, int srcW, int srcH)
imagecopyresampled() копирует прямоугольную часть изображения в другое
изображение, плавно интерполируя пикселные значения таким образом, что
уменьшение размера изображения сохранит его чёткость и яркость.
3. Методические указания
3.1. Для копирования файлов на Web-сервер используйте имеющиеся на локальном
компьютере ftp-клиенты, например, файловый менеджер FAR. Он позволяет
редактировать файлы непосредственно на ftp-сервере.
3.2. При написании сценариев обращайте внимание на кодировку русского текста,
правильность написания HTML-тегов, имен переменных и функций PHP, парность
открывающих и закрывающих кавычек в операторе echo.
3.3. При отладке сценариев обновляйте содержимое окна браузера при нажатой клавише
Shift.
3.4. По окончании отладки сценариев скопируйте их на локальный компьютер для
сохранения и распечатки.
4. Порядок выполнения работы
4.1. Подключиться к MySQL-серверу, создать таблицы, произвести наполнение
числовыми данными те таблицы, которые будут использоваться для генерации
изображения.
4.2. Написать php-скрипт, которые производит выборку данных из этой таблицы базы
данных, формирует массив данных.
4.3. Создать интерфейс для работы со скриптом. Интерфейс должен содержать элементы
управления выводом графика – кнопка Сформировать.
4.4. Написать php-скрипт, который по сформированному массиву данных нарисует
график распределения значений.
4.5. Сверить полученный результат с результатом других программ (Excel, Mathcad).
5. Варианты заданий
Вариант 1. Нарисовать гистограмму.
Вариант 2. Нарисовать линейный график.
Вариант 3. Нарисовать точечную диаграмму.
Вариант 4. Диаграмма с областями.
Вариант 5. Гистограмма в виде цилиндрических столбцов.
6. Содержание отчета
6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.
Цель работы.
Вариант задания.
Структура базы данных в графическом виде.
Набор экспериментальных данных.
Результат графического файла.
Протокол команд создания, работы с изображениями.
Исходные коды скриптов.
7. Контрольные вопросы
7.1.
7.2.
7.3.
7.4.
7.5.
7.6.
7.7.
7.8.
7.9.
7.10.
Формирование и выполнение запроса к базе данных.
Перемещение по записям, извлеченным из базы данных.
Извлечение данных из полей записи.
Создание изображения. Варианты создания. Особенности.
Рисование фигур – эллипс, прямоугольник, закрашенный прямоугольник.
Вывод текста в изображении. Особенности оформления.
Алгоритм построения гистограммы.
Построение круговой диаграммы.
Построение аппроксимирующей линии.
Вывод изображения в браузер.
Related documents
Download