PHP ImageMagick:如何消除一条线的锯齿
PHP ImageMagick: how to antialias a line
我遇到了锯齿状边缘的问题(见白线):
如果我减少笔画(从10到4),那还可以,但是线条不够明显(我需要更粗的线条):
我设置了 $canvas->setStrokeAntialias(true);
,但没有用。如果我增加图像分辨率,那么我需要做更大的笔画,最后结果是一样的。我怎样才能得到一条漂亮的抗锯齿线,它也很粗?
这是我的代码:
$canvas = new \ImagickDraw();
$canvas->setStrokeColor($stroke_color);
$canvas->setFillColor($fill_color);
$canvas->setStrokeWidth($stroke_width);
$canvas->setStrokeAntialias(true);
$canvas->line(....);
$canvas->line(....);
$canvas->line(....);
...
编辑: 我也试过 + 减少线条的笔划,但结果是一样的。
根据 emcconville 的评论,我能够通过使用 polyline() 来绘制线而不是多次调用 line() 来解决此问题。
我遇到了锯齿状边缘的问题(见白线):
如果我减少笔画(从10到4),那还可以,但是线条不够明显(我需要更粗的线条):
我设置了 $canvas->setStrokeAntialias(true);
,但没有用。如果我增加图像分辨率,那么我需要做更大的笔画,最后结果是一样的。我怎样才能得到一条漂亮的抗锯齿线,它也很粗?
这是我的代码:
$canvas = new \ImagickDraw();
$canvas->setStrokeColor($stroke_color);
$canvas->setFillColor($fill_color);
$canvas->setStrokeWidth($stroke_width);
$canvas->setStrokeAntialias(true);
$canvas->line(....);
$canvas->line(....);
$canvas->line(....);
...
编辑: 我也试过
根据 emcconville 的评论,我能够通过使用 polyline() 来绘制线而不是多次调用 line() 来解决此问题。