1. Ajouter du texte sur une image
Pour ajouter du texte sur une image avec Pillow, on utilise le module ImageDraw
, qui propose la méthode text()
pour afficher le texte à des coordonnées spécifiques.
Ajout simple de texte
from PIL import ImageDraw, ImageFont
# Création d'un objet de dessin
draw = ImageDraw.Draw(image)
# Ajout de texte sur l'image
text = "Exemple de texte"
draw.text((50, 50), text, fill="white")
# Sauvegarde de l'image avec le texte
image.save("text_example.jpg")
Dans cet exemple, le texte "Exemple de texte"
est ajouté aux coordonnées (50, 50)
. Le paramètre fill
définit la couleur du texte, qui peut être spécifiée comme une chaîne ("white"
, "black"
) ou en format RGB ((255, 255, 255)
).
Personnalisation de la police du texte
Par défaut, Pillow utilise une police standard. Pour choisir une autre police et définir sa taille, utilise ImageFont.truetype()
. Assure-toi que le fichier de la police est disponible sur ton système.
# Chargement de la police
font = ImageFont.truetype("arial.ttf", 36)
# Ajout de texte avec une police personnalisée
draw.text((50, 100), text, font=font, fill="yellow")
image.save("text_custom_font_example.jpg")
Ici, on utilise la police arial.ttf
avec une taille de 36 pixels. Si la police requise n'est pas présente, tu peux la télécharger et indiquer le chemin vers le fichier.
2. Ajouter un filigrane
Un filigrane est un texte ou une image semi-transparent(e) superposé(e) à une photo pour en empêcher la copie. Il peut être utilisé pour ajouter des logos ou des informations sur l'auteur. Avec Pillow, il est possible de créer un filigrane texte simple.
Filigrane texte
# Création d'un objet de dessin
draw = ImageDraw.Draw(image)
# Texte et police pour le filigrane
watermark_text = "© 2023 My Company"
font = ImageFont.truetype("arial.ttf", 24)
# Définition des coordonnées pour placer le filigrane
width, height = image.size
text_width, text_height = draw.textsize(watermark_text, font=font)
x = width - text_width - 10
y = height - text_height - 10
# Ajout du filigrane dans le coin inférieur droit
draw.text((x, y), watermark_text, font=font, fill=(255, 255, 255, 128))
image.save("watermarked_example.jpg")
Dans cet exemple, un filigrane texte est ajouté dans le coin inférieur droit de l'image. Nous calculons x
et y
pour que le filigrane soit légèrement déplacé par rapport au bord de l'image.
3. Ajouter des éléments graphiques
En plus du texte, Pillow permet de dessiner des éléments graphiques de base, comme des lignes, des rectangles, des cercles et des ellipses. C'est utile pour créer des cadres, surligner des zones ou ajouter des figures géométriques.
Dessin de lignes
Pour dessiner des lignes, utilise la méthode line()
, qui prend les coordonnées de début et de fin de la ligne.
# Dessin d'une ligne du coin supérieur gauche au coin inférieur droit
draw.line((0, 0, width, height), fill="red", width=5)
image.save("line_example.jpg")
Ce code dessine une ligne rouge diagonale allant du coin supérieur gauche au coin inférieur droit de l'image.
Dessin de rectangles
Un rectangle est dessiné avec la méthode rectangle()
, qui prend les coordonnées des coins supérieur gauche et inférieur droit.
# Dessin d'un rectangle
draw.rectangle((50, 50, 200, 200), outline="blue", width=3)
image.save("rectangle_example.jpg")
Ici, on crée un rectangle avec un contour bleu et une épaisseur de ligne de 3 pixels. Tu peux aussi utiliser le paramètre fill
pour remplir le rectangle avec une couleur.
Dessin de cercles et d'ellipses
La méthode ellipse()
permet de dessiner des cercles et des ellipses. Pour dessiner un cercle, spécifie les mêmes dimensions pour la largeur et la hauteur.
# Dessin d'un cercle
draw.ellipse((150, 150, 250, 250), outline="green", width=4)
image.save("circle_example.jpg")
Dans cet exemple, un cercle est créé avec un centre au point (200, 200)
. Si tu spécifies des dimensions différentes pour la largeur et la hauteur, tu obtiendras une ellipse.
Dessin de polygones
Pour dessiner des polygones, utilise la méthode polygon()
, qui prend les coordonnées des sommets de la figure.
# Dessin d'un triangle
draw.polygon([(100, 100), (150, 50), (200, 100)], outline="purple", fill="orange")
image.save("polygon_example.jpg")
Ce code dessine un triangle avec un remplissage orange et un contour violet. Tu peux créer une figure de n'importe quelle forme en passant les coordonnées de ses sommets.
4. Exemples
Exemple de création d'une composition avec texte et graphisme
Mettons tout ensemble pour créer une image avec texte, filigrane et éléments graphiques.
from PIL import Image, ImageDraw, ImageFont
# Chargement de l'image
image = Image.open("example.jpg")
draw = ImageDraw.Draw(image)
# Ajout de texte
font = ImageFont.truetype("arial.ttf", 36)
draw.text((50, 50), "Demo Text", font=font, fill="yellow")
# Ajout du filigrane dans le coin inférieur droit
watermark_text = "© 2023 My Company"
font_watermark = ImageFont.truetype("arial.ttf", 24)
width, height = image.size
text_width, text_height = draw.textsize(watermark_text, font=font_watermark)
x = width - text_width - 10
y = height - text_height - 10
draw.text((x, y), watermark_text, font=font_watermark, fill=(255, 255, 255, 128))
# Dessin d'une ligne, d'un rectangle et d'un cercle
draw.line((0, 0, width, height), fill="red", width=5)
draw.rectangle((50, 50, 200, 200), outline="blue", width=3)
draw.ellipse((150, 150, 250, 250), outline="green", width=4)
# Sauvegarde du résultat
image.save("final_composition_example.jpg")
Dans cet exemple, on crée une image avec texte, filigrane et plusieurs éléments graphiques (ligne, rectangle et cercle). De telles compositions peuvent être utilisées pour des présentations, des blogs ou la création d'images professionnellement mises en valeur.
Applications pratiques
- Marquage et protection des images: Les filigranes aident à protéger les images contre une utilisation non autorisée, et le texte permet d'ajouter des informations sur l'auteur ou l'entreprise.
- Préparation d'images pour les réseaux sociaux: Ajouter du texte et du graphisme permet de préparer les images pour publication en y intégrant des informations supplémentaires.
- Infographies et visualisation de données: Utiliser des éléments graphiques comme des lignes et des formes permet de créer des graphiques et des diagrammes simples, ce qui rend Pillow utile pour la création d'infographies.
GO TO FULL VERSION