PHP 8.3.4 Released!

ImagickDraw::setStrokeDashArray

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeDashArrayЗадаёт паттерн из штрихов и пробелов, используемых для обводки контуров

Описание

public ImagickDraw::setStrokeDashArray(array $dashArray): bool
Внимание

Функция пока не документирована; для знакомства доступен только список аргументов.

Задаёт паттерн из штрихов и пробелов, используемый для обводки контуров. strokeDashArray представляет собой массив чисел, определяющих длину чередующихся штрихов и пробелов в пикселях. Если указано нечётное количество значений, то список значений повторяется, чтобы получить чётное количество значений. Чтобы удалить существующий массив штрихов, необходимо передать number_elements со значением ноль и dash_array со значением null. Типичный массив strokeDashArray_ может содержать элементы 5 3 2.

Список параметров

dashArray

Массив чисел с плавающей точкой.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования ImagickDraw::setStrokeDashArray()

<?php
function setStrokeDashArray($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(4);

$draw->setStrokeDashArray([10, 10]);
$draw->rectangle(100, 50, 225, 175);

$draw->setStrokeDashArray([20, 5, 20, 5, 5, 5,]);
$draw->rectangle(275, 50, 400, 175);

$draw->setStrokeDashArray([20, 5, 20, 5, 5]);
$draw->rectangle(100, 200, 225, 350);

$draw->setStrokeDashArray([1, 1, 1, 1, 2, 2, 3, 3, 5, 5, 8, 8, 13, 13, 21, 21, 34, 34, 55, 55, 89, 89, 144, 144, 233, 233, 377, 377, 610, 610, 987, 987, 1597, 1597, 2584, 2584, 4181, 4181,]);

$draw->rectangle(275, 200, 400, 350);

$image = new \Imagick();
$image->newImage(500, 400, $backgroundColor);
$image->setImageFormat("png");
$image->drawImage($draw);

header("Content-Type: image/png");
echo
$image->getImageBlob();
}

?>

add a note

User Contributed Notes 2 notes

up
1
KV
5 years ago
To remove the dash and switch back to solid line, provide an array with a null value in it for $dashArray.

->setStrokeDashArray( [null] );
up
1
andrew at ierbsolutions dot co dot uk
15 years ago
Example:

<?php
$base_image
= new Imagick('example.png');
$rect = new ImagickDraw();
$rect->setFillColor(new ImagickPixel("#EEEEEE"));
$rect->setFillOpacity(0);
$rect->setStrokeColor(new ImagickPixel("#FF0000"));
$rect->setStrokeDashArray(array(5,5,5));
$rect->rectangle(10, 10, 100, 100);
$base_image->drawImage($rect);

header('Content-type: image/png');
echo
$base_image->getImage();
exit();
?>
To Top