如何在PHP ImageMagick中绘制虚线?

如何在PHP ImageMagick中绘制虚线?,php,drawing,imagick,Php,Drawing,Imagick,我正在尝试使用PHP Imagick绘制一条虚线。此代码生成一条实线: $line = new ImagickDraw(); $line->setStrokeWidth(3); $line->setStrokeDashArray([10, 10]); $line->line(0, 0, 100, 100); setStrokeDashArray()似乎适用于ImagickDraw::rectangle()图形上的轮廓,但不适用于ImagickDraw::line()图形。有没

我正在尝试使用PHP Imagick绘制一条虚线。此代码生成一条实线:

$line = new ImagickDraw();
$line->setStrokeWidth(3);
$line->setStrokeDashArray([10, 10]);
$line->line(0, 0, 100, 100);

setStrokeDashArray()
似乎适用于
ImagickDraw::rectangle()
图形上的轮廓,但不适用于
ImagickDraw::line()
图形。有没有办法画简单的虚线?

要得到一条没有实线的漂亮虚线,请将填充颜色设置为不透明度为零(只要不透明度值为
0
,实际的颜色选择并不重要),然后别忘了设置笔划颜色

一个工作示例(在浏览器转储中添加了调试):

调试输出结果:

$line = new ImagickDraw();
$line->setStrokeColor('rgb(0, 0, 0)');
$line->setFillColor('rgba(255, 255, 255, 0)');
$line->setStrokeWidth(3);
$line->setStrokeDashArray([10, 10]);
$line->line(0, 0, 100, 100);

// for debugging, output to browser:
$image = new Imagick();
$image->newImage(200, 200, 'rgb(230, 230, 230)');
$image->setImageFormat("png");
$image->drawImage($line);
header("Content-Type: image/png");
echo $image->getImageBlob();
exit;