FAQ PythonConsultez toutes les FAQ

Nombre d'auteurs : 15, nombre de questions : 269, dernière mise à jour : 10 septembre 2014  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions posées sur le forum Python complétées par d'autres questions qui pouvaient nous sembler intéressantes de traiter. Toutefois il se peut que les réponses apportées contiennent des erreurs, imprécisions ... Vous pouvez dans ce cas contacter un des membres de la rédaction pour lui faire part de vos remarques.

L'équipe Python de Developpez.


SommaireAutres bibliothèquesPil - Python Image Library (7)
précédent sommaire suivant
 

La bibliothèque Pil (Python Imaging Library) ajoute des possibilités de manipulation d'images de tout format avec la présence de quelques fonctions de traitement d'images

Mis à jour le 20 juin 2005 Guigui_

Vous pouvez consulter la documentation officielle de Pil qui est relativement complète (version html et pdf en anglais d'un tutoriel avec présentation et exemples de la majorité des fonctions)

Mis à jour le 20 juin 2005 Guigui_

La fonction Image.open(path) permet d'ouvrir une image de tout format (compatible avec la bibliothèque Pil)
la fonction im.getdata() retourne un objet-séquence contenant les valeurs des pixels de l'image. Cependant il n'est lisible que par Pil. La fonction list permet ensuite de récupérer cette séquence sous un format lisible par l'utilisateur. On récupère alors une liste de tuples à 3 compoantes si l'image est couleur, une liste simple sinon.

Code python :
1
2
3
import Image   
im = Image.open("Python.jpg")  
data = list(im.getdata())

Mis à jour le 28 juin 2005 Guigui_

la fonction Image.New(mode, size) permet de créer une nouvelle image où mode ("L" ou "RGB") définit si l'image sera couleur ou en niveau de gris et size est un tuple (NbColonnes, NbLignes).
la fonction im.putdata(data) remplit l'image avec la séquence de valeurs data

Code python :
1
2
3
4
5
6
7
## Récupération des valeurs de l'image 
import Image 
im = Image.open("Python.jpg")  
data = list(im.getdata()) 
## Reconstruction de l'image 
imNew=Image.new(im.mode ,im.size)  
imNew.putdata(data)

Mis à jour le 28 juin 2005 Guigui_

La fonction im.split() renvoit une séquence des 3 composantes RGB de l'image

Code python :
1
2
3
4
5
6
import Image   
img = Image.open("Python.jpg")  ##  Ouverture de l'image Python.jpg 
r,g,b = img.split()  ## Récupération des différentes composantes de l'image 
r.save('r.jpg') ## Sauvegarde des différents images composantes 
g.save('g.jpg') 
b.save('b.jpg')

Mis à jour le 20 juin 2005 Guigui_

La fonction Image.merge(mode, bands) crée une image à partir des images bands selon le mode mode

Code python :
1
2
3
4
5
import Image   
img = Image.open("Python.jpg")  ##  Ouverture de l'image Python.jpg 
comp = img.split()  ## Décomposition de l'image 
imgnew = Image.merge('RGB',comp) ## Recomposition de l'image 
imgnew.save("PythonNew.jpg") ## Sauvegarde de l'image décomposée puis recomposée

Mis à jour le 20 juin 2005 Guigui_

La bibliothèque Pil fournit plusieurs modules dont le module standart qui se nomme Image. Classiquement, on l'importe par la commande Import Image. On accède ensuite aux fonctions de ce module par la forme Image.UneFonction. Il arrive parfois que survienne alors l'erreur AttributeError: class Image has no attribute .... La cause peut être multiple:

  • Tout d'abord, vous avez un de votre propre module qui se nomme également Image. Ainsi, au lieu d'importer le module de Pil, vous importez finalement votre propre module qui ne contient pas les fonctions du module Image de Pil.
  • D'autres bibliothèques que vous utilisez peuvent également contenir un module Image. Si vous les importez de la manière from ... import *, il se peut donc que vous importiez un module Image qui écrasera celui du module Pil (ou inversement, en fonction de la position des imports). C'est une des raisons qui font qu'il est déconseillé d'utilisez ce schéma pour l'importation.
    Par exemple, le module Tkinter contient un module Image et de ce fait l'instruction from Tkinter import * écrasera le module Image de Pil que vous auriez pu importer auparavant. C'est pour cela qu'il est préférable pour Tkinter d'importer de la manière import Tkinter as Tk.

Mis à jour le 31 octobre 2006 Guigui_

Comment importer des modules/fonctions/fichiers ?

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2014 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
 
 
 
Partenaires

PlanetHoster
Ikoula