Pillow est une bibliothèque de traitement d'images dérivée du projet PIL (Python Image Library), le développement de PIL ayant été abandonné. Elle contient de nombreux outils très puissants pour manipuler ou créer des images dans les formats les plus répandus (JPEG, PNG, GIF, TIFF, BMP, ...)
from PIL import Image
# ouverture d'une image (mon_image.jpg à remplacer par votre image)
image = Image.open('R2D2.jpg')
# informations sur l'image
type = image.format # récupère le format de l'image : JPEG, GIF, PNG,...
largeur = image.size[0] # récupère la largeur en pixels (nombre de points)
hauteur = image.size[1] # récupère la hauteur en pixels (nombre de points)
mode = image.mode # récupère le mode couleur (RGB, ...)
print('Format de l\'image : ', type)
print('Hauteur de l\'image : ', hauteur)
print('Largeur de l\'image : ', largeur)
print('Mode couleur : ', mode)
# affichage de l'image
image.show()
```python
### Sauvegarder une image
On reprend l'exemple suivant et la partie du programme qui permet de charger l'image (au format JPEG). On ajoute une partie de code qui permet de sauvegarder cette image sous autre format (PNG).
```python
from PIL import Image
# ouverture d'une image (mon_image.jpg à remplacer par votre image)
image = Image.open('R2D2.jpg')
## sauvegarde de l'image
# on essaie de sauvegarder l'image
try:
image.save("R2D2.png", "PNG")
# si une exception est levée, on affiche un message d'avertissement
except IOError:
print("Erreur d'enregistrement !")
Rogner une image, c'est retirer une partie des bords de cette dernière pour zoomer sur la partie qu'il apparaît intéressant d'isoler.
from PIL import Image
# ouverture d'une image (mon_image.jpg à remplacer par votre image)
image = Image.open('R2D2.jpg')
# rognage de l'image
image_rognee = image.crop((1000, 400, 1320, 800))
image_rognee.show()
Pour rogner l'image, on utilise image.crop(x1,y1,x2,y2):
from PIL import Image
image = Image.open('R2D2.jpg')
image_gris = image.convert('L')
image_gris.show()
Pillow propose deux fonctions intéressantes pour manipuler chaque point de l'image (appelé pixel) : getpixel et putpixel
getpixel(x,y) est une méthode qui renvoie les valeurs de couleur (rouge, vert, bleu) du pixel situé en (x,y)
from PIL import Image
image = Image.open('R2D2.jpg')
r, v, b = image.getpixel((0,0))
print("Canal rouge : ", r, "Canal vert : ",v ,"Canal bleu : ", b)
Ce code retourne le résultat suivant :
Canal rouge : 183 Canal vert : 24 Canal bleu : 90
En cours de rédaction...