MODULE PIL
FONCTIONS
Image est la classe la plus importante du module PIL.
Fonction
Effet
im=Image.open(fichier)
pour ouvrir un fichier contenant une image, on utilise la fonction (ligne 5)).
im.format()
Donne le format de l’image : png, jpeg, bmp,….
im.size()
La taille est un tuple (largeur hauteur)
im.mode()
Donne le mode l’image : RGB, RGBA ,L, P
im.show()
Affiche l’image.
im.save("nom","format")
Sauvegarde l’image avec le nom et le format choisit.
MODE D’IMAGES :
Note
Modes d’images :
Le mode d’une image définit le type et la profondeur d’un pixel dans l’image. La sortie actuelle soutient le suivant
Modes standard :
1 (pixels de 1 particule, noirs et blancs, stocké avec un pixel par octet)
L (pixels de 8 particules, noir et blanc)
P (pixels de 8 particules, dressés la carte à un autre mode utilisant une palette colorée)
RGB (3x8-pixels)
RGBA (4x8-pixels, couleur avec masque de transparence)
CMYK (4x8-bit-pixels)
JPEG
PIL fournit aussi l’appui limité pour quelques modes spéciaux, y compris LA (L avec l’alpha), RGBX (la vraie couleur avec la remplissage)
Et RGBA (vraie couleur avec alpha).
TAILLE D’IMAGES :
python -m pip install --upgrade Pillow
Programme
Résultat
#0805 taille photo.py
from PIL import Image
from os import*
#nom du repertoire où l'on se situe
repertoire=getcwd()
fichier=repertoire+'/1.png'
im = Image.open(fichier)
print ("Nom du fichier : ",fichier,'\n'\
"Format :" ,im.format,'\n'\
"taille","%dx%d" % im.size,'\n'\
"Mode : ",im.mode)
print(fichier,im.format,im.size,im.mode)
Nom du fichier : D:\python\python 2017\08 manipuler fichiers/1.png
Format : PNG
taille 1000x640
Mode : RGBA
D:\python\python 2017\08 manipuler fichiers/1.png PNG (1000, 640) RGBA
AFFICHAGE D’UNE IMAGE :
Programme
Résultat
programme Résultat
from PIL import Image
try:
im = Image.open('1.png')
im.show()
except:
pass
DECOMPOSITION D’UNE IMAGE :
Note
rgba
rgba(0,0,0,0). La dernière valeur (l’alpha) indiquant le degré d’opacité entre 0 et 1.
Fonction
Effet
#0808 decomposition.py
from PIL import Image
img = Image.open("2.png")
# Récupération des différentes
#composantes de l'image
print( img.split() )
r,g,b,a=img.split()
#enregistre l'image en rouge
r.save('rouge.jpg')
#enregistre l'image en vert
g.save('vert.jpg')
#enregistre l'image en bleu
b.save('bleu.jpg')
rouge=Image.open('rouge.jpg')
rouge.show()
vert=Image.open('vert.jpg')
vert.show()
bleu=Image.open('bleu.jpg')
bleu.show()
REDIMENSION ET DECOUPE :
Redimensionnement et découpe d’une image :
Fonction
Effet
im.resize(largeur,hauteur)
Redimensionne l’image en largeur et hauteur.
im_out=Image.new(mode,nom)
img_out est une nouvelle image avec le mode et le nom donnés en paramètres.
p=im.getpixel(x,y)
p est le pixel récupéré de la colonne x et de la ligne y.
img_out.putpixel((x,y),p)
le pixel p va être installé sur la colonne x et la ligne y de l’image img_out
programme
Résultat
#0808 redimensionne decoupe.py
import os #bibliothèque pour le travail sur les dossier
from PIL.Image import *
from PIL import Image
def Tableau(ligne,colonne,liste):
"fabrication d'un tableau lignes colonnes"
tableau=ligne*[0]
for ln in range(ligne):table[ln]=colonne*[0]
for ln in range(0,ligne):
for cn in range(0,colonne):
tableau[ln][cn]=liste[clne*ln+cn]
return tableau
def redimensione(nom,nom_image,largeur,hauteur):
"redimensionne une image"
img_in=Image.open(nom_image)
C,L=img_in.size
img_out=Image.new("RGB",(largeur,hauteur))
img_out=img_in.resize((largeur,hauteur))
img_out.save(nom+'.png')
return img_out
def decoupe(nom_image,largeur,hauteur):
"decoupe une image en 20 images"
img_in=Image.open(nom_image)
C,L=img_in.size
nbcol=int(C/largeur)
nblig=int(L/hauteur)
print(nbcol,C,largeur,nblig,L,largeur)
col=C//nbcol
colo=C//col
lig=L//nblig
lign=L//lig
img_out=Image.new("RGB",(col,lig))
for i in range(int(nblig)):
ligne=i
ldebut=ligne*lig
lfin=lig+ldebut
for j in range(nbcol):
colonne=j
cdebut=colonne*col
cfin=cdebut+col
for ln in range(ldebut,lfin):
for cn in range(cdebut,cfin):
p=img_in.getpixel((cn,ln))
ccn=cn%col
lln=ln-lig*ligne
img_out.putpixel((ccn,lln),p)
numero=i*nbcol+j+1
print(p)
img_out.save(str(numero)+'s.png')
rep_cour=os.getcwd() #répertoire courant
print ("répertoire courant :",rep_cour)
os.chdir(rep_cour) #on s'y déplace !
print(os.getcwd()) #vérification
print ("tout est en ordre !")
nom_image=input("Donner le nom de l'image : ")
img_in=Image.open(nom_image)
print ("Nom de l'image :",nom_image)
print("Format de l'image :",img_in.format)
#tuple (Colonnes,Lignes)
print ("Taille de l'image :",img_in.size)
print ("Mode de l'image :",img_in.mode) #niveaux de gris
nom=input("Donner le nom de la nouvelle image : ")
largeur=int(input("Donner la nouvelle largeur : "))
hauteur=int(input("Donner la nouvelle hauteur : "))
decoupe(nom_image,largeur,hauteur)
img_out=redimensione(nom,nom_image,largeur,hauteur)
Image initiale
Images redimensionnées.

