(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Проекты | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация (English)

Б2. Использование функционала PHP. Создание и обработка изображений в GD

Цель работы

Получить навыки работы со встроенными функциями php на примере некоторых функций обработки и создания изображений GD. Освоить документацию PHP http://php.net, научиться выполнять поиск нужных функций, определять синтаксис, аргументы, возвращаемое значение.

Описание работы

Создайте отдельную директорию в public_html. В каждом задании дан шаблонный скрипт без расширения, нужно переименовать его с расширением .php.

1. Собери пирамиду

Предлагается шаблон скрипта (piramida):
<?php
$im = imagecreatetruecolor(200, 200);

$blue = imagecolorallocate($im, 0, 0, 255);
$red = imagecolorallocate($im, 255, 0, 0);
$green = imagecolorallocate($im, 0, 255, 0);

imagefilledrectangle ($im, 20, 20, 60,60, $red); //залитый прямоугольник

imagefilledellipse($im, 50, 160, 30, 30, $green); //залитый круг

// массив точек для треугольника
$values = array(
            150,  110,  // Point 1 (x, y)
            140,  130, // Point 2 (x, y)
            160,  130,  // Point 3 (x, y)
            );

// рисование треугольника
imagefilledpolygon($im, $values, 3, $blue);

// прорисовка
header("Content-type: image/png");
imagepng($im);

// освобождение памяти
imagedestroy($im);

?>
Требуется с помощью php.net изучить функции, используемые в скрипте. Изменить параметры функций таким образом, чтобы получилось изображение пирамиды: внизу - синий квадрат, середина - красный круг, вверху - зеленый треугольник.

2. Демотиватор

Предлагается шаблон скрипта (demotivator):
<?php

// тип содержимого - jpg
header('Content-Type: image/jpeg');

// открытие файла с картинкой и связываем его с идентификатором $im
$im = imagecreatefromjpeg("./samples/1.jpg");

// создание цвета текста
$text_color = imagecolorallocate($im, 255, 65, 91);

// прорисовка строки текста шрифтом (латиница!) 5 в координаты 5, 5
imagestring($im, 5, 250, 350,  "HELLO WORLD", $text_color);

// вывод изображения в браузер
imagejpeg($im);

// освобождение памяти
imagedestroy($im);
?>
Необходимо самостоятельно разобрать работу программы, назначение каждой функции и список аргументов. Вместо надписи "HELLO WORLD" вывести надпись кириллицей (UTF8) "ЕГЭ ПО РИСОВАНИЮ". Проблема: в перечень встроенных шрифтов для функции imagestring() не входят кириллические шрифты. Для решения проблемы необходимо:
  1. Изучить работу функции imagettftext(), список параметров и пример использования (см. php.net после описания функции).
  2. Сохранить файл с рисунком 1.jpg и файл с TrueType шрифтом arial.ttf в рабочую директорию.
  3. Ориентируясь на пример 1 вывести строку "ЕГЭ ПО РИСОВАНИЮ", задав следующие параметры: размер_шрифта=36; координаты (x, y)=(65, 380); цвет текста - белый (R,G,B=255,255,255).
  4. С помощью функции imagejpeg() выполнить вывод получившегося изображения в файл demotivator.jpg

3. Серый кот

Предлагается шаблон скрипта (graycat):
<?php

$im = imagecreatefromjpeg("./samples/cat.jpg");



// устанавливаем тип содержимого
header('content-type: image/jpeg');


// вывод изображения на экран
imagejpeg($im);

// очистка памяти
imagedestroy($im);

?>
Требуется преобразовать картинку cat.jpg в черно-белый формат. Для этого необходимо применить к изображению функцию imagefilter() с соответствующим фильтром (найти самостоятельно через php.net). Скрипт должен выдавать на экран преобразованное изображение и записывать его в файл graycat.jpg