要删除虚线并切换回实线,请为 $dashArray 提供一个包含 null 值的数组。
->setStrokeDashArray( [null] );
(PECL imagick 2, PECL imagick 3)
ImagickDraw::setStrokeDashArray — 指定用于描边路径的虚线图案
此函数目前没有文档;只有其参数列表可用。
指定用于描边路径的虚线图案。strokeDashArray 表示一个数字数组,以像素为单位指定交替虚线和间隙的长度。如果提供奇数个值,则重复该值列表以生成偶数个值。要删除现有的虚线数组,请传递一个零 number_elements 参数和一个 null dash_array。典型的 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, 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();
}
?>
示例
<?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();
?>