Ich hatte die Möglichkeit, eine Figur mit einem Kissen zu zeichnen, aber als ich sie mit den Standardeinstellungen zeichnete, stellte sich heraus, dass es sich um ein flatterndes Bild handelte. Wenn Sie es sauber machen möchten, können Sie es in doppelter Größe exportieren und beim Ändern der Größe Antialiasing angeben, aber es ist etwas ärgerlich. Ich habe ein Modul gefunden, das von Anfang an wunderschön gezeichnet werden kann, also werde ich es aufschreiben.
Referenz https://stackoverrun.com/ja/q/3880127 Referenz https://aggdraw.readthedocs.io/en/latest/
Es sieht so aus, wenn Sie normal mit Pollow zeichnen. Kannst du sehen, dass die Hörner nicht verarbeitet werden und es Zacken gibt?
from PIL import Image, ImageDraw
image = Image.new('RGB', (300, 300), (255, 255, 255))
draw = ImageDraw.Draw(image)
draw.line((150, 50, 250, 250, 50, 250, 150, 50), fill=(0, 0, 0), width=20)
draw.line((10, 140, 290, 160), fill=(0, 0, 0), width=20)
image.save('test1.png', quality=100)
Derzeit ist die Abrundung von Ecken in der neueren Version des Kissens implementiert. Fügen Sie dem Argument einfach * Joint = "Kurve" * hinzu.
from PIL import Image, ImageDraw
image = Image.new('RGB', (300, 300), (255, 255, 255))
draw = ImageDraw.Draw(image)
draw.line((150, 50, 250, 250, 50, 250, 150, 50), fill=(0, 0, 0), width=20, joint="curve")
draw.line((10, 140, 290, 160), fill=(0, 0, 0), width=20)
image.save('test2.png', quality=100)
Dies wird die Ecken abrunden. Anfang und Ende des Schreibens werden nicht verarbeitet. Wenn Sie also neugierig sind, verfolgen Sie die erste Seite erneut.
from PIL import Image, ImageDraw
image = Image.new('RGB', (300, 300), (255, 255, 255))
draw = ImageDraw.Draw(image)
draw.line((150, 50, 250, 250, 50, 250, 150, 50, 250, 250), fill=(0, 0, 0), width=20, joint="curve")
draw.line((10, 140, 290, 160), fill=(0, 0, 0), width=20)
image.save('test3.png', quality=100)
Die Installation mit Pip war normal
pip install aggdraw
Mit aggdraw können Sie so zeichnen, wie es auf dem mit Kissen erstellten Bild ist. Es ist, als würde man einen Stift definieren und damit schreiben. Können Sie sehen, dass der Jagi verschwunden ist, weil er selbst Anti-Aliasing und Alphasynthese durchführt?
from PIL import Image
import aggdraw
image = Image.new('RGB', (300, 300), (255, 255, 255))
draw = aggdraw.Draw(image)
pen = aggdraw.Pen((0, 0, 0), 20)
draw.line((150, 50, 250, 250, 50, 250, 150, 50, 250, 250), pen)
draw.line((10, 140, 290, 160), pen)
draw.flush()
image.save('test4.png', quality=100)
Es gibt auch einen Pinsel (Füllung)
from PIL import Image
import aggdraw
image = Image.new('RGBA', (300, 300), (255, 255, 255, 255))
draw = aggdraw.Draw(image)
brush = aggdraw.Brush((0, 0, 0), 255)
draw.line((150, 50, 250, 250, 50, 250, 150, 50, 250, 250), brush)
draw.flush()
image.save('test5.png', quality=100)
Recommended Posts