Как нарисовать плавную линию в PIL?

Я пытаюсь провести линию в проекте, где я помечу несколько изображений. Вот мой код:

header_img = Image.open("1.jpg") 
header1_img = header_img.resize((610, 320), Image.ANTIALIAS)
draw = ImageDraw.Draw(header1_img)
draw.line(((620, 100), (500, -30)), fill=(23,53,177,255), width=30)
header1_img.save("2.jpg", subsampling=0, quality=100)

Вот результат

Как видите, линия совсем не гладкая. Как это сделать правильно?


person CommYov    schedule 07.11.2017    source источник
comment
Я не знаю, но ключевое слово, вероятно, сглаживание.   -  person Andras Deak    schedule 07.11.2017
comment
@AndrasDeak Я нашел поток о переполнении стека, но это кажется слишком сложным ... Я бы предпочел просто нарисовать линию прямо, а затем повернуть все изображение   -  person CommYov    schedule 07.11.2017
comment
Линия, естественно, будет выглядеть намного лучше, если вы сделаете ее точным углом 45 ° (разница в координатах X равна разнице в координатах Y - в настоящее время у вас 120 X, но 130 Y).   -  person jasonharper    schedule 16.11.2017
comment
Большое спасибо @jasonharper. Не могли бы вы рассказать, как вам удалось найти координаты X и Y?   -  person CommYov    schedule 17.11.2017
comment
Поскольку вы изменяете размер изображения (я считаю, что уменьшая его), вы можете рисовать перед изменением размера, изменение размера затем приведет к некоторому сглаживанию. Тем не менее, это не может быть даже близко к хорошему рендерингу SVG.   -  person Daniel F    schedule 13.03.2021