PHP Conference Nagoya 2025

ImagickDraw::setStrokeDashArray

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeDashArrayEspecifica el patrón de rayas y huecos usado por los trazados de contorno

Descripción

public ImagickDraw::setStrokeDashArray(array $dashArray): bool
Advertencia

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Especifica el patrón de rayas y huecos usado por los trazados de contorno. strokeDashArray representa una matriz de números que especifican la longitud de las rayas y huecos alternados en píxeles. Si se proporciona un número de valores impar, la lista de valores se repite para producir un número de valores par. Para quitar una matriz de discontinuidad existente, pase un argumento con cero número de elementos y una matriz de discontinuidad null. Una matriz strokeDashArray_ típica puede contener los números 5 3 2.

Parámetros

dashArray

matriz de elementos de tipo float

Valores devueltos

Devuelve true en caso de éxito.

Ejemplos

Ejemplo #1 Ejemplo de 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
16 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