Ajouter une bordure autour d'une image avec PIL


Avec le module PIL de python qui permet de travailler avec des images, il est possible de rajouter une bordure, illustration avec un simple script intitulé ici "PIL_Add_Pad.py"

Fig.1: Ajouter une bordure autour d'une image avec PIL (image initiale)

Fig.2: Ajouter une bordure autour d'une image avec PIL (image modifiée)

from PIL import Image

print "Nom de l'image:",
ImageName = raw_input()

im = Image.open(ImageName) 
im_size = im.size

print "Taille de l'image: ", im_size

Add_Padd = 40

new_im = Image.new('RGB', (im_size[0]+2*Add_Padd,im_size[1]+2*Add_Padd)) # black
#new_im = Image.new('RGB', (im_size[0]+2*Add_Padd,im_size[1]+2*Add_Padd),(255,255,255)) # white
#new_im = Image.new('RGB', (im_size[0]+2*Add_Padd,im_size[1]+2*Add_Padd),(255,0,0)) # red

new_im.paste(im, (Add_Padd,Add_Padd))

new_im.save("Modified_"+ImageName, "PNG")

Exemple d'exécution du script avec l'image lena.png:

> python PIL_Add_Pad.py
Nom de l'image: lena.png
Taille de l'image:  (512, 512)

On obtient alors la figure 2 ci-contre.
Note vous pouvez alors très facilement modifier la couleur de la bordure en changeant le code RGB:

new_im = Image.new('RGB', (im_size[0]+2*Add_Padd,im_size[1]+2*Add_Padd)) # black
#new_im = Image.new('RGB', (im_size[0]+2*Add_Padd,im_size[1]+2*Add_Padd),(255,255,255)) # white
#new_im = Image.new('RGB', (im_size[0]+2*Add_Padd,im_size[1]+2*Add_Padd),(255,0,0)) # red

Recherches associées

Liens Site
PIL PIL
The Image Module effbot
Image

of