Рисование узорными линиями

Задача
Необходимо нарисовать фигуру, используя стиль линии, отличный от стиля по умолчанию, которым является непрерывная линия.

Решение
Для вычерчивания фигур узорными линиями предназначена функция ImageSetStyle(), которой в качестве изображения передается параметр IMG_COLOR_STYLED:

$black = ImageColorAllocate($image, 0, 0, 0);
$white = ImageColorAllocate($image, 255, 255, 255);
// создаем черно-белую пунктирную линию толщиной в два пиксела
$style = array($black, $black, $white, $white);
ImageSetStyle($image, $style);
ImageLine($image, 0, 0, 50, 50, IMG_COLOR_STYLED);
ImageFilledRectangle($image, 50, 50, 100, 100, IMG_COLOR_STYLED);

Обсуждение
Узор линии (шаблон) определяется массивом цветов. Каждый элемент массива представляет отдельный пиксел кисти. Часто бывает удобно повторять одинаковый цвет последовательных элементов, увеличивая размер черточек в шаблоне. Например, ниже приведен фрагмент кода, рисующий квадрат с чередующимися белыми и черными пикселами:

$style = array($white, $black);
ImageSetStyle($image, $style);
ImageFilledRectangle($image, 0, 0, 49, 49, IMG_COLOR_STYLED);

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Безопасная работа с изображениями
Построение динамических изображений
Программа: создание гистограмм результатов голосования
Рисование дуг, эллипсов и окружностей
Рисование линий, прямоугольников и многоугольников

Вернуться в раздел: PHP / 15. Графика