首页 > 解决方案 > PHP ImageMagick:如何消除线条的锯齿

问题描述

我遇到了边缘锯齿线的问题(见白线):

在此处输入图像描述

如果我减少中风(从 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(....);
...

编辑:我也试过这个答案+减少线条,但结果是一样的。

标签: phpimagemagickimagick

解决方案


根据 emcconville 的评论,我能够通过使用 polyline() 来绘制线条而不是许多 line() 调用来解决这个问题。

在此处输入图像描述


推荐阅读