Графика в PHP

22 мая 2020 - Администратор

Графика в PHP

PHP позволяет работать с  графическими изображениями. Графические изображения, построенные с помощью PHP, можно использовать для визуализации данных, рисования графиков, отчётов, диаграмм. Разберём, как в PHP скрипте рисовать основные графические фигуры, такие как точка, линия, прямоугольник, круг и вывод текста на графическое изображение. Все изображения мы будем с  помощью PHP записывать в графический файл, а на HTML странице отображать в нужной нам области страницы этот файл с помощью HTML тега img
Общая структура графического PHP скрипта
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Название HTML страницы</title>
</head>
<body>
<?php
Создание графического изображения
Выбор цвета фона
Закрашивание фона
Выбор цвета фигуры 1 
Выбор цвета фигуры 2 
...
Отображение фигуры 1
Отображение фигуры 2
...
Сохранение изображения в графический файл
Освобождение памяти
?>
<p><img src="файл с изображением" <p>
</body>
</html>

Основные графические команды в PHP
Создание изображения в PHP
$изображение = imagecreatetruecolor(ширина, высота);
Пример создания изображения в PHP
$image = imagecreatetruecolor(500, 500);
Заливка цветом области в PHP
imagefill($изображение, Абсцисса начала заливки, Ордината начала заливки, $фон);
Пример заливки в PHP. Закрашивание фона
imagefill($image, 0, 0, $bg);
Выбор цвета рисования графических фигур в PHP
В качестве параметров передаётся изображение и 3 параметра цвета со значениями RGB палитры от 0 до 255
$переменная цвета фигуры = imagecolorallocate($изображение, R, G, B);
Пример выбора цвета в PHP
$col_pixel = imagecolorallocate($image, 255, 255, 255);
Рисование графических фигур в  PHP
Рисование точки в PHP
imagesetpixel($изображение, Абсцисса точки, Ордината точки, $переменная цвета точки);
Пример рисования точки в PHP
imagesetpixel($image, 200, 150, $col_pixel);
Рисование линии в PHP
imageline ($изображение , Абсцисса точки начала , Ордината точки начала , Абсцисса точки конца, Ордината точки конца , $переменная цвета линии);
Пример рисования линии в PHP
imageline ($image , 0 , 100 , 500 , 100 , $col_line);
Рисование прямоугольника в  PHP
imagerectangle ($изображение , Абсцисса левого верхнего угла, Ордината левого верхнего угла, Абсцисса правого нижнего угла,  Ордината правого нижнего угла ,$переменная цвета прямоугольника);
Пример рисования прямоугольника в PHP
imagerectangle ($image , 10 , 490 , 70 , 430 ,$col_rectangle);
Рисование закрашенного прямоугольника в PHP
imagefilledrectangle ($изображение , Абсцисса левого верхнего угла, Ордината левого верхнего угла, Абсцисса правого нижнего угла,  Ордината правого нижнего угла ,$переменная цвета закрашенного прямоугольника);
Пример рисования закрашенного прямоугольника в PHP
imagefilledrectangle ($image , 430 , 10 , 490 , 70 , $col_filled_rectangle);
Рисование эллипса в PHP
imageellipse ($изображение , Абсцисса центра , Ордината центра , Ширина , Высота , $переменная цвета эллипса );
Пример рисования эллипса в PHP
imageellipse ($image , 450 , 450 , 50 , 50 , $col_ellipse );
Чтобы нарисовать круг, ширина и высота эллипса делаются одинаковыми.
Рисование закрашенного эллипса в PHP
imagefilledellipse ($изображение , Абсцисса центра , Ордината центра ,Ширина ,Высота, $переменная цвета закрашенного эллипса);
Пример рисования закрашенного  эллипса в PHP
imagefilledellipse ($image , 50 , 50 ,50 ,50, $col_filled_ellipse);
Вывод текста в графическом скрипте PHP
Размер текста может быть от 1 до 5
imagestring ($изображение , Размер текста , Абсцисса начала , Ордината начала ,'Текст', $переменная цвета текста );
Пример вывода текста в графическом скрипте PHP
imagestring ($image , 5 , 125 , 125 ,'Computer graphics' , $col_text );
Сохранение изображения в файл в PHP
Изображение сохранится в папку со скриптом
imagepng($изображение, './название файла изображения.png');
Пример сохранения изображения в файл в PHP
imagepng($image, './1.png');
Освобождение памяти в графическом скрипте PHP
imagedestroy($изображение);
Пример освобождения памяти в графическом скрипте PHP
imagedestroy($image);
Пример графического PHP скрипта. Рисование основных графических фигур в PHP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>acer</title>
</head>
<body>

<h1>Работа с графикой в PHP</h1>
<?php
// Создание изображения 55x30
$image = imagecreatetruecolor(500, 500);

// Выбор цвета фона.
$bg = imagecolorallocate($image, 150, 150, 150);

// Закрашивание фона выбранным цветом.
imagefill($image, 0, 0, $bg);

// Выбор цвета эллипса.
$col_pixel = imagecolorallocate($image, 255, 255, 255);
$col_line_horizontal = imagecolorallocate($image, 255, 0, 0);
$col_line_vertical = imagecolorallocate($image, 0, 255, 0);
$col_rectangle = imagecolorallocate($image, 255, 255, 0);
$col_filled_rectangle = imagecolorallocate($image, 255, 0, 255);
$col_ellipse = imagecolorallocate($image, 0, 0, 255);
$col_filled_ellipse = imagecolorallocate($image, 0, 255,255);
$col_text = imagecolorallocate($image, 0, 125,255);
// Рисование эллипса.
imagesetpixel($image, 200, 150, $col_pixel);
imageline ($image , 0 , 100 , 500 , 100 , $col_line_horizontal);
imageline ($image , 250 , 0 , 250 , 500 , $col_line_vertical);
imagerectangle ($image , 10 , 490 , 70 , 430 ,$col_rectangle);
imagefilledrectangle ($image , 430 , 10 , 490 , 70 , $col_filled_rectangle);
imageellipse ($image , 450 , 450 , 50 , 50 , $col_ellipse );
imagefilledellipse ($image , 50 , 50 ,50 ,50, $col_filled_ellipse);
imagestring ($image , 5 , 125 , 125 ,'Computer graphics' , $col_text );
// Сохранение изображения
imagepng($image, './1.png');
imagedestroy($image);
?>
<p><img src="1.png" width="500" height="500" alt="ris" ></p>
</body>
</html>

Изображение на веб странице будет выглядеть следующим образом

графика в php

Вернуться к содержанию курса по PHP   Перейти к теме Диаграммы в PHP >>
 

Полезно : Регистрация домена и размещение сайта на хостинге

Поделиться 

 
 
Комментарии (0)

Нет комментариев. Ваш будет первым!