Tutoriel Python : Manipulation d’images avec PIL

Tutoriel Pillow – Manipulation d’Images en Python

Dans ce tutoriel, vous apprendrez à manipuler des images en Python avec la bibliothèque Pillow. Nous aborderons des concepts tels que l’ouverture, la modification, et la création d’images.


1. Ouvrir une image

Téléchargez une image pour l’enregistrer dans le même dossier que le fichier Python que vous allez créer.

Vous pouvez ouvrir une image en utilisant la fonction Image.open() et l’afficher avec :


from PIL import Image

# Ouvrir une image
image = Image.open('chemin_vers_image.jpg')
image.show()
        

2. Afficher les propriétés de l’image

Pour afficher les informations de base sur l’image, telles que la taille, le mode et le format :


# Afficher les propriétés de l'image
print("Taille de l'image:", image.size)
print("Mode de couleur:", image.mode)
print("Format de l'image:", image.format)
        

3. Redimensionner une image

Vous pouvez redimensionner une image en utilisant la méthode resize() :


# Redimensionner l'image
nouvelle_image = image.resize((300, 300))
nouvelle_image.show()
        

4. Rogner une image

Pour découper une partie spécifique de l’image, utilisez crop() :


# Définir une zone de rognage
zone = (100, 100, 300, 300)
image_coupee = image.crop(zone)
image_coupee.show()
        

5. Appliquer un filtre

Pillow permet d’appliquer des filtres comme le flou :


from PIL import ImageFilter

# Appliquer un filtre flou
image_floue = image.filter(ImageFilter.BLUR)
image_floue.show()
        

6. Sauvegarder une image

Une fois modifiée, vous pouvez sauvegarder l’image avec save() :


# Sauvegarder l'image floue
image_floue.save('image_floue.jpg')
        

7. Modifier les pixels d’une image

Vous pouvez accéder aux pixels individuels et les modifier :


# Convertir l'image en niveaux de gris
image_gris = image.convert('L')

# Modifier chaque pixel en noir ou blanc
largeur, hauteur = image_gris.size
for x in range(largeur):
    for y in range(hauteur):
        pixel = image_gris.getpixel((x, y))
        if pixel > 128:
            image_gris.putpixel((x, y), 255)  # Blanc
        else:
            image_gris.putpixel((x, y), 0)  # Noir

image_gris.show()
        

8. Rotation et retournement

Pillow vous permet également de faire pivoter ou de retourner l’image :


# Rotation de l'image
image_rot = image.rotate(90)
image_rot.show()

# Retourner l'image horizontalement
image_ret = image.transpose(Image.FLIP_LEFT_RIGHT)
image_ret.show()
        

9. Créer une nouvelle image

Enfin, vous pouvez créer une nouvelle image à partir de zéro :


# Créer une nouvelle image rouge
nouvelle_image = Image.new('RGB', (100, 100), 'red')
nouvelle_image.show()