logo
Sommaire > Autres bibliothèques > Pil - Python Image Library
        Qu'est-ce que Pil ?
        Où trouver de l'aide pour Pil ?
        Comment récupérer dans une liste les valeurs des pixels d'une image ?
        Comment créer une image à partir d'une liste de valeurs de pixels ?
        Comment décomposer une image couleur en ses 3 composantes RGB ?
        Comment recomposer une image couleur à partir de ses 3 composantes RGB ?
        Pourquoi j'obtiens l'erreur 'AttributeError: class Image has no attribute ...' ?



Qu'est-ce que Pil ?
auteur : Guigui_
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


Où trouver de l'aide pour Pil ?
auteur : 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)


Comment récupérer dans une liste les valeurs des pixels d'une image ?
auteur : 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.

import Image  
im = Image.open("Python.jpg") 
data = list(im.getdata())

Comment créer une image à partir d'une liste de valeurs de pixels ?
auteur : 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

## 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) 

Comment décomposer une image couleur en ses 3 composantes RGB ?
auteur : Guigui_
La fonction im.split() renvoit une séquence des 3 composantes RGB de l'image

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')

Comment recomposer une image couleur à partir de ses 3 composantes RGB ?
auteur : Guigui_
La fonction Image.merge(mode, bands) crée une image à partir des images bands selon le mode mode

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

Pourquoi j'obtiens l'erreur "AttributeError: class Image has no attribute ..." ?
auteur : 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.
lien : faq Comment importer des modules/fonctions/fichiers ?


Consultez les autres F.A.Q's


Valid XHTML 1.0 TransitionalValid CSS!

Publicité

Best Of

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 oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2005-2009 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'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Python - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.