Oreiller Python - Module ImageDraw

le ‘ImageDraw’Le module fournit un support graphique 2D simple pour Image Object. En général, nous utilisons ce module pour créer de nouvelles images, annoter ou retoucher des images existantes et pour générer des graphiques à la volée pour une utilisation Web.

Les commandes graphiques prennent en charge le dessin de formes et l'annotation de texte.

  • Une image peut être bien pensée pour être un tableau bidimensionnel de pixels (éléments d'image). Un pixel est le plus petit point de couleur pris en charge.

  • L'origine du système de coordonnées bidimensionnel utilisé par ImageDraw est dans le upper left corner de l'image.

  • Les couleurs des oreillers que nous utilisons sont RVB. La représentation et le support RVB des couleurs sont fournis par le moduleImageColor.

  • bitmap, OpenType ou TrueType sont les polices acceptables pour les annotations de texte.

  • La plupart des commandes de dessin peuvent nécessiter un paramètre de zone de délimitation qui spécifie la zone de l'image à laquelle la commande doit être appliquée.

  • Une séquence de coordonnées peut être représentée par [(x0, y0), (x1, y1),… (xn, yn)].

  • Pour certaines commandes de dessin, nous avons besoin de valeurs d'angle.

Exemple

L'exemple suivant de python trace une ligne sur l'image donnée -

#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()

Production

Si vous enregistrez le programme ci-dessus sous le nom Example.py et que vous l'exécutez, il trace une ligne sur l'image et l'affiche à l'aide de l'utilitaire d'affichage PNG standard, comme suit -

Toile

  • Un ImageDraw est une surface dessinable Pillow (c'est-à-dire une toile) d'une image.

  • ImageDraw.Draw (img) renvoie une représentation de canevas dessinable du paramètre Image img. L'arrière-plan de la toile est l'image "img".

Exemple

L'exemple de python suivant dessine du texte sur l'image donnée -

#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()

Production

Dessiner des formes à l'aide du module 'ImageDraw'

Le module ImageDraw nous permet de créer différentes formes en créant d'abord un objet de dessin avec l'image avec laquelle vous souhaitez travailler, puis en l'appliquant. Certaines des formes courantes que nous pouvons dessiner à l'aide du module 'ImageDraw' sont les suivantes -

Ligne

Voici la syntaxe pour tracer une ligne à l'aide de l'oreiller python -

draw.line(xy, fill=None, width=0)

le line()dessine une ligne du coin supérieur gauche vers le coin inférieur droit du cadre de délimitation xy et du canevas. La ligne est remplie à l'aide d'un remplissage de couleur. Les valeurs par défaut de None et 0 sont respectivement pour les paramètres fill et width qui sont facultatifs.

Exemple

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()

Production

Éclipse

Voici la syntaxe pour dessiner une ellipse à l'aide de l'oreiller python -

draw.ellipse(xy, fill=None, outline=None)

le ellipse()La méthode dessine l'ellipse entourée par la boîte englobante xy lors du dessin. La forme est remplie en utilisant un remplissage de couleur et le périmètre en contour de couleur. Les valeurs par défaut de Aucun concernent les paramètres fill et width qui sont facultatifs.

Exemple

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()

Production

Rectangle

Voici la syntaxe pour dessiner un rectangle à l'aide de l'oreiller en python -

draw.rectangle(xy, fill=None, outline=None)

le rectangle()La méthode dessine le rectangle donné par la boîte englobante xy lors du dessin. La forme est remplie en utilisant un remplissage de couleur et le périmètre en contour de couleur. Les valeurs par défaut de Aucun concernent les paramètres fill et width qui sont facultatifs.

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()

Production

Polygone

Voici la syntaxe pour dessiner un rectangle à l'aide de l'oreiller en python -

draw.polygon(seq, fill=None, outline=None)

le polygon()La méthode dessine un polygone reliant par des lignes droites les emplacements de séquence de coordonnées seq lors du dessin. Les première et dernière coordonnées de la suite sont également reliées par une ligne droite. La forme est remplie en utilisant un remplissage de couleur et le périmètre en contour de couleur. Les paramètres fill et contour sont facultatifs avec les valeurs par défaut Aucun.

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()

Production