PHP ImageMagick: как сгладить строку - PullRequest
1 голос
/ 25 апреля 2019

У меня проблемы с линией с неровными краями (см. Белую линию):

enter image description here

Если я уменьшу ход (с 10 до 4), тогда все в порядке, но линия не видна достаточно (мне нужна более толстая линия):

enter image description here

Я установил $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(....);
...

РЕДАКТИРОВАТЬ: Я также пытался этот ответ + уменьшенный ход линий, но результат был тот же.

1 Ответ

2 голосов
/ 26 апреля 2019

Основываясь на комментарии emcconville, я смог исправить это, используя polyline () для рисования линии вместо множества вызовов line ().

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...