Задача
Необходимо нарисовать фигуру, используя стиль линии, отличный от стиля по умолчанию, которым является непрерывная линия.
Решение
Для вычерчивания фигур узорными линиями предназначена функция 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);