Рисование цветных изображений с помощью PHP. Программирование для развлечения

Джеймс Уэллс

Научитесь программировать! Это увлекательно! Книга познакомит вас с языком программирования на PHP. Даже если вы не собираетесь стать программистом, после чтения книги вы научитесь «рисовать» картины с помощью PHP-кода, даже если вы не художник. Или вы можете использовать примеры из книги в качестве упражнений для вашего мозга. Это интереснее чем разгадывать кроссворды! Купите книгу сейчас, чтобы повысить свою креативность!

Оглавление

Как рисовать линии

Чтобы создать и отобразить линию или любую фигуру, нам нужно создать пустое черное изображение, используя встроенную функцию 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.)

<?php

// Создать пустое изображение

$img=imagecreatetruecolor (900, 700);

//заказать цвет (заказываем цвет)

$yellow = imagecolorallocate ($img, 255, 255, 0);

// draw a line

imageline (

$img, //GdImage

200, //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).

<?php

//Создать пустое изображение

$img=imagecreatetruecolor (900, 700);

// set the line thickness

imagesetthickness ($img, 7);

//заказать цвет (заказываем цвет)

$yellow = imagecolorallocate ($img, 255, 255, 0);

// начертить линию

imageline (

$img, //GdImage

200, //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

<?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

<?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

<?php

$height=«3000»;

$width=«3000»;

//Создать пустое изображение

$img=imagecreatetruecolor ($width, $height);

//заказать цвет

$lightblue = imagecolorallocate ($img, 0, 195, 255);

$yellow = imagecolorallocate ($img, 255, 255, 0);

Конец ознакомительного фрагмента.

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я