我正在尝试使用PHP Imagick绘制虚线。此代码生成一个实线:
$line = new ImagickDraw();
$line->setStrokeWidth(3);
$line->setStrokeDashArray([10, 10]);
$line->line(0, 0, 100, 100);
setStrokeDashArray()
似乎适用于ImagickDraw::rectangle()
但不是ImagickDraw::line()
图纸的大纲。有没有办法画出简单的虚线?
答案 0 :(得分:1)
要获得一条没有实线的漂亮虚线,请将填充颜色设置为不透明度(只要不透明度值为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;
调试输出结果: