Рисование линий в php. Стиль, цвет, толщина

Рисование линий в php. Введение

Рисование линий в php. Стиль, цвет, толщинаВ этой статье я приведу пример работы с библиотекой GD, а именно рисование линий. Рисовать можно как на пустых холстах, так и на загруженных изображениях. Линии могут иметь различный цвет, стиль изображения – не прерывная, пунктир, точки, точка и тире и так далее. Для установки стиля, используется функция imagesetstyle, которая принимает массив с порядком нанесения и цветом пикселей. Чтобы определить толщину линии применяется функция – imagesetthicknes. А для рисования самой линии используется функция imageline,которая принимает значение начальных и конечных координат по осям X и Y.

Рисование линий в php. Код

$width = 200; // ширина изображения
$height = 200; // высота изображения
// создаем изображение, на котором будем рисовать 
$img = imagecreatetruecolor($width, $height);
// цвет заливки фона. зеленый
$rgb = 0xFFFFFF; 
// заливаем холст цветом $rgb
imagefill($img, 0, 0, $rgb); 

// создаем цвета
$red   = imagecolorallocate($img, 255, 0, 0);
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);

// координаты линии
$x1 = 20; $y1 = 50; $x2 = 180; $y2 = 50;
// рисуем обычную линию
imageline ($img, $x1, $y1, $x2, $y2, $black);

// установка стиля линии (пунктир)
// 4 белых пикселя, 4 черных
$style = array($white, $white, $white, $white, $black, $black, $black, $black);
imagesetstyle($img, $style);
// координаты линии
$x1 = 20; $y1 = 150; $x2 = 180; $y2 = 50;
// рисуем пунктирную линию
imageline ($img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);

// толщина линии
imagesetthickness($img, 5);
// координаты линии
$x1 = 20; $y1 = 150; $x2 = 180; $y2 = 150;
// рисуем толстую линию
imageline ($img, $x1, $y1, $x2, $y2, $red);

// заголовок для браузера
header("Content-Type: image/png");
// выводим результат в браузер
imagepng($img); 
// очищаем память после выполнения скрипта
imagedestroy($img);
Рассказать друзьям:


Оценить:
(2 оценок, среднее: 5,00 из 5)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code