Полная версия
Рисование цветных изображений с помощью PHP. Программирование для развлечения
Как рисовать изображения
Теперь мы изучили основы и можем приступать к рисованию изображений.
Вернемся к школьной математике. Когда вы рисовали графики, горизонтальная ось (x) называлась абсциссой, а вертикальная ось (y) называлась ординатой. Чтобы нарисовать линию, мы должны указать координаты X и Y двух точек. В компьютерном программировании ширина и высота окна измеряются в пикселях. Точка в левом верхнем углу окна имеет координаты X=0 и Y=0.
Если мы сдвинем точку на 200 пикселей вправо, не меняя ее положения по вертикали, координаты станут X=200 и Y=0.
Если мы переместим точку на 300 пикселей вниз, координаты точки станут X = 200 Y = 300.
Нарисуйте еще одну точку с координатами X = 800 и Y = 600 и соедините точки прямой линией. См. Рис. 13.
Рис. 13. Прямая.
Теперь вы можете нарисовать линию на веб-странице с помощью PHP-кода.
Но прежде мы должны внести изменения в файл php.ini в парке PHP. Откройте файл php.ini в notepad++ и найдите строку «;extension=gd». Удалите точку с запятой перед extension=gd, extension=fileinfo и extension=gmp.
Сохраните файл.
;extension=bz2
;extension=curl
;extension=ffi
;extension=ftp
extension=fileinfo
extension=gd
;extension=gettext
extension=gmp
;extension=intl
Найдите error reporting, удалите точку с запятой перед E_ALL и удалите весь текст после E_ALL на той же строке.
Рис. 14. Еrror reporting
Вы можете посмотреть это видео, чтобы узнать больше о конфигурации PHP.
https://youtu.be/LVEhccXXnOo"
Как рисовать линии
Чтобы создать и отобразить линию или любую фигуру, нам нужно создать пустое черное изображение, используя встроенную функцию PHP imagecreatetruecolor. Эта функция принимает два параметра: ширину и высоту изображения.
Затем нам нужно заказать цвет с помощью функции imagecolorallocate. Эта функция принимает изображение, созданное функцией imagecreatetruecolor, и цвет в формате RGB. RGB означает красный (Red), зеленый (Green) и синий (Blue).
Каждый RGB цвет может иметь значение от 0 до 255. Например, RGB (255, 0, 0) красный,
RGB (255, 255, 0) – желтый, RGB (0, 255, 0) – зеленый, RGB (0, 0, 255) – синий.
Вы можете выбрать значения RGB цветов на этом веб-сайте: https://www.w3schools.com/colors/colors_converter.asp.
После заказа цвета мы можем нарисовать изображение. Чтобы нарисовать линию, мы должны использовать функцию imageline, которая принимает шесть параметров: изображение, созданное функцией imagecreatetruecolor, координаты X и Y двух точек и цвет, созданный функцией imagecolorallocate.
Чтобы отобразить строку на веб-странице, мы должны использовать заголовок:
header («Content-type: image/jpeg’);
imagejpeg ($img); функция выводит изображение в браузер.
Функция imagedestroy стирает изображение и освобождает память.
Файл: draw_line.php. (См. рис. 15.)
// Создать пустое изображение$img=imagecreatetruecolor (900, 700);//заказать цвет (заказываем цвет)$yellow = imagecolorallocate ($img, 255, 255, 0);// draw a lineimageline ($img, //GdImage200, //x1,300, //y1,800, //x2,600, //y2,$yellow //color);header («Content-type: image/jpeg’);//показать изображениеimagejpeg ($img);imagedestroy ($img);?>Рисунок 15. Нарисуйте линию. Draw line.
Мы можем изменить толщину линии, добавив одну строку кода. Функция imagesetthickness будет контролировать толщину линии в пикселях.
Файл: draw_thick_line.php (см. рис. 16).//Создать пустое изображение$img=imagecreatetruecolor (900, 700);// set the line thicknessimagesetthickness ($img, 7);//заказать цвет (заказываем цвет)$yellow = imagecolorallocate ($img, 255, 255, 0);// начертить линиюimageline ($img, //GdImage200, //x1,300, //y1,800, //x2,600, //y2,$yellow //color);
header («Content-type: image/jpeg’);
//вывести изображение
imagejpeg ($img);
imagedestroy ($img);
?>
Рис. 16. Толстая линия.
Чтобы попрактиковаться, пожалуйста, создайте линии с разными направлениями, цветами и толщиной. Попробуйте использовать функцию imagedashedline вместо функции imageline. imagedashedline принимает те же параметры, но рисует прерванную линию. ( – — – — – — – —)
Нарисуем солнце на голубом небе. Сначала нарисуем желтый круг. См. рис. 16. Чтобы нарисовать круг, мы будем использовать функцию imagefilledellipse. Эта функция принимает шесть параметров, GD-изображение, координаты X и Y центра эллипса, ширину, высоту и цвет. См. исходный код в файле yellow_circle1.php.
File: yellow_circle1.php
$height=«2000»;
$width=«2000»;
// Создать пустое изображение
$img=imagecreatetruecolor ($width, $height);
//заказать цвет (заказываем цвет)
$yellow = imagecolorallocate ($img, 255, 255, 0);
imagefilledellipse ($img, $width/2, $height/2, $width/2, $height/2, $yellow);
//вывести изображение в файл
imagejpeg($img,'images/yellow_circle1.jpg’,100);
header («Content-type: image/jpeg’);
//показать изображение
imagejpeg ($img);
imagedestroy ($img);
?>
Теперь давайте добавим синий цвет фона. Закажите голубой цвет:
$lightblue = imagecolorallocate ($img, 0, 195, 255);
Затем нарисуйте синий прямоугольник, используя функцию imagefilledrectangle. Эта функция принимает шесть параметров: изображение GD, координаты X1 и Y1 начальной точки (левый верхний угол) и координаты X2 и Y2 конечной точки (правый нижний угол) и цвет. Вот строки кода, которые мы добавили в файл yellow_circle2.php. Они выделены.
imagefilledrectangle ($img, 0, 0, $width, $height, $lightblue);
Затем мы можем нарисовать желтый круг с помощью функции imagefilledellipse и получить изображение, как на рисунке 17.
Рисунок 17 Желтый круг на голубом фоне.
Файл: yellow_circle2.php
$height=«2000»;
$width=«2000»;
//Создать пустое изображение
$img=imagecreatetruecolor ($width, $height);
//заказать цвет
$lightblue = imagecolorallocate ($img, 0, 195, 255);
$yellow = imagecolorallocate ($img, 255, 255, 0);
//рисуем прямоугольник
imagefilledrectangle ($img, 0, 0, $width, $height, $lightblue);
imagefilledellipse ($img, $width/2, $height/2, $width/2, $height/2, $yellow);
//output the image in the file
imagejpeg($img,'images/yellow_circle2.jpg’,100);
header («Content-type: image/jpeg’);
//показать изображение
imagejpeg ($img);
imagedestroy ($img);
?>
Теперь нарисуем солнце, как на рисунке 18.
Рисунок 18. Солнце.
Файл: sun3.php
$height=«3000»;
$width=«3000»;
//Создать пустое изображение
$img=imagecreatetruecolor ($width, $height);
//заказать цвет
$lightblue = imagecolorallocate ($img, 0, 195, 255);
$yellow = imagecolorallocate ($img, 255, 255, 0);
Конец ознакомительного фрагмента.
Текст предоставлен ООО «ЛитРес».
Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.