D:\python\08manipulerfichiers\redimensione
tout est en ordre !
Donner le nom de l'image : grande.png
Nom de l'image : grande.png
Format de l'image : PNG
Taille de l'image : (600, 300)
Mode de l'image : RGBA
Donner le nom de la nouvelle image : petite
Donner la nouvelle largeur : 200
Donner la nouvelle hauteur : 100
3 600 200 3 300 200
(0, 0, 0, 255)
(0, 0, 0, 255)
(244, 244, 244, 255)
(0, 0, 0, 255)
(0, 0, 0, 255)
(244, 244, 244, 255)
(0, 0, 0, 255)
(0, 0, 0, 255)
(244, 244, 244, 255)
Image est la classe la plus importante du module PIL.
Fonction |
Effet |
---|---|
im=Image.open(fichier)
|
pour ouvrir un fichier contenant une image, on utilise la fonction (ligne 5)). |
im.format()
|
Donne le format de l’image : png, jpeg, bmp,…. |
im.size()
|
La taille est un tuple (largeur hauteur) |
im.mode()
|
Donne le mode l’image : RGB, RGBA ,L, P |
im.show()
|
Affiche l’image. |
im.save("nom","format")
|
Sauvegarde l’image avec le nom et le format choisit. |
Note
Modes d’images : Le mode d’une image définit le type et la profondeur d’un pixel dans l’image. La sortie actuelle soutient le suivant Modes standard : 1 (pixels de 1 particule, noirs et blancs, stocké avec un pixel par octet) L (pixels de 8 particules, noir et blanc) P (pixels de 8 particules, dressés la carte à un autre mode utilisant une palette colorée) RGB (3x8-pixels) RGBA (4x8-pixels, couleur avec masque de transparence) CMYK (4x8-bit-pixels) JPEG PIL fournit aussi l’appui limité pour quelques modes spéciaux, y compris LA (L avec l’alpha), RGBX (la vraie couleur avec la remplissage) Et RGBA (vraie couleur avec alpha).
python -m pip install --upgrade Pillow
Programme |
Résultat |
---|---|
#0805 taille photo.py
from PIL import Image
from os import*
#nom du repertoire où l'on se situe
repertoire=getcwd()
fichier=repertoire+'/1.png'
im = Image.open(fichier)
print ("Nom du fichier : ",fichier,'\n'\
"Format :" ,im.format,'\n'\
"taille","%dx%d" % im.size,'\n'\
"Mode : ",im.mode)
print(fichier,im.format,im.size,im.mode)
|
Nom du fichier : D:\python\python 2017\08 manipuler fichiers/1.png
Format : PNG
taille 1000x640
Mode : RGBA
D:\python\python 2017\08 manipuler fichiers/1.png PNG (1000, 640) RGBA
![]() |
Programme |
Résultat |
---|---|
programme Résultat
from PIL import Image
try:
im = Image.open('1.png')
im.show()
except:
pass
|
![]() |
Note
rgba rgba(0,0,0,0). La dernière valeur (l’alpha) indiquant le degré d’opacité entre 0 et 1.
Fonction |
Effet |
---|---|
#0808 decomposition.py
from PIL import Image
img = Image.open("2.png")
# Récupération des différentes
#composantes de l'image
print( img.split() )
r,g,b,a=img.split()
#enregistre l'image en rouge
r.save('rouge.jpg')
#enregistre l'image en vert
g.save('vert.jpg')
#enregistre l'image en bleu
b.save('bleu.jpg')
rouge=Image.open('rouge.jpg')
rouge.show()
vert=Image.open('vert.jpg')
vert.show()
bleu=Image.open('bleu.jpg')
bleu.show()
|
![]() ![]() |
Fonction | Effet |
---|---|
im.resize(largeur,hauteur)
|
Redimensionne l’image en largeur et hauteur. |
im_out=Image.new(mode,nom)
|
img_out est une nouvelle image avec le mode et le nom donnés en paramètres. |
p=im.getpixel(x,y)
|
p est le pixel récupéré de la colonne x et de la ligne y. |
img_out.putpixel((x,y),p)
|
le pixel p va être installé sur la colonne x et la ligne y de l’image img_out |
programme | Résultat |
---|---|
#0808 redimensionne decoupe.py
import os #bibliothèque pour le travail sur les dossier
from PIL.Image import *
from PIL import Image
def Tableau(ligne,colonne,liste):
"fabrication d'un tableau lignes colonnes"
tableau=ligne*[0]
for ln in range(ligne):table[ln]=colonne*[0]
for ln in range(0,ligne):
for cn in range(0,colonne):
tableau[ln][cn]=liste[clne*ln+cn]
return tableau
def redimensione(nom,nom_image,largeur,hauteur):
"redimensionne une image"
img_in=Image.open(nom_image)
C,L=img_in.size
img_out=Image.new("RGB",(largeur,hauteur))
img_out=img_in.resize((largeur,hauteur))
img_out.save(nom+'.png')
return img_out
def decoupe(nom_image,largeur,hauteur):
"decoupe une image en 20 images"
img_in=Image.open(nom_image)
C,L=img_in.size
nbcol=int(C/largeur)
nblig=int(L/hauteur)
print(nbcol,C,largeur,nblig,L,largeur)
col=C//nbcol
colo=C//col
lig=L//nblig
lign=L//lig
img_out=Image.new("RGB",(col,lig))
for i in range(int(nblig)):
ligne=i
ldebut=ligne*lig
lfin=lig+ldebut
for j in range(nbcol):
colonne=j
cdebut=colonne*col
cfin=cdebut+col
for ln in range(ldebut,lfin):
for cn in range(cdebut,cfin):
p=img_in.getpixel((cn,ln))
ccn=cn%col
lln=ln-lig*ligne
img_out.putpixel((ccn,lln),p)
numero=i*nbcol+j+1
print(p)
img_out.save(str(numero)+'s.png')
rep_cour=os.getcwd() #répertoire courant
print ("répertoire courant :",rep_cour)
os.chdir(rep_cour) #on s'y déplace !
print(os.getcwd()) #vérification
print ("tout est en ordre !")
nom_image=input("Donner le nom de l'image : ")
img_in=Image.open(nom_image)
print ("Nom de l'image :",nom_image)
print("Format de l'image :",img_in.format)
#tuple (Colonnes,Lignes)
print ("Taille de l'image :",img_in.size)
print ("Mode de l'image :",img_in.mode) #niveaux de gris
nom=input("Donner le nom de la nouvelle image : ")
largeur=int(input("Donner la nouvelle largeur : "))
hauteur=int(input("Donner la nouvelle hauteur : "))
decoupe(nom_image,largeur,hauteur)
img_out=redimensione(nom,nom_image,largeur,hauteur)
|
Image initiale Images redimensionnées. D:\python\08manipulerfichiers\redimensione
tout est en ordre !
Donner le nom de l'image : grande.png
Nom de l'image : grande.png
Format de l'image : PNG
Taille de l'image : (600, 300)
Mode de l'image : RGBA
Donner le nom de la nouvelle image : petite
Donner la nouvelle largeur : 200
Donner la nouvelle hauteur : 100
3 600 200 3 300 200
(0, 0, 0, 255)
(0, 0, 0, 255)
(244, 244, 244, 255)
(0, 0, 0, 255)
(0, 0, 0, 255)
(244, 244, 244, 255)
(0, 0, 0, 255)
(0, 0, 0, 255)
(244, 244, 244, 255)
|