To remove the dash and switch back to solid line, provide an array with a null value in it for $dashArray.
->setStrokeDashArray( [null] );
(PECL imagick 2, PECL imagick 3)
ImagickDraw::setStrokeDashArray — Задаёт паттерн из штрихов и пробелов, используемых для обводки контуров
Функцию пока не задокументировали; для знакомства доступен только список аргументов.
Задаёт паттерн из штрихов и пробелов, используемый для обводки контуров. 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();
}
?>
To remove the dash and switch back to solid line, provide an array with a null value in it for $dashArray.
->setStrokeDashArray( [null] );
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();
?>