Python-Kissen - ImageDraw-Modul
Das ‘ImageDraw’Modul bietet einfache 2D-Grafikunterstützung für Image Object. Im Allgemeinen verwenden wir dieses Modul, um neue Bilder zu erstellen, vorhandene Bilder zu kommentieren oder zu retuschieren und um Grafiken im laufenden Betrieb für die Webnutzung zu generieren.
Die Grafikbefehle unterstützen das Zeichnen von Formen und das Kommentieren von Text.
Ein Bild kann gut durchdacht sein, um eine zweidimensionale Anordnung von Pixeln (Bildelementen) zu sein. Ein Pixel ist der kleinste unterstützte Farbpunkt.
Der Ursprung des von ImageDraw verwendeten zweidimensionalen Koordinatensystems liegt in der upper left corner des Bildes.
Die von uns verwendeten Kissenfarbschemata sind RGB. Die Darstellung und Unterstützung von Farb-RGB wird vom Modul bereitgestelltImageColor.
Bitmap, OpenType oder TrueType sind die akzeptablen Schriftarten für Textanmerkungen.
Für die meisten Zeichenbefehle ist möglicherweise ein Begrenzungsrahmenparameter erforderlich, der den Bereich auf dem Bild angibt, auf den der Befehl angewendet werden soll.
Eine Folge von Koordinaten kann als [(x0, y0), (x1, y1), ... (xn, yn)] dargestellt werden.
Für einige Zeichenbefehle benötigen wir Winkelwerte.
Beispiel
Das folgende Python-Beispiel zeichnet eine Linie über das angegebene Bild -
#Import required libraries
import sys
from PIL import Image, ImageDraw
#Create Image object
im = Image.open("images/logo.jpg")
#Draw line
draw = ImageDraw.Draw(im)
draw.line((0, 0) + im.size, fill=128)
draw.line((0, im.size[1], im.size[0], 0), fill=128)
#Show image
im.show()
Ausgabe
Wenn Sie das obige Programm als Example.py speichern und ausführen, zeichnet es eine Linie über das Bild und zeigt es mit dem Standard-PNG-Anzeigeprogramm wie folgt an:
Segeltuch
Ein ImageDraw ist eine Kissen-zeichnbare Oberfläche (dh eine Leinwand) eines Bildes.
ImageDraw.Draw (img) gibt eine zeichnbare Canvas-Darstellung des Bildparameters img zurück. Der Hintergrund der Leinwand ist das "img" Bild.
Beispiel
Das folgende Python-Beispiel zeichnet Text auf das angegebene Bild -
#Import required modules from Pillow package
from PIL import Image, ImageDraw, ImageFont
# get an image
base = Image.open('images/boy.jpg').convert('RGBA')
# make a blank image for the text, initialized to transparent text color
txt = Image.new('RGBA', base.size, (255,255,255,0))
# get a font
fnt = ImageFont.truetype('E:/PythonPillow/Fonts/Pacifico.ttf', 40)
# get a drawing context
d = ImageDraw.Draw(txt)
# draw text, half opacity
d.text((14,14), "Tutorials", font=fnt, fill=(255,255,255,128))
# draw text, full opacity
d.text((14,60), "Point", font=fnt, fill=(255,255,255,255))
out = Image.alpha_composite(base, txt)
#Show image
out.show()
Ausgabe
Formen mit dem Modul 'ImageDraw' zeichnen
Mit dem ImageDraw-Modul können wir verschiedene Formen erstellen, indem wir zuerst ein Zeichnungsobjekt mit dem Bild erstellen, mit dem Sie arbeiten möchten, und es dann anwenden. Einige der gängigen Formen, die wir mit dem 'ImageDraw'-Modul zeichnen können, sind folgende:
Linie
Es folgt die Syntax zum Zeichnen einer Linie mit Python Pillow:
draw.line(xy, fill=None, width=0)
Das line()Die Methode zeichnet eine Linie von der oberen linken zur unteren rechten Ecke des Begrenzungsrahmens xy und der Leinwand. Die Linie wird mit Farbfüllung gefüllt. Die Standardwerte None und 0 gelten für die Parameter fill und width, die optional sind.
Beispiel
from PIL import Image, ImageDraw
img = Image.new('RGB', (500, 300), (125, 125, 125))
draw = ImageDraw.Draw(img)
draw.line((200, 100, 300, 200), fill=(0, 0, 0), width=10)
img.show()
Ausgabe
Finsternis
Es folgt die Syntax zum Zeichnen einer Ellipse mit Python Pillow:
draw.ellipse(xy, fill=None, outline=None)
Das ellipse()Methode zeichnet die Ellipse, die beim Zeichnen von der Begrenzungsbox xy umgeben ist. Die Form wird mit Farbfüllung und dem Umfang in Farbkontur gefüllt. Die Standardwerte Keine sind für die Parameter Füllung und Breite, die optional sind.
Beispiel
from PIL import Image, ImageDraw
img = Image.new('RGB', (500, 300), (125, 125, 125))
draw = ImageDraw.Draw(img)
draw.ellipse((200, 125, 300, 200), fill=(255, 0, 0), outline=(0, 0, 0))
img.show()
Ausgabe
Rechteck
Es folgt die Syntax zum Zeichnen eines Rechtecks mit Python Pillow:
draw.rectangle(xy, fill=None, outline=None)
Das rectangle()Methode zeichnet das Rechteck mit Begrenzungsrahmen xy beim Zeichnen. Die Form wird mit Farbfüllung und dem Umfang in Farbkontur gefüllt. Die Standardwerte Keine sind für die Parameter Füllung und Breite, die optional sind.
from PIL import Image, ImageDraw
img = Image.new('RGB', (500, 300), (125, 125, 125))
draw = ImageDraw.Draw(img)
draw.rectangle(
(200, 125, 300, 200),
fill=(255, 0, 0),
outline=(0, 0, 0))
img.show()
Ausgabe
Polygon
Es folgt die Syntax zum Zeichnen eines Rechtecks mit Python Pillow:
draw.polygon(seq, fill=None, outline=None)
Das polygon()Die Methode zeichnet ein Polygon, das mit geraden Linien die Koordinatensequenzpositionen nach dem Zeichnen verbindet. Die erste und die letzte Koordinate in der Folge sind ebenfalls durch eine gerade Linie verbunden. Die Form wird mit Farbfüllung und dem Umfang in Farbkontur gefüllt. Die Parameter Füllung und Gliederung sind optional mit den Standardwerten Keine.
from PIL import Image, ImageDraw
img = Image.new('RGB', (500, 300), (125, 125, 125))
draw = ImageDraw.Draw(img)
draw.polygon(
((200, 200), (300, 100), (250, 50)),
fill=(255, 0, 0),
outline=(0, 0, 0))
img.show()