|
|
Б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() не входят кириллические шрифты.
Для решения проблемы необходимо:
- Изучить работу функции imagettftext(), список параметров и пример использования (см. php.net после описания функции).
- Сохранить файл с рисунком 1.jpg и файл с TrueType шрифтом arial.ttf в рабочую директорию.
- Ориентируясь на пример 1 вывести строку "ЕГЭ ПО РИСОВАНИЮ", задав следующие параметры:
размер_шрифта=36; координаты (x, y)=(65, 380); цвет текста - белый (R,G,B=255,255,255).
- С помощью функции 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).
Скрипт должен выдавать на экран преобразованное изображение.
|