Gibt es ein Anti-Aliasing-Methode für Python PIL?
Für Linien und Ellipsen in der von PIL, die Bilder sind rau.
Fand ich antialiasing nur in Größe und thumbnail.
Gibt es eine Möglichkeit, das zu tun antialiasing beim zeichnen einer Linie oder ellipse?
Könnte man einen low-pass-Filterung :), werden Sie wahrscheinlich wollen, zu bewegen, um
aggdraw
(oder cairo
, oder ...) für die "ausgefalleneren" - Zeichnung.InformationsquelleAutor whi | 2013-01-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einzige Weg, es zu tun nativ ist mit supersampling. Rendern Sie Ihr Bild auf ein Vielfaches der Größe, die Sie benötigen, dann
resize
es mitfilter=Image.ANTIALIAS
.Funktioniert gut, obwohl mit die Letzte Kissen gab
TypeError: resize() got an unexpected keyword argument 'filter
, so verwendet der in-place -im.thumbnail((original_width, original_height))
, die auch standardmäßigresample=ANTIALIAS
für beste Qualität.In der
Image.resize()
- Methode der aktuellen stabilen version der pillow fork vonPIL
, die keyword-argument den Namenresample
. Dies wurde geändert in version 2.7.0. Beachten Sie auch, dassImage.LANCZOS
das gleiche alsImage.ANTIALIAS
—das ist nicht erwähnt in der Methode der Dokumentation.InformationsquelleAutor Mark Ransom
aggdraw (http://effbot.org/zone/aggdraw-index.htm) kann etwas, das Sie interessiert sind in.
Den aggdraw Modul implementiert die grundlegenden WCK 2D-Zeichnung-Schnittstelle auf der Oberseite des AGG-Bibliothek. Diese Bibliothek bietet eine hohe Qualität Zeichnung, mit anti-aliasing und alpha-compositing und ist dabei vollständig kompatibel mit der WCK-renderer.
Den aggdraw Modul kann mit PIL oder die WCK-Bibliothek (unter Tkinter oder native Windows). Es kann auch verwendet werden, als stand-alone-Bibliothek.
InformationsquelleAutor KevinC